Android
-
[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 키를 ..
-
[Android] SharedPreferences안드로이드 2022. 3. 17. 17:00
SharedPreferences란 안드로이드 앱은 SharedPreferences를 통해 Integer, String 타입의 간단한 데이터를 저장할 수 있습니다. 단순히 숫자 몇 개, 문자열 몇 개를 저장하기 위해 SQLite나 서버 DB를 이용하기에 부담스럽기 때문에 SharedPreferences를 사용하는 것이 적합합니다. 특징👍🏻 SharedPreferences는 간단한 데이터를 앱의 개별 저장소에 xml파일로 저장 앱이 삭제되기 전까지 저장한 데이터가 보존 SharedPreferences 객체를 생성할 때 파일 이름을 인자로 전달하여, 그 이름으로 xml파일이 생성 데이터를 저장할 때는 key/value 형태로 저장 SharedPreferences는 put/get메소드를 제공하여 데이터를 저장하..
-
[Android] Room 사용법안드로이드 2022. 3. 16. 20:43
Room이란? 스마트폰 내장 DB에 상당한 양의 구조화된 데이터를 저장하기 위해 사용하는 라이브러리입니다. ORM(Object Relational Mapping) 라이브러리로서 DB 데이터를 Java 또는 Kotlin 객체로 매핑해줍니다. Room은 SQLite를 내부적으로 사용하지만, DB를 구조적으로 분리하여 데이터 접근의 편의성을 높여주고 유지보수에 편리합니다. 또한, 다양한 Annotation을 통해 컴파일 시 코드들을 자동으로 만들어주며 LiveData, RxJava와 같은 Observation 형태를 지원하고 MVP, MVVM과 같은 아키텍처 패턴에 쉽게 활용할 수 있도록 되어 있습니다. SQLite 대신 Room을 사용하는 이유‼️ 위에 나오는 안드로이드 문서에서처럼 SQLite는 쿼리의 컴..
-
[Android] 안드로이드 View 성능 올리는 꿀팁 feat.Naver Tech Concert 2020안드로이드 2022. 3. 8. 15:27
안드로이드 내부에서 일어나는 일들 🔍 (feat. 렌더링) 프레임 : 정지된 하나의 화면 또는 이미지 렌더링 : 하나의 프레임을 그려내는 과정 프레임 레이트 : 1초에 볼 수 있는 프레임(이미지)의 개수, 단위는 fps 안드로이드 화면은 60 fps를 유지해야 부드럽고 빠른 앱이라고 인지합니다. 앱이 버벅거리는 이유‼️ 앱은 16ms 이내에 화면을 갱신해야 합니다.(1000ms / 60 Frames = 16.666ms/frame) 16ms이내에 화면을 갱신하지 못한다면 프레임 드롭 발생 -> 마치 화면이 멈춘 것처럼 보이며 사용자 입장에서는 버벅거린다고 느낍니다. View에서 성능을 개선할 만한 부분👍🏻 1. overDraw를 줄이기 overDraw란 같은 픽셀에 여러 번 덧 칠하는 것을 의미합니다. o..
-
[Android] LiveData란안드로이드 2022. 2. 24. 12:41
LiveData란👀 LiveData는 Data의 변경을 관찰할 수 있는 데이터 홀더 클래스입니다. 일반적인 Observable과는 달리 LiveData는 안드로이드 LifeCycle을 따르고 있습니다. 여기서 LifeCycle은 Activity, Fragment, Service 등과 같은 안드로이드 컴포넌트의 LifeCycle을 인식합니다. 이에 따라 LiveData는 해당 컴포넌트의 LifeCycle의 상태가 ACTIVE(STARTED or RESUMED) 일 때만 데이터를 업데이트합니다. LiveData 객체는 Observer 객체와 함께 사용되어 LiveData가 가지고 있는 데이터에 어떤 변화가 감지되면 LiveData는 Observer객체에 변화를 알리고 Observer의 onChanged메서드..
-
[Android] Android Context란?안드로이드 2022. 2. 7. 13:30
안드로이드 개발을 하다 보면 Parameter로 Context를 빈번하게 넘겨주게 됩니다. 하지만 이 Context가 뭔지도 모르고서 계속 사용하다가 Context를 잘못 사용 시 메모리 누수가 쉽게 발생하게 됩니다.🤦🏻♂️ 그래서 Context가 무엇인지, 어떻게 사용해야 하는지에 대해서 알아보았습니다. Context란 애플리케이션의 현재 상태 Activity와 Application에 대한 정보를 얻는 데 사용 Resource, Database 및 Shared Preference에 대한 액세스 권한을 얻는 데 사용할 수 있다. Activity 및 Application 클래스 모두 Context 클래스 확장한 클래스 Context의 종류 Application Context : 싱글톤 인스턴스이며 get..