개발일지

Android in A..Z - Paging3 (개념) 본문

Android (안드로이드)/Paging

Android in A..Z - Paging3 (개념)

강태종 2021. 5. 25. 00:42

Paging은 필요한 데이터만 로드하여 표시하는 라이브러리입니다.

사용자에게 리스트를 보여주는 앱에서 사용자에게 한번에 보여줄 수 있는 리스트의 양은 화면 크기에 제한됩니다. 서버에 저장된 모든 리스트 목록을 한번에 받고 메모리에 캐쉬하는 방식보다 필요한 만큼 데이터를 불러와서 리스트를 보여주는 것이 효과적입니다.

 


Paging3 구조

Repository

PagingSource : 각 페이지에서 데이터를 얻는 방법을 정의한다. (로컬 데이터베이스에서 데이터를 얻거나 서버에서 받아오도록 설정할 수 있다.)

 

RemoteMediator : 앱에서 캐쉬된 데이터를 모두 사용한 경우 페이징 라이브러에게 신호를 보내는 역할을 한다.

 

ViewModel

PagingConfig를 바탕으로 PagingSource에서 데이터를 얻어 PagingData를 만들고 Flow형으로 UI로 넘겨준다. PagingData는 PagingSource에서 얻은 데이터를 저장하는 객체입니다.

 

UI

RecyclerView의 Adapter인 PagingDataAdapter를 사용하거나 AsyncPagingDataDiffer를 직접 상속받아서 구현하여 사용할 수 있다.


Git (예제소스)

https://github.com/KangTaeJong98/Example/tree/main/Android/Paging

 

KangTaeJong98/Example

My Example Code. Contribute to KangTaeJong98/Example development by creating an account on GitHub.

github.com

 

Comments