전체 글
-
[Android] Android Module안드로이드 2022. 5. 23. 00:26
모듈이란?🤷🏻♂️ 모듈은 소스 파일 및 빌드 설정으로 구성된 모음이며, 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있습니다. 프로젝트에는 하나 이상의 모듈이 포함될 수 있으며, 하나의 모듈을 종속 항목으로 사용할 수 있습니다. 모듈을 추가하는 방법➕ File > New > New Module 을 통해 추가할 수 있습니다. Module vs Library Module과 Library 모두 Resource 파일과 Class 파일 등이 혼합된 모듈입니다. Module : 전체의 어플리케이션 없이 부분적으로 디버깅할 수 있고 테스트할 수 있는 작은 부분이라고 할 수 있습니다. Library : 어플리케이션의 기능 확장을 위해 이전에 컴파일된 소스 코드들의 집합입니다. 모듈의 종류🤔 applicatio..
-
[Android] Repository Pattern안드로이드 2022. 5. 7. 17:27
발생 배경🤷🏻 비즈니스 로직은 프로그램의 핵심이 되는 요소이며, 비즈니스 로직을 잘 짜야 원하는 결과를 올바르게 도출할 수 있습니다. 이때 비즈니스 로직은 보통 데이터베이스나 웹서비스 등의 데이터 저장소에 접근하게 되는데, 이 과정에서 여러 문제가 발생할 수 있습니다. 주로 중복되는 코드, 오류를 발생할 가능성이 있는 코드, 오타, 비즈니스 로직 테스트의 어려움 등이 있습니다. 이에 따라 요구사항이 발생하는데, 비즈니스 로직과 데이터 레이어를 분리해야 한다. 중앙 집중 처리 방식을 통해 일관된 데이터 로직을 제공해야 한다. 등장🔥 이러한 요구사항을 해결하기 위해 등장한 디자인 패턴이 Repository Pattern입니다. Repository는 Data Source 계층과 비즈니스 계층 사이를 중재하는 ..
-
[Android] DP vs SP안드로이드 2022. 5. 7. 16:34
안드로이드 UI 레이아웃을 정의할 때 주로 사용되는 DP와 SP에 대해서 알아보고자 합니다.👇🏻 PX이란?🤷🏻 PX이란 화면을 구성하는 최소 단위로 화면의 전체 화면 크기와 상관없이 지정한 수치만큼 표시되는 절대적 표시 단위입니다. 그러므로 전체적인 화면 크기에 대응하기 위해서 사용되는 단위가 DP입니다. DPI란?🤷🏻♂️ DPI는 Dots Per Inch로 1인치에 들어가는 픽셀을 나타내는 단위입니다. 예를 들어 100dpi는 1인치당 픽셀이 100개가 포함된다는 것을 의미합니다. 개수가 많을수록 고밀도이며 안드로이드에서는 주요 DPI는 아래와 같습니다. ldpi : 120dpi mdpi : 160dpi (기본) hdpi : 240dpi xhdpi : 320dpi xxhdpi : 480dpi xxxh..
-
[Android] Timber로 Debug 상태에서 로그 찍어내기안드로이드 2022. 4. 30. 22:30
Timber? 🐞 Timber는 Android의 Log 클래스 위에 구축된 로깅 유틸리티 클래스입니다. Debug 상태에서 Log를 남기고, Release 상태에서 Log를 출력하고 싶지 않을 때 주로 사용합니다. 사용법🤷🏻♂️ 1. app 수준의 build.gradle에 Timber 의존성 추가 (22.04.30일 기준 라이브러리 버전) implementation 'com.jakewharton.timber:timber:5.0.1' 2. Debug 상태에서만 로그를 출력하기 위해 앱 시작 시 Timber 초기화해주어야 합니다. class Application: Application() { override fun onCreate() { super.onCreate() if(BuildConfig.DEBUG)..
-
[Android] ADB wifi 디버깅 방법(무선 디버깅)안드로이드 2022. 3. 26. 13:11
안드로이드 ADB와 WIFI를 사용해 무선으로 디버깅을 할 수 있습니다. ADB란🤔 Android Debug Bridge의 약자로 Android Device와 통신하며 Debugging 등의 작업을 진행할 수 있는 Command Line Tool입니다. Android SDK에도 포함되어 있으며 애플리케이션 설치, Device 접속 및 관리, 파일 업/다운로드, 시스템 log 출럭, shell 접속 등이 가능합니다. 무선 디버깅 방법🔍 1. USB디버깅 활성화 먼저 개발자 옵션을 활성화시켜줍니다. (설정) -> (휴대전화 정보) -> (소프트웨어 정보) -> (빌드번호) 연속 클릭하여 개발자 모드 활성화 개발자 옵션에 들어가 USB 디버깅을 활성화해줍니다. 2. Wifi를 연결한 안드로이드 기기와 PC 연..
-
[Android] LayoutInflater란안드로이드 2022. 3. 22. 20:32
LayoutInflater란?🤔 XML에 미리 정의해둔 틀을 실제 메모리에 올려주는 역할을 합니다. Inflater 단어의 뜻은 부풀리다는 의미로 LayoutInflater 이 단어에서도 역할을 유추할 수 있습니다. 즉 LayoutInflater는 XMl에 정의된 Resource를 View 객체로 반환해 주는 역할을 합니다. 우리가 매번 사용하는 onCreate() 메서드에 있는 setContentView(R.layout.activity_main) 또한 Inflater 역할을 합니다. LayoutInflater 생성 방법👀 getSystemService : 가장 기본적인 방법으로 context에서 LayoutInflater를 가져오는 방법입니다. val inflater: LayoutInflater = c..
-
[Android] 아키텍처 패턴(MVC,MVP,MVVM)에 대하여안드로이드 2022. 3. 20. 20:29
아키텍처 패턴이란🤔 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미합니다. 소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤곽을 제시합니다. 아키텍처 패턴에는 서브 시스템들과 그 역할이 정의되어 있으며, 서브 시스템 사이의 관계와 여러 규칙, 지침 등이 포함되어 있습니다. 아키텍처 패턴의 장점👍🏻 시행착오를 줄여 개발 시간을 단축시키고, 고품질의 소프트웨어를 생산할 수 있습니다. 검증된 구조로 개발하기 때문에 안정적인 개발이 가능합니다. 이해관계자들이 공통된 아키텍처를 공유할 수 있어 의사소통이 간편해집니다. 시스템의 구조를 이해하는 것이 쉬워 개발에 참여하지 않은 사람도 손쉽게 유지보수를 수행할 수 있습니다. 시스템이 특성을 개발 전에 예측하는 것이 가능해집니다. 그럼 이..
-
[Android] ConstraintLayout안드로이드 2022. 3. 19. 21:51
ConstraintLayout은 RelativeLayout과 비슷하게 레이아웃 사이의 관계에 따라 모든 보기의 레이아웃이 결정되지만, RelativeLayout보다 유연하고 Android 스튜디오의 Layout Editor와 함께 사용하기 수월합니다. ConstraintLayout을 사용해야 하는 이유🚀 ConstraintLayout를 사용해야 하는 이유를 알기 이전에 먼저 뷰가 그려지는 과정을 이해할 필요가 있습니다. 뷰가 그려지는 과정은 3가지 단계를 거쳐 view가 화면에 나타납니다. Measure 단계 : view의 크기를 결정하는 단계입니다. 이 단계는 root 노드에서 시작해 반복적으로 호출되며, 각각의 호출은 부모로부터 전달된 인자들과 함께 발생합니다. 이 인자들은 widthMeasureSp..