Arquitectura de aplicaciones de Android modular (construida a escala) | Autor: Sachin Rajput | Bits móviles locales | Septiembre de 2021
Literalmente, es solo una aplicación con pocos módulos.
Un módulo es básicamente una pequeña parte Memorable
Es decir, puede haber varias unidades pequeñas independientes para formar un programa.
Bien, digámoslo de nuevo en términos sencillos …
P.ej. ) A todos nos gustan los Vengadores, ¿verdad? ¿Pero, qué es esto?
Este es un grupo diferente de personas llamado los Vengadores.
Aquí, un solo Avenger puede ser cualquiera, Tony Stark, Hawkeye, Doctor Strange, todos hacen ciertas cosas, pero cuando se juntan, forman un equipo, este equipo se llama For the Avengers.
De manera similar, puede haber N módulos independientes, cada uno de los cuales se puede usar para algunas tareas específicas, como el inicio de sesión o la incorporación, pero cuando fusionamos todos estos módulos, esto formará una sola unidad (una hermosa aplicación).
En el desarrollo de Android, podemos crear este tipo de módulos para nosotros:
- Módulo de biblioteca
- módulo funcional
- Módulo de aplicación
Módulo de biblioteca Puede ser una función desarrollada por un tercero o por nosotros mismos, que es una utilidad para nuestro proyecto principal.Podemos tener múltiples lugar En nuestro proyecto
módulo funcional-En nuestro proyecto, podemos dividir funciones o procesos en pequeñas unidades como funciones independientes separadas.
Módulo de aplicación Este es nuestro producto Wholesome, que combinará todos los módulos funcionales que desarrollamos y formará una sola entidad
La modularidad trae muchos beneficios:
- Cada pequeña unidad es independiente en nuestra aplicación.
- De esta manera, cuando tengamos módulos independientes, habrá un acoplamiento flojo, y podremos cambiar o probar fácilmente cualquier proceso específico.
- Podemos usar cualquier módulo reutilizable en el código de la aplicación, si queremos cambiar algo, simplemente cámbielo en un lugar y reflejelo en cualquier lugar (si es necesario).
- Acelere el sistema de compilación porque Gradle puede compilar módulos en paralelo y solo compilar módulos con cambios de código y usar el almacenamiento en caché.
- Nos brinda una sólida cultura de desarrollo y cada miembro puede participar en un trabajo específico.
- También podemos experimentar con este método, por ejemplo) Si queremos construir algunos módulos en Java, y la mayoría de ellos están construidos en Kotlin, y viceversa, este es el método más genial
- Podemos usarlo en otro módulo agregándolo como una dependencia sin estropear tanto código.
Para explicar este concepto, haré una sencilla aplicación FunFacts que contendrá dos módulos, uno para los amantes de los gatos y otro para los amantes de los perros.
Como se muestra en la figura anterior, en nuestra aplicación modular básica contaremos con dos módulos, en cada módulo realizaremos algunas operaciones de red, para lo cual haremos un módulo de red central.
Qué usaremos en esta aplicación:
Arquitectura modular, inyección de dependencias HILT, MVVM, coroutine, Lottie, navegación central de componentes Jetpack y buildSrc para gestión central de dependencias, Kotlin.
Empecemos
Entonces, comenzaremos creando un proyecto de Android simple, y luego agregué todos los interceptores de actualización relacionados con la red en un módulo llamado central.
Dentro central
Puede ver la siguiente estructura del módulo aquí:
Aqui tengo uno DataSourceModule
Tendrá todas las dependencias de la instancia de Retrofit y, en esta aplicación, usaremos dos API públicas, por lo que crearé dos instancias de Retrofit diferentes aquí.
Entonces tengo un servicio API DogFactsService
interfaz Contendrá todas las llamadas a la API relacionadas con el módulo DogFacts.
«De manera similar, crearé diferentes servicios para cada módulo. En nuestro gráfico de dependencia, usaremos cada servicio para crear su propia instancia de Retrofit para cada servicio.
DataSource
Por esta razónservice
. «
De esta forma, tendremos todas las API relacionadas con la red en un solo lugar, y en este lugar, tendremos una API separada services
Y sus respectivos datasources
DataSource
Suspenda funciones con llamadas a la API que serán llamadas desde sus respectivos repository
Y API de interconexión services
Con su implementación.
También hay un directorio Fuente de compilación Tiene todas las dependencias utilizadas en nuestra aplicación, podemos crear cualquier módulo y usar cualquier API de terceros o Android que podamos definir aquí, podemos usarlo en todos los módulos Nos ayudará a mantener siempre dependencias similares Versión del artículo.
paso 1. ) Podemos crear un nuevo módulo en cualquier proyecto de la siguiente manera:
Paso 2. ) Una vez que completemos los pasos anteriores y sincronicemos nuestro proyecto, ahora veremos dicha estructura de proyecto.
Paso 3.) Ahora en nuestro proyecto settings.gradle.kts
Archivo, podemos ver los módulos incluidos.
el cuarto paso. ) Ahora necesitamos este módulo como nuestra dependencia principal. App
Módulo para que podamos registrar este dogFunFacts
Como nuestra dependencia buildSrc
central Dependencies.kt
documento
el quinto paso. ) Ahora que tenemos un nuevo módulo, también lo creamos como una dependencia utilizable, ahora solo necesitamos usarlo en nuestra aplicación, necesitamos agregarlo a nuestro Main App Module
Como tal dependencia:
También hay un juego de bingo 🙂
Hemos creado un módulo funcional 😍😍 y ahora podemos codificar de forma independiente esta característica aquí, a la que se puede acceder desde cualquier lugar de nuestra aplicación.
La aplicación de salida se verá así: