Dicoding Developer Coaching merupakan webinar, yang membahas tuntas kendala maupun pertanyaan yang sering ditanyakan di Academy Dicoding.
Tema kali ini adalah "Case Study: Membuat Unlimited List dari Network dengan Paging"
Pada sesi special edition kali ini, kita akan belajar bagaimana cara untuk menampilkan data per halaman yang didapatkan dari network/API dengan menggunakan Paging. Data yang ditampilkan pada awalnya hanya halaman awal saja, namun kemudian kita bisa "load more" untuk mengakses halaman selanjutnya.
Dicoding Developer Coaching #29: Android | Case Study: Membuat Unlimited List dari Network dengan Paging
1. Case Study : Membuat Unlimited
List dari Network dengan Paging
Sidiq Permana
Co founder nbs.dev & Google Developer Expert
2. Apa yang kita butuhkan?
● Layanan web API.
● Repository yang berfungsi dengan layanan API, untuk abstraksi request
ke layer Network.
● Use Case yang berfungsi Orchestrator untuk manipulasi hasil request
sebelum dikirim ke layer presentasi.
● ViewModel yang menyiapkan permintaan data dari layer presentasi.
● UI, yang menunjukkan representasi visual dari data dalam ViewModel.
3. Paging
Paging membantu kita memuat data dan menampilkan data-data tersebut
secara bertahap (sebagian kecil dalam satu waktu).
Memuat data secara berkala/seperlunya akan mengurangi penggunaan
sumber daya, terutama Network Bandwidth dan System Resources.
7. ViewModel
● ViewModel akan menghandle permintaan data yang nantinya akan
diteruskan ke layer domain. Kenapa membutuhkan ViewModel? Karena
Paging 3 merupakan komponen yang bersifat lifecycle aware.
8. UI
● Kelas Paging Source bekerja dengan PagingDataAdapter untuk memuat
item ke dalam RecyclerView.
9. Paging Library mendukung
arsitektur data berikut:
● Data hanya berasal dari server
backend.
● Disimpan hanya ke database
pada perangkat.
● Kombinasi dari sumber lain,
menggunakan basis data di
perangkat sebagai cache.
10. How it works
● Untuk pertama kali load data
maka refresh key bernilai null
dan initial load akan dilakukan.
● Setelah request berhasil
dilakukan maka hasilnya akan
ditampilkan dan nilai dari
refresh key menjadi 2 dan
seterusnya
● Proses load more akan berhenti
hingga data sudah di load semua.
11. Guideline
● Define a arsitekturnya.
● Menambahkan library Paging dan library lain yang dibutuhkan.
● Menerapkan PagingSource pada layer Domain (Interactor).
● Implementasi PageData & PagingDataAdapter.
● Lakukan eksekusi di ViewModel
● Menghubungkan Adapter dengan View/Activity.