Estructura del proyecto
Una estructura organizada ayuda a mantener el código del proyecto en orden, lo que facilita la localización de archivos y componentes, y a su vez, simplifica el mantenimiento y la comprensión del código.
Archivos clave
-
/lib/main.dart: Es el punto de inicio de la aplicación. Se encarga de configurar el widget principal con el MaterialApp, gestionar el enrutamiento e inicializar los servicios necesarios para su funcionamiento.
-
pubspec.yaml: Es el archivo de configuración del proyecto, donde se especifican las dependencias, fuentes, imágenes y demás recursos necesarios.
-
.env: Este archivo contiene las variables de entorno, como claves de API o URLs. Se recomienda siempre mantenerlo protegido para prevenir la exposición de información sensible.
-
firebase.json En este archivo deberás incluir las claves necesarias para la configuración con Firebase del proyecto.
-
local.properties Este archivo se utiliza para almacenar configuraciones locales específicas.
-
key.properties Es utilizado para almacenar información sensible relacionada con las claves de firma de la app.
Directorios
El directorio lib es el principal dentro del proyecto y alberga todo el código fuente de la aplicación. Este organiza los archivos y subdirectorios que definen la lógica, las interfaces y las funcionalidades de la app.
-
/enums: Aquí se definen las enumeraciones con valores constantes.
-
/models: Contiene las clases de modelo de datos utilizadas en la aplicación.
-
/providers: Alberga las clases provider para la gestión del estado de la app.
-
/router: Contiene el archivo de configuración de las rutas y la navegación de la aplicación.
-
/screens: Almacena los archivos que representan las pantallas de la app.
-
/services: Aquí se encuentran los archivos de configuración para servicios como API y almacenamiento local.
-
/theme: Contiene los archivos que configuran los temas, colores y estilos de la aplicación.
-
/utils: Almacena funciones y herramientas reutilizables (como paginadores, permisos, etc.).
-
/widgets: Aquí se encuentran los widgets personalizados, organizados en subcarpetas si son específicos de una sección.
-
/helpers: Contiene funciones reutilizables para tareas comunes dentro de la app.
-
/l10n: Almacena archivos relacionados con la internacionalización y traducciones de los textos de la app.
-
/templates: Guarda las plantillas prediseñadas para ser reutilizadas en diversas partes de la app, como pantallas o formularios.