DiffUtil 2

Android Jetpack Paging 3 적용하기

아래는 공식문서의 Paging 3 개요 일부이다. `Repository` 에서는 PagingSource와 RemoteMediator 둘 중 하나를 쓰면 된다고 이해했다. 이중에서 나는 PagingSource를 사용했다. 하지만 만약 네트워크 연결이 불안정하거나 오프라인 상태에서도 데이터를 로드하기 위해서라면 RemoteMediator가 적절하다. `ViewModel`에서는 Pager() 를 통해 PagingSource 객체를 생성하고 이를 UI(Activity등) 에서 반응할 수 있게 한다. 'PagingDataAdapter`는 RecyclerView에서의 Adapter + ListAdapter 를 상상하면 된다. 1. PagingSource 코드는 아래와 같다. load()에서는 네트워크 통신을 포함한..

Programming/Android 2021.09.03

[Android] Recyclerview에 ListAdapter사용하기

지금까지 내가 안드로이드에서 리스트뷰를 구현했던 학습 과정은 아래의 순서였다. 기본 ListView Custom ListView RecyclerView DataBinding한 RecyclerView 이제 다음 단계는 ListAdapter를 이용한 RecyclerView 구현이다. 위의 4번을 베이스로 ListAdapter를 활용하는 것을 적어보겠다. 위의 2번과 3번의 차이가 Item 내에 view에 데이터를 bind할 때 ViewHoloder패턴의 강제 적용 유무였다면, ListAdapter를 사용한 RecyclerView는 Item 업데이트가 있을 때 이를 변경된 부분만 자동으로 탐지해서 notify 해준다. ListAdapter에서는 List를 저장하는 자료구조를 따로 만들지 않아도 된다. 어댑터 ..

Programming/Android 2021.04.29