v1.0.8 · MIT · by XYCODE LLC

Flutter Forge

An architecture and code-generation suite for Flutter. Scaffold Clean Architecture, state management and feature modules from inside VS Code, JetBrains IDEs, Android Studio, Antigravity, Cursor or Windsurf.

VS Code
1,000+ installs
JetBrains
800+ downloads
Rating
5.0 / 5
Install from the command line
$ code --install-extension AbdalluhEssamElsayed.flutter-forge
✓ Extension 'flutter-forge' v1.0.8 was successfully installed.

# then, in the command palette
› Flutter Forge: Generate New Project

Why it exists

On our client Flutter projects, setting up clean architecture — repository contracts, use cases, a Dio API client, GetIt dependency injection — took 30 to 45 minutes of manual, error-prone typing for every new project. Across a team, the architecture also drifted from one engineer to the next.

We built Flutter Forge to turn that setup into a single dialog inside the IDE. It writes organised code that passes the lint rules and is ready for tests from the first commit — and we use it on every project we ship.

We take on consulting and custom tooling work too — tell us about your project.

Demos

Two walkthroughs: creating a project from scratch, and how the generated layers fit together.

Comprehensive guide IDE menus, the dialog inputs, package configuration and Clean Architecture scaffolding.
Deep dive How the generated code applies SOLID principles and wires state management across layers.

Features

Project scaffolding
A wizard sets the project name, organisation, architecture, routing and dependencies, then writes pubspec.yaml, the folder tree and the entry point.
Feature generation
Detects whether the project uses Clean Architecture, MVVM or MVC and adds a feature with matching layers — entities, use cases and UI. Shortcut Ctrl+Alt+F / Cmd+Alt+F.
API integration
Reads a Swagger / OpenAPI spec and generates typed Dart models, DTOs and Dio client services — no hand-written JSON parsing.
Responsive setup
Pre-configures flutter_screenutil with font scaling, responsive padding and phone / tablet layout adapters.
Package ID and icons
Changes the bundle ID and app icons across Android (build.gradle, manifest) and iOS (Info.plist, project.pbxproj) together.
Architecture checks
Flags layer violations — say, a presentation file importing a data source — and offers an automated fix.

Architectures

Four patterns are supported, so the tool fits the team rather than the other way round.

Clean Architecture

Recommended for larger apps

Three layers: presentation (UI and state) → domain (entities, use cases, repository contracts) → data (models, data sources, implementations). Testable with mocked data sources and independent of UI or database choices.

lib/features/<feature>/{presentation,domain,data}/

MVVM

Reactive UI binding

ViewModels expose observable state or value notifiers that widgets consume directly. Fewer layers, faster delivery; supports ChangeNotifier and StateNotifier.

lib/{view_models,views,models}/

MVC

Lightweight

Controllers mediate between models and views. The least overhead for small apps and proofs of concept, and easy for junior engineers to follow.

lib/{controllers,views,models}/

GetX pattern

All-in-one

Controllers, bindings, routes and reactive .obs observables, with built-in routing and dependency injection.

lib/{bindings,controllers,views}/

State management

Pick the state manager that suits the project; each one is generated with its own wiring.

State manager Pattern Boilerplate Best for
BLoC Reactive streams (events → states) Medium Large apps, fintech, strict audit trails
Cubit Simplified streams (method calls) Low Most production apps — BLoC testability with less code
Riverpod Functional reactive providers Medium Compile-time-safe state without BuildContext
Provider InheritedWidget wrapper Low The Flutter docs baseline; MVVM projects
GetX Reactive controllers Low MVPs and small teams that want minimal boilerplate
None StatefulWidget and InheritedNotifier Very low Single-screen tools and zero-dependency apps

The generated folder tree

The exact structure Flutter Forge writes for a Clean Architecture project. Cross-cutting concerns live in core/; each business capability gets its own isolated features/ folder.

  • core/ — Dio API client, network checker, failures, extensions, shared widgets, GetIt service locator.
  • features/ — presentation, domain and data layers per feature.
  • test/ — a mirror tree, ready for Mockito or Mocktail.
my_flutter_app/libClean Architecture
lib/
├── core/
│   ├── api/                 # Dio client, interceptors, BaseOptions
│   ├── network/             # connection checker & contracts
│   ├── error/               # ServerFailure, CacheFailure, exceptions
│   ├── extensions/          # context & string helpers
│   ├── widgets/             # AppButton, AppTextField, LoadingOverlay
│   ├── theme/               # light / dark ColorSchemes & TextThemes
│   ├── constants/           # endpoints, asset paths, storage keys
│   └── di/                  # GetIt service locator
├── features/
│   └── [feature_name]/
│       ├── presentation/
│       │   ├── screens/     # login_screen.dart
│       │   ├── widgets/     # login_form.dart
│       │   └── bloc/        # BLoC / Cubit / ViewModel
│       ├── domain/
│       │   ├── entities/    # UserEntity
│       │   ├── repositories/# AuthRepository (contract)
│       │   └── usecases/    # LoginUseCase
│       └── data/
│           ├── models/      # UserModel (fromJson / toJson)
│           ├── datasources/ # AuthRemoteDataSource
│           └── repositories/# AuthRepositoryImpl
├── routes/                  # GoRouter / AutoRoute
└── main.dart                # entry point, DI & ScreenUtil init

Commands

Open the command palette with Ctrl+Shift+P in VS Code or Shift Shift in JetBrains IDEs.

Command Shortcut What it does
Flutter Forge: Generate New Project Ctrl+Alt+N Opens the wizard to scaffold a new project.
Flutter Forge: Generate Feature Ctrl+Alt+F Adds a feature folder with presentation, domain and data layers.
Flutter Forge: Add Dependency Palette Searches pub.dev, adds the package to pubspec.yaml and runs flutter pub get.
Flutter Forge: Firebase Quick Setup Palette Initialises a Firebase project through the FlutterFire CLI.
Flutter Forge: API Integration Generator Palette Builds DTOs and Dio services from a Swagger / OpenAPI spec.
Flutter Forge: Generate Custom Widgets Palette Generates reusable responsive widgets — buttons, inputs, dialogs.
Flutter Forge: Change Package ID Palette Updates the bundle identifier on Android and iOS in one step.
Flutter Forge: Error Detection Palette Scans for architectural layer violations and proposes fixes.

Install

  1. 1 · VS Code

    Open Extensions (Ctrl+Shift+X), search for Flutter Forge and select Install — or run:

    code --install-extension AbdalluhEssamElsayed.flutter-forge
    Open in the VS Code Marketplace →
  2. 2 · JetBrains IDEs

    In Android Studio or IntelliJ IDEA, open Settings → Plugins → Marketplace, search for Flutter Forge, install and restart.

    Open in the JetBrains Marketplace →
  3. 3 · From source

    Clone the repository and package the .vsix with npm:

    git clone https://github.com/AbdalluhEssam/flutter-forge.git
    cd flutter-forge && npm install && npm run compile
    View on GitHub →

Need a Flutter system or custom tooling?

XYCODE builds production mobile apps, offline-first systems and developer tooling like this one.