Apple is Apple
article thumbnail
Published 2024. 1. 18. 21:11
2024-01-18 TIL

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
profile

Apple is Apple

@mjjjjjj