Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Flutter Root ProjectNew to Visual Studio Code? Get it now.
Flutter Root Project

Flutter Root Project

Marcos Alejandro Collazos Marmolejo

| (0) | Free
Extensión diseñada para gestionar proyectos Flutter de nivel enterprise. Proporciona una plantilla base que integra una arquitectura híbrida Feature-First junto con Onion/Clean Architecture, ofreciendo una estructura clara, escalable y mantenible, ideal para equipos grandes y proyectos de larga dura
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

🌳 Flutter Root Project

Flutter Root Project es una extensión para VS Code que crea proyectos Flutter enterprise con una arquitectura Feature-First + Clean Architecture, lista para aplicaciones escalables y mantenibles.


🎮 ¿De qué trata?

Este proyecto sirve como plantilla inicial para aplicaciones Flutter escalables, con ejemplos de organización modular que permiten:

  • Crecer en funcionalidades sin perder orden.
  • Mantener separación de capas.
  • Facilitar testing a diferentes niveles.
  • Integrar fácilmente servicios externos.

🧩 Principios de la arquitectura

  • Feature-First + Clean: Organización por Features para escalabilidad, y separación en capas (Data, Domain, Presentation) para mantenibilidad y separación de responsabilidades.

  • Aislamiento de Módulos Centrales (Core): Contiene configuraciones globales (Config), manejo de errores, logging, seguridad y router. Estos módulos son independientes de Features y garantizan un núcleo reutilizable y estable.

  • Componentes Reutilizables (Shared + Utils):

    • Shared: Widgets, Layouts, Animaciones y Temas reutilizables.
    • Utils: Helpers, Extensions, Validators, Formatters, etc.
  • Internacionalización (l10n): Dedicado a soporte multi-idioma.

  • Infraestructura (Infrastructure): Implementaciones concretas que interactúan con el "mundo exterior": APIs, Base de datos, Firebase, etc. Todo desacoplado de la capa de negocio (Domain).


✅ Beneficios de esta arquitectura

  • Escalable: separación clara por Features.
  • Mantenible: capas internas Data, Domain, Presentation alineadas con Clean Architecture.
  • Modular: Core, Infrastructure, Shared y Utils garantizan orden y reutilización.
  • Internacionalización lista con l10n.
  • Testing estructurado en diferentes niveles de complejidad.

🛠️ Tecnologías utilizadas

  • Flutter
  • Dart
  • Bloc
  • Riverpod
  • Provider

📂 Estructura del Proyecto

root_project
├── assets                     # 🖼️ Recursos estáticos (imágenes, íconos, fuentes)
├── test                       # 🧪 Carpeta de pruebas (siguiendo la pirámide de testing)
│    ├───01_Unit               # ⚡ Lógica y funciones puras
│    ├───02_Widget             # 🧩 Widgets aislados
│    ├───03_Golden             # 🎨 Validación visual por comparación
│    ├───04_Integration        # 🔗 Integración entre módulos
│    ├───05_Smoke              # 🕵️ Chequeos rápidos de la app
│    ├───06_Linting            # 🔍 Reglas de estilo y convenciones
│    └───07_E2E                # 👑 Flujos completos del usuario
│
├── analysis_options.yaml      # 📐 Reglas de análisis estático (linting)
├── pubspec.yaml               # 📦 Dependencias y configuración del proyecto
├── README.md                  # 📖 Documentación principal
└── lib                        # 💻 Código fuente principal
    ├── main.dart              # 🚀 Punto de entrada de la app
    ├── app.dart               # ⚙️ Configuración global (tema, router, providers)
    └───Src
        ├───Core               # 🛠️ Núcleo central, accesible globalmente
        │   ├───Cache          # 💾 Manejo de caché local (Shape_preference)
        │   ├───Config
        │   │   ├───Env        # 🌍 Configuración por entorno (dev/prod)
        │   │   └───Keys       # 🔑 Llaves/API keys/identificadores
        │   ├───Errors         # ❌ Manejo centralizado de errores
        │   ├───Logging        # 📝 Configuración de logs y tracking
        │   ├───Router         # 🧭 Definición de rutas y navegación global
        │   └───Security       # 🔒 Seguridad: cifrado, auth, permisos
        │
        ├───Features           # 📦 Módulos funcionales independientes
        │   ├───Auth           # 🔐 Autenticación de usuarios
        │   │   ├───Data       # 📡 Repositorios y fuentes de datos
        │   │   ├───Domain     # 🧠 Casos de uso y entidades
        │   │   └───Presentation # 🎭 UI, BloCs, estados y vistas
        │   └───Home           # 🏠 Módulo de pantalla principal
        │       ├───Data
        │       ├───Domain
        │       └───Presentation
        │
        ├───Infrastructure     # 🌐 Conexiones externas e implementaciones
        │   ├───Api            # 🔗 Clientes HTTP/REST/GraphQL
        │   ├───Database       # 🗄️ Acceso a bases de datos locales/remotas
        │   └───Firebase       # ☁️ Integración con Firebase
        │
        ├───l10n               # 🌎 Internacionalización (traducciones ARB)
        │
        ├───Shared             # ♻️ Recursos reutilizables globales
        │   ├───Animations     # 🎞️ Animaciones comunes
        │   ├───Components     # 🧱 Widgets reutilizables
        │   ├───Layouts        # 📐 Estructuras de pantallas
        │   └───Theme          # 🎨 Temas, colores y tipografía
        │
        └───Utils              # 🔧 Utilidades generales
            ├───Constants      # 📌 Constantes globales
            ├───Enums          # 🗂️ Enumeraciones
            ├───Extensions     # ➕ Extensiones de tipos nativos
            ├───Formatters     # ✍️ Formateadores de texto, fechas, números
            └───Validators     # ✅ Validaciones de inputs y formularios


🧪 Pirámide de Testing

El proyecto sigue la pirámide de testing para cubrir todos los niveles, del más simple al más complejo:

[01_Unit] ⚡ Lógica y funciones puras
[02_Widget]  🧩 Widgets aislados
[03_Golden]  🎨 Comparación visual
[04_Integration]  🔗 Módulos conectados
[05_Smoke]  🕵️ Chequeos rápidos
[06_Linting]  🔍 Estándares de código
[07_E2E]  👑 Flujos completos de usuario
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft