Countries App es una aplicación Android que muestra una lista de banderas de países. Al hacer clic en una bandera, se muestra un detalle del país seleccionado. Además, la pantalla principal cuenta con un buscador para filtrar los países de manera sencilla.
- Kotlin: Lenguaje de programación principal.
- Jetpack Compose: Para el diseño de la UI de forma declarativa.
- Navigation Component: Manejo de la navegación entre pantallas.
- Dagger Hilt: Inyección de dependencias para una mejor modularidad.
- Retrofit: Para el consumo de APIs de manera eficiente..
- MockK: Para la creación de mocks en pruebas unitarias.
Se ha utilizado la arquitectura MVVM (Model-View-ViewModel) debido a sus múltiples ventajas:
- Separación de responsabilidades: La UI no maneja directamente la lógica de negocio, lo que facilita el mantenimiento y la escalabilidad.
- Facilidad para realizar pruebas unitarias: Al mantener la lógica de negocio en ViewModels, es más sencillo testear sin depender de la UI.
- Reutilización de código: ViewModels pueden ser utilizados en diferentes composables sin generar dependencias innecesarias.
- Compatibilidad con Jetpack Compose: MVVM se integra bien con
StateFlowyLiveData, lo que permite una UI reactiva y eficiente.
Las pruebas unitarias se han desarrollado siguiendo el patrón Given-When-Then, lo que mejora la legibilidad y mantenimiento del código:
- Given: Se establece el estado inicial o las precondiciones de la prueba.
- When: Se ejecuta la acción que se desea testear.
- Then: Se verifican los resultados esperados.


