Paging basic
사용자에게 정보를 표시하는 가장 일반적인 방법 중 하나는 리스트(안드로이드에선 리사이클러뷰나 리스트 뷰등이 있을 것이다.)를 사용하는 것이다.
그러나 때때로 이러한 목록은 전체 콘텐츠로 통하는 작은 창에 불과다.
사용자는 제공되는 정보를 스크롤할 때, 하단에 더 많은 데이터가 있을 것이라고 예상하는 경우가 많다.
데이터를 가져올 때 효율적이고 원활하게 진행되어 계속 늘어나는 로드가 사용자 환경을 저해하지 않아야한다. (사용자 경험) -> 한 번에 로딩 X
그러므로 점진적인 로딩은 성능 향상에도 도움이 된다. 앱에서 많은 양의 데이터를 한 번에 메모리에 저장할 필요가 없기 때문이다.
정보를 점진적으로 가져오는 이 프로세스를 페이징이라하며 각 페이지는 가져올 데이터 청크에 대응한다.
페이지를 요청하려면 페이징되는 데이터 소스에는 필요한 정보를 정의하는 쿼리가 필요한 경우가 많다.
Paging 라이브러리의 핵심 구성요소
- PagingSource: 특정 페이지 쿼리의 데이터 청크를 로드하는 기본 클래스. 데이터 레이어의 일부이며 일반적으로 DataSource 클래스에서 노출되고 이후에 ViewModel에서 사용하기 위해 Repository에 의해 노출
- PagingConfig: 페이징 동작을 결정하는 매개변수를 정의하는 클래스. 여기에는 페이지 크기, 자리표시자의 사용 설정 여부 등이 포함됨
- Pager: PagingData 스트림을 생성하는 클래스. PagingSource에 따라 다르게 실행되며 ViewModel에서 만들어야한다.
- PagingData: 페이지로 나눈 데이터의 컨테이너. 데이터를 새로고침할 때마다 자체 PagingSource로 지원되는 상응하는 PagingData 내보내기가 별도로 생성된다.
- PagingDataAdapter: RecyclerView에 PagingData를 표시하는 RecyclerView.Adapter 서브클래스입니다. PagingDataAdapter는 팩토리 메서드를 사용하여 Kotlin Flow나 LiveData, RxJava Flowable, RxJava Observable 또는 정적 목록에도 연결할 수 있다. PagingDataAdapter는 내부 PagingData 로드 이벤트를 수신 대기하고 페이지가 로드될 때 UI를 효율적으로 업데이트한다.
'TIL' 카테고리의 다른 글
2024-01-26 (0) | 2024.01.26 |
---|---|
2024-01-16 (0) | 2024.01.16 |
2024-01-12 (1) | 2024.01.13 |
2023-12-28 (0) | 2023.12.28 |
2023-12-22 (0) | 2023.12.23 |