Documentation • Code on the Rocks • Support • Pub.dev
Activate the CLI:
dart pub global activate flutter_fast_cli
Create an online app (and join the Flutter Fast social network):
fast app
Create an online app without the Flutter Fast Firebase setup:
fast app --fresh
Create an offline app:
fast app --offline
These commands will prompt you for your app name (my_app) and organization (com.example).
The generated app contains code for all third-party services and is thus bloated (eg. don't ship this code). Once you've decided which services you want to use, you can remove the unused code.
For templates that use specific services, see cotr.dev/flutter-faster.
The Flutter Fast CLI is used to generate either an online or offline app.
The online app supports all of the third-party platforms listed below:
The offline app is a stripped-down version of the online app that doesn't require any third-party services.
Once you've generated the app, you can control which platforms are used by modifying the dart-define
variables used to run the app. For example, to run an app with Firebase and Amplitude, you would run:
flutter run --dart-define=PAAS=firebase --dart-define=analytics=amplitude
The default app generated by the fast app
command contains the firebase_options.dart
file required to connect to the official Flutter Fast Firebase project. Install the app on your device to gain access to the exclusive Flutter Fast social network.
If you want to create a project with your own Firebase project, add the --fresh
flag to the fast app
command.
The Flutter Fast app is constantly changing and all messages and data are subject to deletion at any time.
Name | Description |
---|---|
app |
Create a new Flutter Fast app using the step-by-step wizard |
build |
Run dart run build_runner --delete-conflicting-outputs |
update |
Update flutter_fast_cli |
To get started, visit the official docs!
See the API documentation for details on the following topics:
Method | Remote Config | Posthog |
---|---|---|
Feature Flags | ✅ | ✅ |
String Values | ✅ | ✅ |
Method | Amplitude | Posthog | Firebase Analytics |
---|---|---|---|
Events | ✅ | ✅ | ✅ |
User Properties | ✅ | ✅ | ✅ |
User Properties (Set once) | ✅ | ✅ |
Method | Firebase | Supabase | Appwrite | Pocketbase |
---|---|---|---|---|
Email/Password | ✅ | ✅ | ✅ | ✅ |
✅ | ✅ | |||
Apple | ✅ | ✅ |
Method | Android | iOS | Web |
---|---|---|---|
Fastlane | ✅ | ✅ | ✅ |
GitHub Actions | ✅ | ✅ | ✅ |
Shorebird | ✅ | ✅ | ✅ |
The Flutter Fast CLI is a tool for generating a starter Flutter application with everything you need to start shipping.
The Flutter Fast stack is opinionated to enable flexibility of choice regarding third-party technologies. For that reason, the following components of the stack are used regardless of the platform:
Similarly, Flutter Fast apps use a consistent project structure:
├── 📁 lib/
│ ├── 📁 app
│ ├── 📁 features
│ │ ├── 📁 featureOne
│ │ └── 📁 featureTwo
│ │ ├── 📁 models
│ │ ├── 📁 ui
│ │ │ ├── 📄 two_view.dart
│ │ └── 📁 services
│ └── 📄 main.dart
├── 📄 CHANGELOG.md
├── 📄 pubspec.lock
├── 📄 README.md
I created Flutter Fast to solve two of my own problems.
Nothing puts a damper on my motivation to start a new project like the thought of spending 6 hours setting up a starter project. I wanted to dive straight into the fun part of coding and ship faster 🚢
The Flutter Fast CLI takes care of nearly all the tedious setup involved in creating a user-based application. The longest part of getting started is setting up the peripheral tools (ex. Firebase, Supabase, Amplitude, etc).
I love experimenting. I love writing about different tech stacks and understanding how competing tools work. With that in mind, the second goal of the Flutter Fast CLI was to create a tool that wouldn't depend on a single platform. While the CLI is still a work in progress, a few examples of this flexibility are ready for use:
You can view the roadmap to see additional platforms we plan to support.
Below is an incomplete list of all the things the Flutter Fast CLI does for you:
analysis_options.yaml
filepubspec.yaml
file with necessary dependencies based on config valueconstants.dart
file with reusable padding and gap valuesmultiDexEnabled = true
to app/build.gradlekey.properties
fileconfig.json
file to be used with --dart-define-from-file run argumentREADME.md
file with helpful deploy tips (stuff I always forget)flutter pub run build_runner build --delete-conflicting-outputs
and dart format .
so projects are run-readyThe fast app
command gives you just about everything you need to launch a cross-platform Flutter app...but sometimes that's not enough. The Flutter Faster brick pack is an ever-expanding library of Mason bricks that can accelerate your development process. There are 30+ bricks for adding features, screens, and pizzazz:
To get all of the bricks, as well as lifetime updates and all future bricks that are added, check out our website!