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
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
- π§ Email: support@saymyframe.com
- π Issues: GitHub Issues
- π Documentation: SayMyFrame Docs
Libraries
- bundles/smf_cli_brick_bundle
- cli_engine
- commands/base
- commands/create
- commands/smf_command_runner
- constants/smf_modules
- constants/smf_options
- file_writers/composite_write_strategy
- file_writers/default_write_strategy
- file_writers/dry_run_write_strategy
- file_writers/file_write_strategy
- file_writers/file_writer
- generators/brick_generator
- generators/dsl_generator
- generators/generator
- generators/pubspec_generator
- prompts/create_prompt
- prompts/models/cli_context
- prompts/models/project_preferences
- prompts/prompt
- prompts/theme
- utils/module_creator
- utils/module_dependency_resolver
- utils/safe_generation_runner
- utils/utils
- version