El desarrollo de este proyecto fue basado en clean architect, con el fin de no exterdeme mucho decidí manejar tres capas:
- Presentation
- Data
- Domain
Clean architect basicamente nos dice que tenemos capas exteriores e inferiores, y que las capas internas no deben saber nada de las externas, debido a eso para cumplir con esa regla el proyecto se maneja por módulos con eso evitamos poder acceder a recursos que están en capas superiores.
En la capa de presentación es la capa que interactua con la interfaz de usuario, en esta capa vamos a poder ver Activitys, Fragmets, ViewModels… etc, Para esta capa aplique el patron MVVM y observables.
En la capa de data es donde se maneja las diferentes fuentes de datos, aquí podemos ver el patron repositorio, en este caso para este proyecto nosotros estamos consumiento tanto de base de datos locales como de una api.
En la capa de dominio es donde se maneja las reglas de negocio, este capa debe ser un móduo puro de Kotlin o Java, sin ninguna dependencia del framework de Android.