flutter_fast_cli 2.0.2 copy "flutter_fast_cli: ^2.0.2" to clipboard
flutter_fast_cli: ^2.0.2 copied to clipboard

Build Flutter Apps Faster. Generate boilerplate code for apps that require authentication, subscriptions, and more

Flutter Fast Apps

MIT License pub version

DocumentationCode on the RocksSupportPub.dev

Table of Contents #

Getting Started #

dart pub global activate flutter_fast_cli
fast app

Commands #

General #

Name Description
app Create a new Flutter Fast app using the step-by-step wizard
setup Setup your Flutter Faster environment
build Run dart run build_runner --delete-conflicting-outputs
update Update flutter_fast_cli

To get started, visit the official docs!

Bricks #

Command Brick Description
mason make fast_ads fast_ads Add a banner ad to your app with AdMod
mason make fast_biometrics fast_biometrics Add biometric authentication to your app
mason make fast_feature fast_feature Add an empty feature with ui, models, and services folders
mason make fast_notifications fast_notifications Add push notifications to your app with Firebase Cloud Messaging
mason make fast_storage fast_storage Add cloud storage to your app with Firebase Storage, Supabase, or Pocketbase
mason make fast_route fast_route Add a new route to your app's router
mason make fast_feed fast_feed Add a social media feed to your app
mason make fast_fetch fast_fetch Add a data fetching module to your app
mason make fast_feedback fast_feedback Add a feedback module to your app
mason make fast_gallery fast_gallery Add a photo gallery to your app
mason make fast_rss fast_rss Add an RSS feed to your app
mason make fast_subscriptions fast_subscriptions Monetize your apps on Android and iOS with a RevenueCat integration
mason make flutter_inappwebview flutter_inappwebview Add a webview to your app
mason make get_it get_it Add a service locator to your app
mason make google_maps_flutter google_maps_flutter Add a map to your app
mason make fast_storage fast_storage Add cloud storage to your app with Firebase Storage, Supabase, or Pocketbase
mason make just_audio just_audio Add audio to your app
mason make wiredash wiredash Add a feedback module to your app

Documentation #

See the API documentation for details on the following topics:

Features #

AB Testing #

Method Remote Config Posthog
Feature Flags
String Values

Analytics #

Method Amplitude Posthog Firebase Analytics
Events
User Properties
User Properties (Set once)

Authentication #

Method Firebase Supabase Appwrite Pocketbase
Email/Password
Google
Apple

Automation #

Method Android iOS Web
Fastlane
GitHub Actions
Shorebird

Flutter Fast #

What is Flutter Fast? #

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 in order to make building as fast as possible. For that reason, the following components of the stack can not be substituted (for now):

Similarly, Flutter Fast apps use a consistent project structure:

├── 📁 lib/
│  ├── 📁 app
│  ├── 📁 features
│  │   ├── 📁 featureOne
│  │   └── 📁 featureTwo
│  │       ├── 📁 models
│  │       ├── 📁 ui
│  │       │   ├── 📄 two_view.dart
│  │       │   └── 📄 two_view_model.dart
│  │       └── 📁 services
│  └── 📄 main.dart
├── 📄 CHANGELOG.md
├── 📄 pubspec.lock
├── 📄 README.md

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, Supabase, Pocketbaso, or AppWrite as your PaaS
  • Choose between Amplitude and Posthog for analytics
  • Choose between Sentry and Firebase Crashlytics for crash reporting

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
  • SSO with Google and Apple
  • Adds a settings screen with dark mode toggle
  • Adds a simple onboarding view new users see on account creation
  • Creates a router using auto_route, go_router, or the vanilla navigator 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 (optional)
  • 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
  • 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
  • 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 and dart format . so projects are run-ready

Flutter Faster #

The 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:

  • Subscription service (fast_subscriptions)
  • User feedback screen (fast_feedback)
  • Google maps setup (google_maps_flutter)
  • Biometric sign in (fast_biometrics)
  • Pre-built RSS feed module
  • Pre-build AI Chat module (for Firebase builds)
  • A generic Feedback feature that works out-of-the-box with Firestore, Supabase, Pocketbase or Appwrite
  • Adds billing dependency to app/build.gradle for subscription apps
  • Plus lots more

To get all of the bricks, as well as lifetime updates and all future bricks that are added, check out our website!