Android/Jetpack5 [Android/Kotlin] Paging3란? # Paging3란? 페이징 라이브러리는 로컬 데이터베이스 또는 네트워크(Remote)의 데이터를 페이지 단위로 UI에 쉽게 표현할 수 있도록 도와주는 라이브러리다. 라이브러리를 사용하지 않고 기존에 ScrollListener을 사용해서 무한스크롤을 구현하기 위해서는 RecyclerView와 같은 리스트 UI가 상단 또는 하단에 도달했는지 판단하는 코드를 작성하고, 다음 페이지를 로드(or Refresh)하는 코드를 또 작성해야만 했다.(이땐 네트워크오류, 스크롤 감지 이상과 같은 현상이 발생할 가능성 있음) 페이징은 데이터를 가져올 때 한 번에 모든 데이터를 가져오는 것이 아니라, 일정한 덩어리(페이지)로 나눠서 가져온다예를 들어, 구글에서 어떤 키워드로 검색하게 되면 결과의 모든 데이터를 한 번에 .. 2025. 7. 3. [Android/Kotlin] Room의 3요소와 역할은 뭘까? ❓ RoomDB 란??SQLite 데이터베이스를 더 쉽게 사용할 수 있도록 도와주는 ORM(Object-Relational Mapping) 라이브러리다.RoomDB를 사용하면 DB와 앱 간의 데이터 작업을 간소화하면서도, SQLite의 강력한 기능까지 활용할 수 있다는 이점이 있다. 주요특징SQLite위에서 작동해서, 복잡한 SQL쿼리를 작성하지 않고 데이터 효율적으로 관리가능컴파일시점에 SQL문법검사를 수행해, 오류 줄여줌 (런타임 오류 감소)테이블과 객체간의 변환이 자동으로 처리됨 (데이터 매핑)Room은 LiveData, Flow같은 라이프사이클 인식컴포넌트와 잘 통합되어, 반응형 프로그래밍에 적합함백그라운드 작업최적화-> 데이터 작업은 기본적으로 백그라운드 스레드에서 수행하도록 되어있는데, 얘는 .. 2024. 6. 23. [Android/Kotlin] 프래그먼트간 데이터를 공유하는 ViewModel 카카오맵에서 라벨(마커)를 눌렀을때 bottomSheet가 나오는데,마커를 눌렀을때 지역에 따라 bottomSheet의 데이터가 다르게 나왔으면 했다 마커를 눌렀을때 MapFragment에서 데이터를 받아오는것까지는 성공했다그런데 그 받아온 데이터를 뿌려줄곳이 MapFragment가 아니라 BottomSheetFragment였다.즉, 서로 다른 Fragment에서 같은 viewModel데이터를 공유해야되는 상황이였다 그럴땐 sharedViewModel을 사용해서 viewModel을 선언할때 activityViewModels()로 선언하면, 서로 다른 Fragment에서 같은 viewModel데이터를 공유해서 사용할 수 있다!!!(한쪽 프래그먼트에서는 Data를 Update하고, 다른 한 프래그먼트에서는 .. 2024. 6. 5. [Android/Kotlin] Navigation Component 구현 ❓Navigation Component란???- 안드로이드 Jetpack의 일부로, 앱 내에서 화면전환(네비게이션)을 관리하는데 도움을 주는 라이브러리!!- 프래그먼트나 엑티비티 간의 이동, 인자(데이터)전달, 애니메이션, 앱바와의 통합을 간편하게 처리할 수 있도록 한다. 💻 구현하기이제 직접 구현해보면서 알아보자. 먼저 build.gradle에 아래 코드들을 추가해준다plugins { id 'kotlin-kapt'}dependencies { implementation("androidx.navigation:navigation-fragment-ktx:2.7.7") implementation("androidx.navigation:navigation-ui-ktx:2.7.7")}build.. 2024. 5. 28. [Android/Kotlin] Hilt란? # Hilt란?공식문서에 정리되어있는 Hilt의 정의이다Hilt는 프로젝트의 모든 Android 클래스에 컨테이너를 제공하고 수명 주기를 자동으로 관리함으로써, 애플리케이션에서 DI를 사용하는 표준 방법을 제공합니다. 그럼 DI란 뭘까?DI는 Dependency Injection의 약자로, 의존성 주입을 뜻한다특정 한 객체가 다른 객체를 필요로 할 때 이 의존성을 제공하는 기술이 DI이다객체가 다른 객체를 필요로 하면, 외부에서 해당하는 객체를 생성하여 필요한 객체에 넘겨주게 된다 DI는 아래와 같은 장점이 있다.코드 재사용성 향상결합도 감소테스트 용이성의존성을 가짜 객체나 Mock 객체로 대체하여 테스트 수행 가능코드의 유연성 및 확장성, 가독성 향상새로운 기능을 추가하거나, 기능을 수정할 때 미치는 .. 2024. 5. 24. 이전 1 다음