Slide 1

Slide 1 text

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?

Slide 6

Slide 6 text

LATAM ListView RecyclerView ListAdapter Muchas… ✨

Slide 7

Slide 7 text

LATAM

Slide 8

Slide 8 text

LATAM Repository Database ViewModel [...] LiveData> Observable>

Slide 9

Slide 9 text

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?

Slide 17

Slide 17 text

LATAM ¿Cómo adoptar Paging 3 en tus aplicaciones?

Slide 18

Slide 18 text

LATAM Repository ViewModel UI Paging Source Remote Mediator Pager Flow PagingDataAdapter Veamos

Slide 19

Slide 19 text

LATAM Repository Paging Source Remote Mediator Repositorio

Slide 20

Slide 20 text

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

Slide 36

Slide 36 text

LATAM ¿Preguntas?

Slide 37

Slide 37 text

LATAM Manuela Flores @manuflowers_ ManuelaFlores ¡Gracias!