Visão geral da biblioteca Paging 3 Parte do Android Jetpack.
A biblioteca Paging ajuda a carregar e exibir páginas de um conjunto de dados maior pelo armazenamento local ou pela rede. Essa abordagem permite que o app use a largura de banda da rede e os recursos do sistema de modo mais eficiente. Os componentes da biblioteca Paging foram projetados para se ajustar à arquitetura de apps Android recomendada, integrar-se de forma limpa a outros componentes do Jetpack e fornecer compatibilidade de alto nível com Kotlin.
Benefícios do uso da biblioteca Paging
A biblioteca Paging inclui os seguintes recursos:
- Armazenamento em cache na memória dos dados paginados. Isso garante que seu app use recursos do sistema de maneira eficiente enquanto trabalha com dados paginados.
- Eliminação de duplicação de solicitação integrada, garantindo que seu app use recursos de sistema e largura de banda de rede de forma eficiente.
- Adaptadores
RecyclerView
configuráveis que solicitam automaticamente os dados à medida que o usuário rola para o final dos dados carregados. - Compatibilidade de alto nível com corrotinas e fluxo do Kotlin, além de
LiveData
e RxJava. - Compatibilidade integrada com tratamento de erros, incluindo recursos de atualização e repetição.
Enviar feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver sugestões para melhorar essa biblioteca. Consulte os problemas existentes dessa biblioteca antes de criar um novo. Adicione seu voto a um problema existente clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Configurar
Para importar componentes da biblioteca Paging para seu app Android, adicione as seguintes
dependências ao arquivo build.gradle
do app:
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" }
Arquitetura da biblioteca
A biblioteca Paging se integra diretamente à arquitetura de apps Android recomendada. Os componentes da biblioteca operam em três camadas do app:
- Camada de repositório
- Camada
ViewModel
- Camada de IU
Esta seção descreve os componentes da biblioteca Paging que operam em cada camada e como eles funcionam juntos para carregar e exibir dados paginados.
Camada de repositório
O principal componente da biblioteca Paging na camada de repositório é
PagingSource
. Cada
objeto PagingSource
define uma fonte de dados e como recuperar
dados dela. Um objeto PagingSource
pode carregar dados de uma única fonte,
incluindo fontes de rede e bancos de dados locais.
Outro componente da biblioteca Paging que você pode usar é
RemoteMediator
. Um
objeto RemoteMediator
processa a paginação de uma fonte de dados em camadas, como uma
fonte de dados de rede com um cache de banco de dados local.
Camada ViewModel
O componente Pager
fornece uma
API pública para criar instâncias de PagingData
que são expostas em
fluxos reativos, com base em um objeto PagingSource
e em um
objeto de configuração
PagingConfig
.
O componente que conecta a camada ViewModel
à IU é
PagingData
. Um objeto PagingData
é um contêiner para um resumo de dados paginados. Ele consulta um objeto
PagingSource
e
armazena o resultado.
Camada de IU
O componente principal da biblioteca Paging na camada da IU é
PagingDataAdapter
, um
adaptador RecyclerView
que processa dados paginados.
Se preferir, use o componente
AsyncPagingDataDiffer
incluído para criar seu próprio adaptador personalizado.
Outros recursos
Para saber mais sobre a biblioteca Paging, consulte os seguintes recursos extras: