Generalidades

Lista de criptomonedas que usan bibliotecas Paging 3 y Jetpack Compose | Por Viktor Roslyakov | Febrero de 2022

Aquí hay una aplicación de muestra que demuestra Paginación 3 Bibliotecas y composición de mochila propulsoraLa aplicación se basa en el enfoque arquitectónico limpio de Uncle Bob.
También uso Kotlin (por supuesto), Flow, MVVM, Dagger Hilt.

Enlace del repositorio en github: https://github.com/mrvectorr/cryptopagingapp

de qué se trata la aplicación

Elegí uno de los temas más candentes en este momento. Mi aplicación muestra una lista de criptomonedas.como proveedor de precios de criptomonedas que uso mensajero de fuego.
Se parece a esto:

Configuración del proyecto

Agregue las dependencias necesarias para Redactar y Paginar construir.gradle documento.

Dependencias para Dagger Hilt (Inyección de dependencia)

Configure el archivo de aplicación para Hilt agregando HiltAndroidApp anotación

Descripción general de la arquitectura

Las aplicaciones se dividen en capas de datos, dominio y presentación. La idea principal de la arquitectura limpia es separar las preocupaciones manteniendo las reglas comerciales ignorantes del mundo exterior. Si no está familiarizado con este concepto, le recomiendo que profundice en él.

En esta sección, explicaré mi implementación de esta aplicación.
Empecemos con datos Piso. Utilizamos la actualización para cargar datos del servidor.esta es la funcion

vamos a pasar a Fuente de datos de activos. Esta clase es responsable de cargar los datos y almacenarlos en caché en variables. En la fuente de datos, solo tenemos una función que carga la siguiente página y la guarda en el caché.

adquirir activos la funcion se llama ActivosRepositorioImpl clase. interfaz repositorio de activos está en el dominio. Este es el truco más importante sobre cómo ocultamos la implementación del repositorio de la capa de dominio.

existe campo tenemos capas Obtener fuente de activos La clase que reemplaza al interactor en nuestra arquitectura.
introducir Las capas son básicamente el patrón MVVM.

Además, explicaré la capa de presentación y la capa de dominio en detalle.

fuente de paginación

Clase base para abstraer datos estáticos paginables de alguna fuente, donde cargar una página de datos suele ser una operación costosa.

Deberíamos crear una subclase de la clase PagingSource para pasar datos a nuestra lista.Hay dos funciones que tenemos que anular

carga interesante (parámetros: PagingSource.LoadParams)

y

interesante getRefreshKey (estado: PagingState) .

Toda la magia sucede en carga función, aquí llamamos a nuestra función getAssets repositorio de activos clase.

Configurar la paginación en la capa de presentación

Primero, pasemos a AssetsListViewModelEn la función getAssets(), comenzamos Obtener fuente de activos y convertirlo a flujo. En la función init, pase un flujo de objetos PagingData al estado.

Entonces, en Pantalla de lista de activos Podemos recopilar el estado como PagingItems del modelo de vista y usarlo en nuestra lista.

Interfaz de usuario usando Jetpack Compose

empezaremos elemento de la lista de activos. Aquí podemos encontrar símbolos en verde formas, nombres y precios.

existe Pantalla de lista de activos Solo usamos artículos de exhibición. columna perezosa

Espero que esta historia te sea útil.

Gracias por leer y que tengas un buen día 🙂

LEER  Introducción básica y uso de Koin v3. Koin proporciona palabras clave de DSL para hacer que los archivos adjuntos sean livianos y simples.Este artículo presentará… | por Max_C | febrero de 2022

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba