Descripción general de la biblioteca de Paging Parte de Android Jetpack.
La biblioteca de Paging te ayuda a cargar y mostrar páginas de datos de un conjunto de datos más grande desde el almacenamiento local o por una red. Este enfoque permite que tu app use el ancho de banda de la red y los recursos del sistema de manera más eficiente. Los componentes de la biblioteca de Paging están diseñados para adaptarse a la arquitectura de apps para Android recomendada, integrarse con facilidad a otros componentes de Jetpack y proporcionar compatibilidad de primer nivel con Kotlin.
Beneficios de usar la biblioteca de Paging
La biblioteca de Paging incluye las siguientes funciones:
- Almacenamiento en caché en memoria para los datos paginados, que garantiza que tu app use los recursos del sistema de manera eficiente mientras trabaja con datos paginados
- Anulación integrada de duplicación de solicitudes, que ayuda a garantizar que la app use el ancho de banda de la red y los recursos del sistema de manera eficiente
- Adaptadores
RecyclerView
configurables que solicitan datos automáticamente a medida que el usuario se desplaza hacia el final de los datos cargados - Compatibilidad de primer nivel con corrutinas y flujos de Kotlin, además de
LiveData
y RxJava - Compatibilidad integrada para el manejo de errores, incluidas funciones de actualización y reintento
Envía comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información sobre cómo enviar comentarios.
Configuración
Si quieres importar componentes de Paging a tu app para Android, agrega las siguientes dependencias al archivo build.gradle
de tu app:
Groovy
dependencies { def paging_version = "3.3.2" 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" // optional - Jetpack Compose integration implementation "androidx.paging:paging-compose:3.3.2" }
Kotlin
dependencies { val paging_version = "3.3.2" 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") // optional - Jetpack Compose integration implementation("androidx.paging:paging-compose:3.3.2") }
Arquitectura de la biblioteca
Los componentes de la biblioteca de Paging operan en tres capas de tu app:
- La capa del repositorio
- La capa
ViewModel
- La capa de la IU
En esta sección, se describen los componentes de la biblioteca de Paging que operan en cada capa, así como la manera en que funcionan juntos para cargar y mostrar datos paginados.
Capa del repositorio
El componente principal de la biblioteca de paginación en la capa del repositorio es PagingSource
. Cada objeto PagingSource
define una fuente de datos y la manera en que recuperará los datos de esa fuente. Un objeto PagingSource
puede cargar datos desde cualquier fuente única, incluidas fuentes de red y bases de datos locales.
Otro componente de la biblioteca de Paging que puedes usar es RemoteMediator
. Un objeto RemoteMediator
controla la paginación de una fuente de datos en capas, como una fuente de datos de red con una caché de base de datos local.
Capa ViewModel
El componente Pager
proporciona una API pública para crear instancias de PagingData
que se exponen en flujos reactivos, basadas en un objeto PagingSource
y en un objeto de configuración PagingConfig
.
El componente que conecta la capa ViewModel
con la IU es PagingData
. Un objeto PagingData
es un contenedor del resumen de los datos paginados. Busca un objeto PagingSource
y almacena el resultado.
Capa de la IU
El componente principal de la biblioteca de Paging en la capa de la IU es PagingDataAdapter
, un adaptador RecyclerView
que controla datos paginados.
Como alternativa, puedes usar el componente AsyncPagingDataDiffer
incluido para compilar tu propio adaptador personalizado.
Recursos adicionales
Para obtener más información sobre la biblioteca de Paging, consulta los siguientes recursos adicionales:
Codelabs
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Cómo cargar y mostrar datos paginados
- Cómo migrar a Paging 3
- Página de la red y la base de datos