Prueba técnica de MercadoLibre
Estructura del proyecto
- data: Todas las implementaciones a los repositorios, objetos DTO y endpoints
- domain: Entidades, repositorios y excepciones de dominio
- presentation: Actividad, fragmentos, adaptadores y viewmodels
- di: Modules de inyección
- utils: Extensiones
Librerias utilizadas
- Retrofit2
- Hilt
- Navigation
- Glide
- Mockk
- Material
- JaCoCo
Arriba se muestra el modelo que use para la arquitectura de la app, los componentes que se encuentran con linea cortada no fueron incluidos en la prueba dado que no fueron necesarios, sin embargo los incluí en el diseño ya que son componentes recurrentes con los que he trabajado.
-
La capa de Presentación contiene los elementos visuales que se usaron en la app, además de los viewmodels encargados de mantener los datos que se requieran. En esta capa use el patron de arquitectura MVVM.
-
La capa de Dominio contiene toda la logica de negocio, para esta app no fue necesario implementar casos de uso ya que la mayoria de logica fue implementada en las entidades
-
La capa de Datos contiene todas las llamadas al Api de Mercado Libre, además de los modelos DTO y las implementaciones del repositorio
Para el manejo asincrono de las peticiones use corrutinas y flow
Implemente pruebas unitarias para las tres capas y con ayuda de JaCoCo valide la cobertura de estas:
- Presentación: ViewModels
- Domain: Entidades
- Data: Repositorios, excepciones y Mappers









