Android

Android

[Android] Version Catalog

아키텍쳐를 공부하려고 안드로이드 샘플 프로젝트를 분석하고 있었다.안드로이드 공식 샘플로 유명한 "Now in Android"를 분석하고 있었는데 처음보는 내용을 발견했다.더보기Now in Android 구경하기 GitHub - android/nowinandroid: A fully functional Android app built entirely with Kotlin and Jetpack ComposeA fully functional Android app built entirely with Kotlin and Jetpack Compose - android/nowinandroidgithub.com Gradle 파일의 dependencies 선언부가 내가 알던 내용과 다르게 생겼었다.어떤 구조로 작성이 된 ..

Android

[Android] Serializable, Parcelable

안드로이드에서 액티비티와 같은 안드로이드 컴포넌트에 POJO 같은 데이터를 전달을 해야 할 때가 있다. 액티비티와 같은 안드로이드 컴포넌트들에 데이터를 전달하기 위해서는 반드시 인텐트를 통해 전달하게 된다. 이 때 데이터 객체를 전달할 수 있도록 직렬화 인터페이스로 Serializable과 Parceable을 제공한다. Serializable 자바 표준 인터페이스 중 하나로 안드로이드 SDK에 포함되어 있지 않다. 전달하고자 하는 데이터 클래스(POJO)에 Serializable 인터페이스를 구현만 하면 액티비티로 데이터를 전달할 준비가 된다. Java 더보기 import java.io.Serializable; public class CommunityListResponse implements Serial..

Android

[Android] DataBinding

1. DataBinding Android Jetpack 라이브러리의 구성 요소이며, XML 파일에 Data를 연결(Binding)해서 선언적 형식으로 레이아웃의 UI 구성 요소를 데아터 소스와 결합할 수 있도록 도와주는 라이브러리이다. 2. DataBinding 사용하는 이유 App 로직과 레이아웃을 바인딩 시 필요한 글루 코드를 최소화 할 수 있다. 액티비티에서 findViewById를 작성하지 않아도 자동으로 View를 생성한다. Data가 변경되면 자동으로 View를 업데이트 한다. 따라서 MVVM 아키텍쳐와 함께 사용하게 되면 여러 장점이 생기게 된다. RecyclerView의 아이템 세팅 작업을 자동으로 한다. XML 리소스만 보고도 View에 어떤 데이터가 들어가는지 파악 가능하다. 3. Da..

Android

[Android] Paging3 Frame Drop Issue

페이징 라이브러리 사용 중 프레임 드랍 이슈를 겪게 되어 작성해본다. 문제점 페이징된 목록들을 스크롤 시 해당 에러를 출력하면서 프레임이 끊기며 스크롤 되는 문제가 발생했다. "Skipped 611 frames! The application maybe doing too much work on its main thread." 시행 착오 먼저 프레임 드랍과 함께 출력된 에러를 보고 메인 스레드에서 너무 많은 작업을 했다길래 페이징 데이터를 UI에 그리는 과정에서 너무 많은 UI 소스 때문에 과부하가 걸린다고 생각했다. (사실 이때부터 페이징 데이터를 로드하는 작업이 너무 많다고 알려주고 있었는데 다르게 생각해버렸다..) 그럴만도 한게 사진처럼 카드뷰 하나에 벡터 이미지와 받아오는 데이터들이 많기도 하고 제작..

Android

[Android] Hilt - Android DI Library

Hilt Hilt는 Google Dagger를 기반으로 만든 안드로이드 전용 DI 라이브러리다. 프로젝트에 Hilt를 적용하는 과정에서 Hilt에 대해 자세하게 알아보려고 한다. DI 라이브러리를 접해본 사람이라면, Dagger를 많이 들어봤을 것이다. 물론 안드로이드에서도 Dagger를 사용할 수 있고 실제로 가장 많이 사용되던 라이브러리였다. 왜 Hilt를 사용했는지 알아보기 전에 세가지 DI 라이브러리를 비교해보겠다. 안드로이드에서 사용하는 DI(Dependency Injection)는 Dagger, Koin, Hilt 세가지가 있다. Dagger 구글에서 개발된 의존성 주입 프레임워크, Java 기반 프로젝트에서 가장 많이 쓰이는 도구이다. 러닝 커브가 크지만 많은 사람들이 사용하는 만큼 안정성이..

Android

[Android] Room DB 사용해보기

Room Room은 Android Jetpack의 구성요소 중 하나로, 로컬 Database를 관리해주는 라이브러리이다. AAC(Android Architecture Components) 구성요소로 Room 라이브러리가 나왔으며, SQLite를 활용했다. SQLite는 쿼리를 수동으로 업데이트 해야하고 여러모로 귀찮고 복잡하고 어렵고 싫다! 걍 싫다! 이런 복잡한걸 해결하기 위해 Room이 나오게 되었고, Room은 굉장히 편리하게 동작한다. Room 기본 구성요소 Room에는 3가지 구성요소를 가진다. 데이터베이스 클래스(Room Database): 데이터베이스를 보유하고 앱의 영구 데이터와의 기본 연결을 위한 기본 액세스 포인트 역할을 합니다. 데이터 항목(Entities): 앱 데이터베이스의 테이블..

Sangyoon98
'Android' 카테고리의 글 목록