flutter_fast_cli 1.4.0
flutter_fast_cli: ^1.4.0 copied to clipboard
Build Flutter Apps Faster. Generate boilerplate code for apps that require authentication, subscriptions, and more
Documentation • Code on the Rocks • Support • Pub.dev

Table of Contents #
What is Flutter Fast? #
The Flutter Fast CLI is a tool for generating a starter Flutter application with everything you need to start shipping.
- 🔒 Authentication via Firebase, Supabase, or Appwrite
- 💸 Subscriptions via RevenueCat
- 🌊 Analytics via Amplitude
- 🤖 Crash Reporting via Sentry
- 🏎️ CI/CD via Fastlane
- 🚀 Lots more!
dart pub global activate flutter_fast_cli
fast app -n my_app -o com.example
To get started, visit the official docs!
Why Flutter Fast? #
I created Flutter Fast to solve two of my own problems.
Faster Setup #
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).
Less Lock-in #
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:
- Choose to use either Firebase or Supabase as your PaaS
- Opt into including Subscriptions
You can view the roadmap to see additional platforms we plan to support.
How Fast? #
Below is an incomplete list of all the things the Flutter Fast CLI does for you:
- Sets up Sign In, Register, Forgot Password, and Profile screens
- Adds a generic Feedback feature that works out-of-the-box with Firestore, Supabase, or Appwrite
- Adds a settings screen with dark mode toggle
- Adds a simple onboarding view new users see on account creation
- Creates an auto_route router and adds it to your MaterialApp
- Introduces authentication based navigation and route guards
- Creates an instance of get_it
- Auto registers services in get_it using injectable
- Adds an
analysis_options.yaml
file - Creates a complete
pubspec.yaml
file with necessary dependencies based on config value - Adds the flutter_launcher_icon package and code snippet to quickly swap out logo (includes logic to remove alpha channel on iOS)
- Sets up Sentry for crash reporting
- Adds a basic debugging NavigationObserver to router
- Creates useful TextStyle and BuildContext extensions
- Creates
constants.dart
file with reusable padding and gap values - Adds basic bash scripts with preconfigured run configurations for Fastlane and common Flutter tasks
- Includes Android and iOS Fastlane files with Flutter-safe methods for incrementing build numbers (doesn't wipe out $(FLUTTER_BUILD_NUMBER))
- Adds
multiDexEnabled = true
to app/build.gradle - Adds billing dependency to app/build.gradle for subscription apps
- Performs release signing setup and creates empty
key.properties
file - Includes package_info_plus file and adds version string to home drawer
- Includes support for flex_color_scheme and google_fonts 🎨
- Includes boilerplate for generating ColorScheme from image
- Pre-built RSS feed module
- Pre-build AI Chat module (for Firebase builds)
- Sets up
config.json
file to be used with --dart-define-from-file run argument - Includes support for setting app and organization name at generation time
- Adds json_serializable and json_annotation dependencies
- Creates a
README.md
file with helpful deploy tips (stuff I always forget) - Creates abstract service classes for easy extensibility
- Runs
flutter pub run build_runner build --delete-conflicting-outputs
anddart format .
so projects are run-ready
Who is this for? #
The Flutter Fast CLI is for anyone who wants to ship a Flutter app fast.
It's also a good tool for experimenting with different stacks and learning how to integrate different tools into your Flutter app.