일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 코틀린
- 프로토타입 패턴
- designPattern
- 싱글톤
- Functional Programming
- builderPattern
- F
- ㅋㅁ
- 추상팩토리패턴
- 디자인패턴 #
- factory method
- 빌터패턴
- Design Pattern
- Abstract Factory
- 팩토리 메소드
- 옵저버 패턴
- 추상 팩토리
- r
- a
- Observer Pattern
- 디자인패턴
- Singleton
- El
- ㅓ
- 함수형프로그래밍
- PrototypePattern
- Kotlin
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
Paging3 개요 본문
얻을수 있는 점
1. 페이징된 데이터를 메모리에 캐싱 -> 시스템 자원을 효율적으로 사용.
2. 데이터 요청의 중복을 제거 기능 -> 네트워크 대역폭과 자원을 효율적 사용.
3. 로드된 데이터를 끝까지 스크롤할때 Recyclerview 자동으로 데이터 요청.
4. Kotlin coroutine / Flow뿐만 아니라 LiveData 및 RxJava를 최고 수준으로 지원
5. 새로고침 / 재시도 등을 포함한 오류처리 기본지원.
아키텍처
- repositort
- viewModel
- ul
repository
PagingSource
- PagingSource 객체는 데이터 소스와 이 소스에서 데이터를 검색하는 방법을 정의
- PagingSource 객체는 네트워크 소스 및 로컬 데이터베이스를 포함한 단일 소스에서 데이터를 로드할 수 있다.
- load() 초기 데이터 로드, getRefreshKey() 새로고침 데이터 로드 를 정의한다.
- LoadResult의 모델링된 성공 실패 처리 반환.
RemoteMediator
- RemoteMediator 객체는 로컬 데이터베이스(room, realm)캐시가 있는 네트워크 데이터 소스와 같은 계층화된 데이터 소스의 페이징을 처리
ViewModel
pager
- repository 에서 정의한 PagingSource 및 PagingConfig 객체를 바탕으로 반응형 스트림에 노출되는 PagingData 를 구성하기 위한 공개 API 제공
UI
PagingDataAdapter
- recyclerView의 Adapter로 페이지로 나눠진 데이터를 처리한다.
AsyncPagingDataDiffer
- 고유한 맞춤 어뎁터를 빌드
앱에서 UI용 Compose를 사용하는 경우 페이징을 UI 레이어에 통합하는 데 androidx.paging:paging-compose 아티팩트를 대신 사용하세요. 자세한 내용은 collectAsLazyPagingItems()에 관한 API 문서를 참조하세요
'Android Jetpack Architecture > Paging3' 카테고리의 다른 글
네트워크 및 데이터베이스의 페이징. (0) | 2021.08.19 |
---|---|
UI에 페이징된 데이터 표시 (0) | 2021.08.19 |
PagingDataAdapter 정의하기. (0) | 2021.08.19 |
PagingData 스트림 설정(Pager 객체 만들기) (0) | 2021.08.19 |
Paging3 데이터 로드 (0) | 2021.08.19 |