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.
$ 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.
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_screenutilwith 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.
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 · 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 · JetBrains IDEs
In Android Studio or IntelliJ IDEA, open
Open in the JetBrains Marketplace →Settings → Plugins → Marketplace, search for Flutter Forge, install and restart. -
3 · From source
Clone the repository and package the
.vsixwith 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.