SMF Flutter CLI

A comprehensive Flutter CLI tool for scaffolding and configuring Flutter applications with modular architecture.

Overview

SMF Flutter CLI is a powerful command-line interface that helps developers quickly scaffold Flutter applications with pre-configured modules, dependencies, and best practices. It provides a modular approach to Flutter project generation, allowing developers to select only the components they need.

Status: Alpha β€” Actively developed. Features are added continuously and APIs may change. Best suited for exploration and early prototypes. Feedback and contributions are welcome.

Features

  • πŸš€ Rapid Project Scaffolding: Generate Flutter projects with pre-configured modules
  • 🧩 Modular Architecture: Select and configure only the modules you need
  • πŸ”§ Smart Dependency Management: Automatic dependency resolution and configuration
  • πŸ“± Flutter Best Practices: Built-in templates following Flutter development standards
  • πŸ”₯ Firebase Integration: Seamless Firebase setup and configuration
  • πŸ›£οΈ Routing Solutions: Multiple routing options including GoRouter
  • πŸ“Š Analytics Ready: Built-in analytics and tracking capabilities
  • 🎯 Customizable Templates: Extensible brick-based template system

Install

dart pub global activate smf_flutter_cli
smf --version

Quick start

Interactive (you will be prompted for missing values):

smf create my_app

SMF CLI Demo

A CLI tool by Say My Frame

Usage: smf <command> [arguments]

Global options:
-h, --help           Print this usage information.
    --verbose        Enable verbose logging.
    --strict         Enable strict mode for module compatibility checks.
-v, --version        Print the current CLI version.
    --on-conflict    Behavior when destination directory exists (replace, copy, cancel, prompt).
                     [replace, copy, cancel, prompt (default)]

Available commands:
  create   Create flutter app

Run "smf help <command>" for more information about a command.

Non-interactive (fully scripted):

smf create my_cli_test_app \
  -m firebase_analytics,home,get_it,go_router \
  --route /home \
  --org com.saymyframe \
  -s bloc \
  --on-conflict replace

Available Modules

  • Core Flutter: Basic Flutter project structure and configuration
  • Firebase Core: Firebase initialization and basic setup
  • Analytics: Analytics and tracking integration
  • GoRouter: Advanced routing with GoRouter
  • GetIt: Dependency injection with GetIt
  • Communication: Inter-module communication patterns
  • Home Flutter: Home screen and navigation templates

Available State Manager Approach

  • BLoC: Event–State pattern using flutter_bloc.
  • Riverpod: Provider-based model using flutter_riverpod.

Support