Utilizando o Jetpack Paging v3

João Gabriel
Jul 16, 2020 · 3 min read
Image for post
Image for post

O que é a Paging Library?

A Paging Library, é uma biblioteca criada pelo Google para resolver o problema da paginação de dados no Android.

Um problema que geralmente temos que resolver ao criar um aplicativo, é a solicitação de dados longos, que não exigem uma única vez, pois o usuário vê apenas uma pequena parte desses dados por vez.

Uma maneira de resolver esse problema, é adicionar um ScrollListener para o RecyclerView e carregar mais dados quando o usuário chega ao final da lista. Com esta abordagem, é difícil manter a eficiência, também a lógica da interface do usuário e gera uma lógica de dados complicada, o que dificulta a depuração e testes do projeto.

Vantagens

Novidades Paging 3

Como implementar

Primeiramente, é necessário ter o Android Studio na versão 3.6 ou superior.

Adicionar a dependência no build.gradle

def paging_version = "3.0.0-alpha02" 
implementation "androidx.paging: paging-runtime: $ paging_version"

Até o momento da escrita deste artigo, esta é a versão atual da biblioteca

Fluxo dos dados

Image for post
Image for post

O principal componente na camada de Repository é o PagingSource.
Cada objeto PagingSource, define uma fonte de dados e recupera os dados dessa fonte, seja ela um banco de dados local ou uma API externa. No nosso exemplo utilizarei uma API externa:

A partir da criação do nosso PagingSource na camada de Repository, criaremos o nosso Pager.

O Pager é o responsável por configurar o tamanho de nossas páginas de requisição, através do PagingConfig, e auxiliar no fluxo dos dados.

A partir da Paging v3, não é necessário converter Flow em LiveData.
Para manter um cache dos dados carregados no nosso
ViewModel, chamamos o cachedIn passando o nosso androidx.lifecycle.viewModelScope

Agora teremos a nossa última etapa de implementação, que é passar os dados carregados para a nossa View.

Será necessário coletar os dados vindos do PagingData e passar para o nosso Adapter:

Esta foi a implementação necessária para fazer paginação no Android usando a Paging Library, obrigado pela leitura.

O projeto com um exemplo foi compartilhado no meu Github.

Vou deixar aqui links adicionais com a documentação da biblioteca:

https://developer.android.com/topic/libraries/architecture/paging/v3-overview

Originally published at https://dev.to on July 16, 2020.

Android Dev BR

Artigos em português sobre Android, curados pela comunidade…

João Gabriel

Written by

Android Developer @ MovilePay

Android Dev BR

Artigos em português sobre Android, curados pela comunidade Android Dev BR. Junte-se a nós: https://androiddevbr.org/.

João Gabriel

Written by

Android Developer @ MovilePay

Android Dev BR

Artigos em português sobre Android, curados pela comunidade Android Dev BR. Junte-se a nós: https://androiddevbr.org/.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store