Este proyecto es una base arquitectónica para aplicaciones Flutter futuras, implementando Clean Architecture (Arquitectura Limpia) con las mejores prácticas y herramientas del ecosistema Flutter.
Este proyecto utiliza los siguientes paquetes y librerías:
- Dio - Cliente HTTP potente para Dart, usado para peticiones de red y APIs REST
- Riverpod - Framework de gestión de estado reactivo y robusto para Flutter
- go_router - Sistema de navegación declarativa para Flutter con soporte para deep linking
El proyecto sigue los principios de Clean Architecture, organizando el código en las siguientes capas:
lib/
├── domain/ # Capa de dominio (lógica de negocio)
│ ├── entities/ # Entidades del dominio
│ └── repositories/ # Interfaces de repositorios
├── infrastructure/ # Capa de infraestructura
│ ├── models/ # Modelos de datos (DTOs)
│ ├── repositories/ # Implementaciones de repositorios
│ └── datasources/ # Fuentes de datos (API, local, etc.)
├── presentation/ # Capa de presentación
│ ├── screens/ # Pantallas de la aplicación
│ ├── widgets/ # Widgets reutilizables
│ ├── providers/ # Providers de Riverpod
│ └── config/ # Configuraciones (tema, rutas, etc.)
└── main.dart # Punto de entrada de la aplicación
Las pruebas están organizadas para cubrir las capas críticas del proyecto:
test/
├── infrastructure/ # Pruebas de la capa de infraestructura
│ ├── repositories/ # Tests de implementaciones de repositorios
│ └── datasources/ # Tests de fuentes de datos
├── presentation/ # Pruebas de la capa de presentación
│ ├── screens/ # Tests de pantallas (widget tests)
│ ├── widgets/ # Tests de widgets
│ └── providers/ # Tests de providers
- Flutter SDK (versión 3.0 o superior)
- Dart SDK
- IDE (VS Code, Android Studio, o IntelliJ IDEA)
- Clonar el repositorio
- Ejecutar
flutter pub getpara instalar las dependencias - Ejecutar
flutter runpara iniciar la aplicación
# Ejecutar todas las pruebas
flutter test
# Ejecutar pruebas con cobertura
flutter test --coverage