본문 바로가기
SMALL

PagingData4

[Paging] PagingData를 사용하도록 어댑터 설정 PagingData를 RecyclerView에 바인딩하려면 PagingDataAdapter를 사용해야 한다. PagingData 콘텐츠가 로드될 때마다 PagingDataAdatper에서 알림을 받은 다음 RecyclerView에 업데이트하라는 신호를 보낸다. - 현재는 ArticleAdapter에서 ListAdapter를 구현한다. 대신 PagingDataAdapter를 구현하도록 한다. import androidx.paging.PagingDataAdapter ... class ArticleAdapter : PagingDataAdapter(ARTICLE_DIFF_CALLBACK) { // body is unchanged } 이제 UI를 연결하기만 하면 된다. 2023. 2. 20.
[Paging] ViewModel에서 PagingData 요청 및 캐시 컴파일 오류를 해결하기 전에 ViewModel을 살펴보겠다. class ArticleViewModel(...) : ViewModel() { val items: StateFlow = ... } ViewModel에 Paging 라이브러리를 통합하기 위해 items의 반환 유형을 StateFlow에서 Flow로 변경한다. 이렇게 하려면 먼저 ITEMS_PER_PAGE라는 비공개 상수를 파일 상단에 추가한다. private const val ITEMS_PER_PAGE = 50 class ArticleViewModel { ... } 다음으로 Pager 인스턴스의 출력 결과가 되도록 items를 업데이트한다. Pager에 매개변수 두 개를 전달하면 된다. - pageSize가 ITEMS_PER_PAGE이고 자리표시.. 2023. 2. 20.
[Paging] Paging 사용법 1. 데이터 소스 정의 페이지로 나누기를 구현할 때 다음 조건을 충족하는지 확인해야 한다. - UI의 데이터 요청을 올바르게 처리하여 동일한 쿼리에 여러 요청이 동시에 트리거되지 않도록 한다. - 관리 가능한 양의 가져온 데이터를 메모리에 유지한다. - 이미 가져온 데이터를 보완하기 위해 추가 데이터를 가져오라는 요청을 트리거한다. PagingSource를 사용하면 이 작업을 모두 실행할 수 있다. PagingSource는 데이터를 가져오는 방법을 지정하여 데이터 소스를 정의한다. 그러면 PagingData 객체는 사용자가 RecyclerView에서 스크롤할 때 생성되는 힌트가 로드되면 PagingSource에서 데이터를 가져온다. data class Article( val id: Int, val tit.. 2023. 2. 5.
[Paging] Paging이란? 1. Paging이란? 사용자에게 정보를 표시하는 가장 일반적인 방법 중 하나는 리스트를 사용하는 것이다. 그러나 이러한 리스트는 전체 콘텐츠로 통하는 작은 창에 불과하다. 사용자는 제공되는 정보를 스크롤할 떄 이미 확인한 정보를 보완할 수 있는 더 많은 데이터가 있을 것이라고 예상하는 경우가 많다. 데이터를 가져올 때 효율적이고 원활하게 진행되어 계속 늘어나는 로드가 사용자 환경을 저해하지 않아야 한다. 점진적 로드는 성능 향상에도 도움이 되며 앱에서 많은 양의 데이터를 한 번에 메모리에 저장할 필요가 없기 때문이다. 정보를 점진적으로 가져오는 이 프로세스를 페이지로 나누기라고 하며 각 페이지는 가져올 데이터에 상응한다. 페이지를 요청하려면 페이징되는 데이터 소스에는 필요한 정보를 정의하는 쿼리가 필요.. 2023. 2. 3.
LIST