Sobre el proyecto
Android Architecture Samples es una colección mantenida por Google de aplicaciones Android de ejemplo que demuestran diferentes enfoques arquitectónicos. Cada rama del repositorio contiene la misma aplicación TODO implementada con pequeñas variaciones, lo que facilita comparar patrones lado a lado.
La rama actual muestra una configuración moderna:
- Interfaz de usuario construida con Jetpack Compose.
- Arquitectura de una sola actividad usando Navigation Compose.
- Una capa de presentación con una pantalla de Compose (View) y un ViewModel por pantalla o funcionalidad.
- UIs reactivas usando Flow y coroutines de Kotlin para trabajo asíncrono.
- Una capa de datos con un repositorio y dos fuentes de datos: una base de datos local Room y una fuente remota falsa.
- Dos variantes de producto, mock y prod, pensadas para facilitar el desarrollo y las pruebas.
- Una colección de pruebas unitarias, de integración y de extremo a extremo, incluyendo pruebas compartidas que pueden ejecutarse en un emulador o dispositivo.
- Inyección de dependencias con Hilt.
El proyecto usa deliberadamente una aplicación de tareas porque es lo bastante simple para entenderla rápidamente y lo bastante compleja para ilustrar decisiones de diseño difíciles y escenarios de prueba. El README es explícito sobre lo que el proyecto no es: no es una plantilla (se sugiere en su lugar el repositorio Architecture Templates), no es una muestra de UI o Material Design (se sugiere Compose Samples), y no es una aplicación de producción con redes o autenticación (se sugiere Now in Android).
Está dirigido a desarrolladores intermedios y principiantes que quieren una estructura de aplicación comprobable y mantenible, así como a desarrolladores avanzados que buscan una referencia rápida. Para usar una muestra, clona el repositorio, cambia a una rama de muestra y abre el directorio raíz en Android Studio. El código está licenciado bajo Apache 2.0, con derechos de autor de Google.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.