Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Ringkasan library paging 3   Bagian dari Android Jetpack.

Library Paging membantu Anda memuat dan menampilkan halaman data dari set data yang lebih besar dari penyimpanan lokal atau melalui jaringan. Pendekatan ini memungkinkan aplikasi Anda menggunakan bandwidth jaringan dan resource sistem secara lebih efisien. Komponen library Paging didesain agar sesuai dengan arsitektur aplikasi Android yang direkomendasikan, yang terintegrasi secara baik dengan komponen Jetpack lainnya, dan menyediakan dukungan Kotlin kelas satu.

Manfaat menggunakan library Paging

Library Paging mencakup fitur berikut:

  • Cache dalam memori untuk data Anda yang di-page. Hal ini memastikan bahwa aplikasi Anda menggunakan resource sistem secara efisien saat bekerja dengan data yang di-page.
  • Dengan penghapusan duplikat permintaan bawaan, Anda dapat memastikan bahwa aplikasi Anda menggunakan bandwidth jaringan dan resource sistem secara efisien.
  • Adaptor RecyclerView yang dapat dikonfigurasi yang otomatis meminta data saat pengguna men-scroll ke akhir data yang dimuat.
  • Dukungan kelas satu untuk coroutine Kotlin dan Flow, serta LiveData dan RxJava.
  • Dukungan bawaan untuk penanganan kesalahan, termasuk kemampuan refresh dan percobaan kembali.

Berikan masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau punya masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui untuk library ini sebelum membuat laporan baru. Anda dapat memberikan suara pada masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk mengetahui informasi selengkapnya.

Penyiapan

Untuk mengimpor komponen Paging ke dalam aplikasi Android, tambahkan dependensi berikut ke file build.gradle aplikasi Anda:

dependencies {
  def paging_version = "3.0.0-beta01"

  implementation "androidx.paging:paging-runtime:$paging_version"

  // alternatively - without Android dependencies for tests
  testImplementation "androidx.paging:paging-common:$paging_version"

  // optional - RxJava2 support
  implementation "androidx.paging:paging-rxjava2:$paging_version"

  // optional - RxJava3 support
  implementation "androidx.paging:paging-rxjava3:$paging_version"

  // optional - Guava ListenableFuture support
  implementation "androidx.paging:paging-guava:$paging_version"

  // Jetpack Compose Integration
  implementation "androidx.paging:paging-compose:1.0.0-alpha07"
}

Arsitektur library

Library Paging terintegrasi langsung ke dalam arsitektur aplikasi Android yang direkomendasikan. Komponen library beroperasi di tiga lapisan aplikasi Anda:

  • Lapisan repositori
  • Lapisan ViewModel
  • Lapisan UI
Data yang di-page mengalir dari komponen PagingSource atau RemoteMediator
    di lapisan repositori ke komponen Pager di lapisan ViewModel.
    Selanjutnya, komponen Pager menampilkan Aliran PagingData ke
    PagingDataAdapter di lapisan UI.
Gambar 1. Contoh cara library Paging menyesuaikan arsitektur aplikasi Anda.

Bagian ini menjelaskan komponen library Paging yang beroperasi di setiap lapisan dan cara kerjanya bersama untuk memuat dan menampilkan data yang di-page.

Lapisan repositori

Komponen library Paging utama di lapisan repositori adalah PagingSource. Setiap objek PagingSource menentukan sumber data dan cara mengambil data dari sumber tersebut. Objek PagingSource dapat memuat data dari sumber tunggal mana pun, termasuk sumber jaringan dan database lokal.

Komponen library Paging lain yang dapat Anda gunakan adalah RemoteMediator. Objek RemoteMediator menangani paging dari sumber data berlapis, seperti sumber data jaringan dengan cache database lokal.

Lapisan ViewModel

Komponen Pager menyediakan API publik untuk membuat instance PagingData yang terekspos dalam aliran reaktif, berdasarkan objek PagingSource dan objek konfigurasi PagingConfig.

Komponen yang menghubungkan lapisan ViewModel ke UI adalah PagingData. Objek PagingData adalah penampung untuk snapshot data yang telah dipaginasi. Objek ini akan meminta objek PagingSource dan menyimpan hasilnya.

Lapisan UI

Komponen library Paging utama di lapisan UI adalah PagingDataAdapter, yaitu adaptor RecyclerView yang menangani data yang dipaginasi.

Atau, Anda dapat menggunakan komponen AsyncPagingDataDiffer yang disertakan untuk membuat adaptor kustom sendiri.

Referensi lainnya

Untuk mempelajari library Paging lebih lanjut, lihat referensi tambahan berikut:

Codelab

Contoh