Proyecto de flutador de arquitectura limpia
Descripción general del proyecto
Este proyecto Flutter sigue el patrón de arquitectura limpia, que promueve la separación de las preocupaciones y la capacidad de mantenimiento. El proyecto está estructurado en varias capas:
Capa de presentación : contiene widgets, páginas y lógica de presentación (bloque). Maneja la interfaz de usuario y las interacciones del usuario.
Capa de dominio : contiene casos de uso y entidades de dominio y repositorio abstracto.
Capa de datos : administra fuentes de datos, repositorios y modelos de datos. Responsable de la recuperación y almacenamiento de datos. Dividido en repositories , model , local_data_sources y remote_data_sources .
Características clave
Función de inicio de sesión
Nuestra aplicación incluye un sistema de inicio de sesión robusto. Estos son los aspectos clave de esta característica:
Validación de entrada : nos aseguramos de que las entradas de los usuarios, como el correo electrónico y la contraseña, se validan para mantener la integridad de los datos.
Autenticación : al ingresar credenciales válidas, los usuarios se autentican y se otorgan acceso a sus cuentas.
Característica de registro
Crear una cuenta es sencilla con nuestra función de registro. Los elementos clave incluyen:
Validación de entrada : similar a la función de inicio de sesión, validamos las entradas de los usuarios para garantizar la precisión de los datos con la validación del archivo de imagen.
Crear Accout : al ingresar credenciales válidas, los usuarios son válidos para crear Accout.
Estructura de carpetas
- lib/características/características/
- Presentación/ : Contiene widgets y lógica de presentación.
- dominio/ : contiene casos de uso y entidades de dominio.
- datos/
- Repositorios/ : implementa repositorios de datos.
- Modelo/ : Define modelos de datos.
- Local_data_sources/ : administra fuentes de datos locales.
- Remote_data_sources/ : Maneja fuentes de datos remotos.
Paquetes
- Flutter : el Flutter SDK.
- Cupertino_icons : proporciona los iconos Cupertino utilizados en el proyecto.
- Shared_preferences : un complemento para acceder y almacenar pares de valores clave en el dispositivo.
- get_it : un localizador de servicio para la inyección de dependencia.
- Dartz : un paquete de programación funcional que proporciona tipos y funciones de datos algebraicos comunes.
- FLUTTER_BLOC : una biblioteca de gestión estatal basada en el patrón de bloque (componente lógico empresarial).
- Equatable : un paquete de utilidad para comparar objetos para la igualdad.
- DIO : un poderoso cliente HTTP para realizar solicitudes de API.
- FormZ : un paquete para manejar la validación de formulario y la gestión del estado.
- Go_router : un enrutador declarativo para aplicaciones de Flutter.
- MIME : un paquete para trabajar con tipos de MIME.
- File_picker : un complemento para elegir archivos del dispositivo.
- Mocktail : una biblioteca de burla para las pruebas de dardo y aleteo.
- Internet_connection_checker : un paquete para verificar la conectividad a Internet.
Además de las dependencias, también se utilizan algunas Devendencias para las pruebas y la generación de códigos:
- Flutter_test : el marco de prueba Flutter.
- Mockito : una biblioteca de burla para las pruebas de dardo y aleteo.
- build_runner : una herramienta para generar código durante el proceso de compilación.
- BLOC_TEST : una utilidad de prueba para bloques de prueba.
- Network_image_mock : un paquete para burlarse de las imágenes de red durante las pruebas.