Android: Crear aplicaciones desde una aproximación modular

Cuando llegué nuevo a Android y comencé a desarrollar apps nativas con Android Studio descubrí al iniciar la app que esta adquiría el formato de módulo dentro de un proyecto. Cuando tenía que agregar opciones y características lo hacía directamente sobre el módulo de la app sin plantearme para nada el desarrollo modular que permite una app de Android nativa.

Un módulo es un contenedor que incluye código fuente, ficheros de recursos, manifiestos y sus ficheros gradle.

Esto nos permite crear un proyecto con multitud de módulos que bien organizados nos permiten:

  • Reutilizar módulos de otros proyectos.
  • Reducir el tiempo de mantenimiento de los módulos que usamos en otros proyectos.
  • Reducción del tiempo de compilación, sólo compilamos los módulos modificados.
  • Escalabilidad en el desarrollo, podemos aumentar el número de desarrolladores de manera sencilla para acelerar el proyecto.
  • Separación de responsabilidades, cada módulo tiene su responsabilidad y sus interfaces para utilizarlos.
El esquema habitual de un proyecto modular incluye los siguientes elementos:
  • app-module: Es el módulo principal de la aplicación.
  • feature1, feature2, etc: Son los módulos que agregan funcionalidades reutilizables, todos ellos deben disponer de un interfaz para poder comunicarse.
  • core-module: Módulo con clases reutilizables para varios módulos.
Los módulos feature deben ser agnósticos y no tener dependencias entre ellos.

Os pongo aquí enlaces a varios repositorios para que veáis ejemplos, como estoy de vacaciones tengo ya casi quemados mis datos móviles:

Comentarios