Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- notification
- kotlin
- 안드로이드
- Behavior
- 백준
- LiveData
- BOJ
- onLayout
- 알고리즘
- HTTP
- recyclerview
- Android
- activity
- CustomView
- Coroutine
- 코틀린
- room
- Algorithm
- sqlite
- 알림
- onMeasure
- AppBarLayout
- CoordinatorLayout
- ViewModel
- hilt
- Navigation
- View
- lifecycle
- DataBinding
- CollapsingToolbarLayout
Archives
- Today
- Total
개발일지
Android in A..Z - Paging3 (개념) 본문
Paging은 필요한 데이터만 로드하여 표시하는 라이브러리입니다.
사용자에게 리스트를 보여주는 앱에서 사용자에게 한번에 보여줄 수 있는 리스트의 양은 화면 크기에 제한됩니다. 서버에 저장된 모든 리스트 목록을 한번에 받고 메모리에 캐쉬하는 방식보다 필요한 만큼 데이터를 불러와서 리스트를 보여주는 것이 효과적입니다.
Paging3 구조
Repository
PagingSource : 각 페이지에서 데이터를 얻는 방법을 정의한다. (로컬 데이터베이스에서 데이터를 얻거나 서버에서 받아오도록 설정할 수 있다.)
RemoteMediator : 앱에서 캐쉬된 데이터를 모두 사용한 경우 페이징 라이브러에게 신호를 보내는 역할을 한다.
ViewModel
PagingConfig를 바탕으로 PagingSource에서 데이터를 얻어 PagingData를 만들고 Flow형으로 UI로 넘겨준다. PagingData는 PagingSource에서 얻은 데이터를 저장하는 객체입니다.
UI
RecyclerView의 Adapter인 PagingDataAdapter를 사용하거나 AsyncPagingDataDiffer를 직접 상속받아서 구현하여 사용할 수 있다.
Git (예제소스)
https://github.com/KangTaeJong98/Example/tree/main/Android/Paging
KangTaeJong98/Example
My Example Code. Contribute to KangTaeJong98/Example development by creating an account on GitHub.
github.com
'Android (안드로이드) > Paging' 카테고리의 다른 글
Android in A..Z - Paging (PagingAdapter) (0) | 2021.05.25 |
---|---|
Android in A..Z - Paging3 (Pager) (0) | 2021.05.25 |
Android in A..Z - Paging3 (PagingSource) (0) | 2021.05.25 |
Comments