El ABC de Paging 3
Manuela Flores
@manuflowers_
ManuelaFlores
Slide 2
Slide 2 text
Sobre mi
Para que me conozcan un poco más :)
● Egresada de Laboratoria.
● Android Developer en Lumingo.
● Kotlin lover desde que nací como Android Dev .
● Me encanta el aprendizaje continuo.
Slide 3
Slide 3 text
LATAM
Listas Everywhere
¿Cuál es el contexto?
Slide 4
Slide 4 text
LATAM
Slide 5
Slide 5 text
LATAM
¿De cuántas maneras
podemos construir una
lista?
ListAdapter
La vida sin Paging
● Toma listas inmutable.
● Provee actualizaciones animadas.
● Actualiza diferencias en segundo plano.
Slide 10
Slide 10 text
Entonces
¿Cúal sería el problema?
Database
Slide 11
Slide 11 text
LATAM
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
● Comodidad.
● Queremos manejar capas(ui, db, repository).
● Mejor Performance.
● Ser conscientes del ciclo de vida de los componentes.
● Flexibles.
¿Qué estamos buscando? ♀
Slide 14
Slide 14 text
LATAM
Paging viene al rescate
Paging 2 fue anunciado en el GoogleIO del 2018, sin
embargo nosotros necesitábamos más mejoras.
Slide 15
Slide 15 text
● Está reescrita totalmente con
corrutinas.
● Registro correcto de las ‘keys’ para
recuperar datos.
● Pide la cantidad necesaria de datos.
¿Qué trae Paging 3?
Slide 16
Slide 16 text
● Asegura que no se activen varias
solicitudes al mismo tiempo.
● Simplifica el almacenamiento en
caché.
● Rastrea los estados de carga.
● Permite operaciones
comunes(Ej: map, filter).
¿Qué trae Paging 3?
LATAM
Llegó el momento de mostrar mi
demo
Repositorio en Github
Slide 21
Slide 21 text
LATAM
Slide 22
Slide 22 text
PagingSource
Slide 23
Slide 23 text
Network + Database
● Pueden existir peticiones
fallidas.
● Los datos guardados en la base
de datos no se usan incluso si
están presentes.
Slide 24
Slide 24 text
LATAM
La base de datos es la única fuente de la
verdad para la UI
Slide 25
Slide 25 text
1. Room PagingSource
Slide 26
Slide 26 text
2. RemoteMediator
Slide 27
Slide 27 text
LATAM
ViewModel
Pager
Flow
ViewModel
Slide 28
Slide 28 text
1. Pager
Slide 29
Slide 29 text
LATAM
UI
PagingDataAdapter
UI
Slide 30
Slide 30 text
1. PagingDataAdapter
Slide 31
Slide 31 text
1. Activity
Slide 32
Slide 32 text
LATAM
Paging trae mucho más
● List transformations.
● Soporte para operaciones
comunes en la UI, como headers,
footers, estados de carga.
● ¡Denle un intento! :D
Slide 33
Slide 33 text
LATAM
¡Recursos para
aprender Paging!
● Paging Codelab.
● Paging Blog.
● Documentación Oficial.
● Repositorio en Github.
Slide 34
Slide 34 text
LATAM
Referencias
● Manage Infinite lists with RecyclerView
and Paging (Google I/O ‘18).
● Dutch Android Summer Season.
● List Adapter
Slide 35
Slide 35 text
Sobre esta charla
¿Qué aprendimos hoy?
● El contexto de Paging.
● ¿Qué trae Paging 3?
● Cómo adoptar Paging 3 en tus aplicaciones.
● Cómo serían las cosas sin Paging