Los proyectos en Flutter por lo general se crean automáticamente con una estructura predefinida que viene con la configuración básica para que se pueda iniciar lo más pronto posible el desarrollo, se hace con el fin de perder el menor tiempo posible en configuraciones de ambiente.
Estructura inicial
A continuación, veremos una imagen de la estructura inicial que nos genera Flutter al momento de crear un proyecto.
Veremos qué es cada una de las carpetas y archivos que tienen y para qué nos sirven.
.dart_tool
Esta carpeta o directorio contiene archivos utilizados por varias herramientas de Dart, como pub, sustituye el .pub desde la versión 2.0 de Dart.
.idea
Este directorio contiene varios archivos xml con ciertas configuraciones del proyecto.
android
Este directorio contiene todas las carpetas y archivos necesarios para correr Flutter en dispositivos Android. Por lo general usando dentro tanto Gradle como Kotlin y Java.
build
En este directorio es donde se generan o se crean todos los archivos compilados necesarios para ejecutarse correctamente en los diferentes dispositivos, como por ejemplo el .apk para Android.
ios
En este directorio se guarda todo lo relacionado con iOS, configuraciones, ejecutables, etc. Todo lo necesario para que se pueda ejecutar Flutter en iOS.
lib
En este directorio va todo el código fuente de nuestra aplicación el cual se comparte en las diferentes plataformas, este es como el src que hay en lenguajes como Java.
linux
En este directorio va todo lo relacionado a configuraciones y demás para ejecutar Flutter en Linux.
macos
En este directorio va todo lo relacionado con el sistema operativo macOS, configuraciones necesarias para ejecutar Flutter.
test
En este directorio van todos las carpetas y archivos pertenecientes a las pruebas unitarias de nuestro código fuente.
web
En este directorio va todo lo relacionado con las aplicaciones Web utilizando Dart. Html, imágenes, etc.
windows
En este directorio va todo lo necesario para poder correr Flutter en Windows.
.gitignore
En este archivo van todos los directorios o archivos que no deberíamos subir a GitHub. Archivos con claves, compilados, etc.
.metadata
Este archivo se encarga de rastrear las propiedades del proyecto Flutter. No se debe cambiar manualmente.
analysis_options.yaml
En este archivo se configuran todas las reglas que va a tener el analizador (linter) a la hora de analizar el código de Flutter.
flutter_app_test.iml
Este archivo xml es utilizado por Flutter para procesos internos y no debemos modificarlo manualmente.
pubspec.lock
En este archivo quedan todas las referencias de las librerías que estamos utilizando en el proyecto, las cuales se definen en el siguiente archivo pubspec.yaml. No se debe modificar manualmente.
pubspec.yaml
En este archivo se define parte de configuración del proyecto pero sobre todo se centra en administrar las dependencias o paquetes que instalamos para usar en el proyecto Flutter.
README.md
Este archivo se utiliza para documentar lo que contiene nuestro proyecto pero sobre todo hacer énfasis en temas como configuraciones que necesitemos para levantar el proyecto y cosas de este estilo.
Conclusión
Vimos la estructura básica de carpetas que nos brinda Flutter al crear un proyecto nuevo, muchas de ellas no debemos modificar en ningún momento para evitar errores inesperados.
Siguientes pasos
Veremos de forma general los widgets básicos de Flutter.