안드로이드
-
[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..
-
[Android] Fragment에서 Google Map Api 사용하기안드로이드 2022. 3. 18. 17:44
Android Fragment에서 Google Map API를 사용법을 정리해보았습니다. 1. 프로젝트 생성 Google Api Console에서 프로젝트를 생성해 줍니다. 프로젝트 생성 후 API 라이브러리로 이동하여 API 사용 등록합니다. Maps SDK for Android 텝을 들어가 해당 API 사용을 클릭합니다. 2. API 키 생성 및 설정 Google API 대시보드 화면에서 사용자 인증 정보 텝으로 이동. 사용자 인증 정보 텝에서 사용자 인증정보 만들기 클릭. 그러면 위와 같이 API 키가 생성됩니다. 그런 다음 우측에 있는 API 키 수정 버튼을 클릭하여 애플리케이션 제한사항을 설정해줍니다. Google Map API를 적용할 Android 앱의 패키지 명을 적어주고 SHA-1 키를 ..