개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.
이번에는 안드로이드 Paging에 대해서 알아보겠습니다.
구글 공식문서에는 아래와 같이 나와있습니다.
페이징 라이브러리 개요 Android Jetpack의 구성요소
페이징 라이브러리를 사용하면 로컬 저장소에서나 네트워크를 통해 대규모 데이터 세트의 데이터 페이지를 로드하고 표시할 수 있습니다. 이 방식을 사용하면 앱에서 네트워크 대역폭과 시스템 리소스를 모두 더 효율적으로 사용할 수 있습니다. 페이징 라이브러리의 구성요소는 권장 Android 앱 아키텍처에 맞게 설계되었으며 다른 Jetpack 구성요소와 원활하게 통합되고 최고 수준으로 Kotlin을 지원합니다.
페이징 라이브러리를 사용하여 얻을 수 있는 이점
페이징 라이브러리에는 다음과 같은 기능이 있습니다.
- 페이징된 데이터의 메모리 내 캐싱. 이렇게 하면 앱이 페이징 데이터로 작업하는 동안 시스템 리소스를 효율적으로 사용할 수 있습니다.
- 요청 중복 제거 기능이 기본으로 제공되어 앱에서 네트워크 대역폭과 시스템 리소스를 효율적으로 사용할 수 있습니다.
- 사용자가 로드된 데이터의 끝까지 스크롤할 때 구성 가능한 RecyclerView 어댑터가 자동으로 데이터를 요청합니다.
- Kotlin 코루틴 및 Flow뿐만 아니라 LiveData 및 RxJava를 최고 수준으로 지원합니다.
- 새로고침 및 재시도 기능을 포함하여 오류 처리를 기본으로 지원합니다.
Paging 라이브러리를 사용하면 앱의 UI 내 데이터를 점진적이고 매끄럽게 로드할 수 있습니다. Paging API는 페이지에서 데이터를 로드해야 할 때 수동으로 구현해야 하는 많은 기능을 지원합니다.
- 다음 및 이전 페이지를 가져오는 데 사용될 키를 추적합니다.
- 사용자가 목록의 끝으로 스크롤하면 자동으로 올바른 페이지를 요청합니다.
- 여러 요청이 동시에 트리거되지 않도록 합니다.
- 데이터를 캐시할 수 있습니다. Kotlin을 사용하는 경우 CoroutineScope에서 이 작업이 실행되며 자바를 사용하는 경우 LiveData로 이 작업을 실행할 수 있습니다.
- 로드 상태를 추적하여 UI의 RecyclerView 목록 항목 또는 다른 위치에 표시하고 실패한 로드를 쉽게 다시 시도할 수 있습니다.
- Flow, LiveData, RxJava Flowable 또는 Observable 사용 여부와 관계없이 표시되는 목록에서 map 또는 filter와 같은 일반적인 작업을 실행할 수 있습니다.
- 목록 구분자를 쉽게 구현할 수 있습니다.
쉽게 말하면, JETPACK 구성 요소들과 같이 사용할 수 있는데, 데이터들을 받아올 때 효율적으로 사용할 수 있다 정도로 알고 있으면 될 것 같습니다.
간단한 예제들을 한번 해보겠습니다.
- 참조
https://developer.android.com/codelabs/android-paging?hl=ko#3
https://developer.android.com/topic/libraries/architecture/paging/v3-overview?hl=ko
'Android Jetpack' 카테고리의 다른 글
Android View에 대한 접근 - 5 (Adapter ViewBinding) (0) | 2022.03.09 |
---|---|
WorkManager - 4 (WorkManager Data Transfer) (0) | 2022.03.07 |
WorkManager - 3 (WorkManager + Coroutine) (0) | 2022.03.06 |
WorkManager - 2 (WorkManager Simple Ex) (0) | 2022.03.06 |
WorkManager - 1 (WorkManager란) (0) | 2022.03.06 |