Skip to content

Arquitectura Base

Objetivo

El objetivo es contar con una base sólida, mantenible y escalable para construir la aplicación dentro de un único proyecto, con separación clara de responsabilidades y buenas prácticas de desarrollo Android.

Propuesta

  • Un proyecto: App-Motor
  • Kotlin + XML
  • Single Activity
  • Arquitectura limpia con organización por capas: presentation, core, domain, data, di
  • Organización por features
  • Separación por responsabilidades dentro de un solo módulo
  • Inyección de dependencias
  • Uso de patrones de diseño según necesidad Chain of Responsibility, Strategy, Singleton
  • Extension Functions

Estructura general propuesta

app-motor/
└── app/
    └── src/main/java/mx/profuturo/appmotor/
        ├── core/
        ├── data/
        ├── domain/
        ├── presentation/
        ├── di/
        └── MainActivity.kt

Capas principales

Presentation

Contiene la UI y la lógica de presentación.

Incluye: - Activities - Fragments - ViewModels - Adapters - XML layouts - Navigation - Estados de UI

Domain

Contiene la lógica de negocio pura.

Incluye: - UseCases - Modelos de dominio - Interfaces de repositorios

Data

Contiene acceso a datos remotos y locales.

Incluye: - Repositories - DataSources - Retrofit / Parse / Firebase / Room / DataStore - DTOs - Mappers

Core

Contiene elementos transversales reutilizables dentro del proyecto.

Incluye: - Utilidades - Validaciones - Extensiones - Constantes - Manejo de errores - Logger - Session manager - Base classes

DI

Contiene la configuración de inyección de dependencias.

Beneficios

  • Menor complejidad inicial
  • Más fácil de entender para el equipo
  • Estructura limpia
  • Permite crecer por features sin perder orden

Conclusión

Esta propuesta ofrece una base clara y ordenada para desarrollar las apps, facilitando el trabajo del equipo, permite mantener el código organizado y fácil de entender.