FlutterInit is an open-source scaffolding tool that generates production-ready Flutter projects tailored to your architecture and tooling preferences. It exists to eliminate repetitive setup tasks by providing pre-wired boilerplate for routing, state management, and base system configurations right out of the box.
- Flutter SDK installed.
- Open flutterinit.com.
- Configure your project options (e.g., state management, routing, theme).
- Click Generate.
- Download the
.ziparchive. - Unzip the archive into your development directory.
- Install dependencies:
flutter pub get
- Run the application:
flutter run
After extracting the archive, you'll find a structured Flutter application instead of the default counter app. The core logic and flow are built on a layered setup that adapts to your configuration choices:
lib/main.dart: The application's entry point. Initializes critical core services likeWidgetsFlutterBinding, splash screens, localization, environment variables, and flavor configurations before booting the app.lib/src/app.dart: Houses your rootAppwidget. It directly wires up your chosen routing package (GoRouter, AutoRoute, or GetX) into theMaterialApporCupertinoAppbuilder. It also injects global widgets likeSkeletonWrapperandSessionListenerWrapper.- Adaptive Architecture: The remainder of the folder structure maps dynamically to your selected architecture standard (
Layer-First,Feature-First,Clean,MVC, orMVVM). This dictates where logic controllers, UI views, data models, and domain layers live. - Third-Party Integrations: Dependencies selected through the dashboard (networking, storage, media, state management) are naturally integrated. Their respective services and hooks are pre-configured through organized module extensions.
Code references utilize generated "barrel file" registries (e.g. imports.dart, services.dart) ensuring clean imports across your growing codebase.
- Read your generated
SETUP.md: Found at the root of your extracted project, this generated document contains the exact steps to configure your selected backend (e.g., Firebase, Supabase), native app permissions, and environment variables. - Configuration Options (coming soon)