A powerful CLI tool for creating and managing Flutter applications with best practices and consistent architecture.
Flutter Bunny is an opinionated CLI tool that helps you create, manage, and maintain Flutter applications with a focus on:
- Best practices β Follow Flutter community best practices
- Consistent architecture β Choose Clean Architecture, MVVM, or MVC
- Rapid development β Generate components quickly
- Testing support β Templates for unit, widget, and integration tests
- Project maintenance β Keep your project organized and up-to-date
dart pub global activate flutter_bunny 1.1.1
# Verify installation
flutter_bunny --version
Make sure the pub cache bin directory is in your PATH.
brew tap demola234/homebrew-tap
brew install flutter_bunny
Command | Description |
---|---|
create |
Create a new Flutter app interactively |
generate |
Generate screens, widgets, models, and more |
analyze |
Run static analysis |
build |
Run build_runner |
update |
Update Flutter Bunny CLI |
config |
Manage configuration settings |
doctor |
Check Flutter project health |
Run flutter_bunny help <command>
for detailed usage.
flutter_bunny create app
You'll be guided through selecting:
- Project name and organization
- Architecture pattern (Clean Architecture, MVVM, MVC)
- State management (Provider, Riverpod, Bloc, etc.)
- Features and modules to include
Example with specific options:
flutter_bunny create app --name my_awesome_app --architecture clean_architecture --state-management riverpod
You can now generate models interactively, from JSON samples, or with specific serialization methods.
# Start an interactive session
flutter_bunny generate model --name User
# Generate a model with specific serializer
flutter_bunny generate model --name Product --serializer json_serializable
# Generate a model from a JSON string
flutter_bunny generate model --name User --json '{"id": 1, "name": "John", "email": "john@example.com"}'
# Generate in non-interactive mode
flutter_bunny generate model --name Order --interactive false
Option | Description |
---|---|
--name or -n |
(Required in non-interactive mode) Model name |
--directory or -d |
Directory to create model (default: lib/models ) |
--serializer or -s |
Serialization method: freezed , json_serializable (default), manual , or equatable |
--interactive or -i |
Use interactive mode (default: true) |
--json |
Provide a JSON sample or path to generate the model |
When enabled (--interactive true
):
- Prompt for model name
- Choose serialization method
- Enter JSON manually or load from file
- Detect nested models and generate them
- Suggest dependencies like
freezed_annotation
,json_serializable
flutter_bunny generate model
flutter_bunny generate model --name Product --serializer freezed
flutter_bunny generate model --name ApiResponse --json path/to/sample.json
flutter_bunny generate model --name Order --json '{"id": 123, "items": [{"productId": 1, "quantity": 2}], "customer": {"id": 456, "name": "John Doe"}}'
- Model files created in
lib/models
- Correct serialization setup
- Imports and part files generated if needed
- Dependency suggestions provided
- Build runner commands shared
lib/
βββ core/
β βββ errors/
β βββ network/
β βββ utils/
β βββ theme/
βββ data/
β βββ datasources/
β βββ models/
β βββ repositories/
βββ domain/
β βββ entities/
β βββ repositories/
β βββ usecases/
βββ presentation/
β βββ blocs/
β βββ pages/
β βββ widgets/
βββ main.dart
lib/
βββ models/
βββ services/
βββ view_models/
βββ views/
β βββ screens/
β βββ widgets/
βββ main.dart
lib/
βββ models/
βββ services/
βββ views/
β βββ controllers/
β βββ models/
β βββ views/
βββ main.dart
- Provider
- Riverpod
- Bloc/Cubit
- GetX
- MobX
- Redux
Projects are scaffolded with testing support:
# Run all tests
flutter_bunny test
# Run unit tests only
flutter_bunny test --type unit
Includes:
- Unit Tests
- Widget Tests
- Integration Tests
# Analyze the project
flutter_bunny analyze
# Check project health
flutter_bunny doctor
# Update CLI
flutter_bunny update
# Show current config
flutter_bunny config show
# Set defaults (e.g., architecture)
flutter_bunny config set default_architecture clean_architecture
You can also create custom templates under ~/.flutter_bunny/templates/
.
Contributions are welcome! Please:
- Fork the repo
- Create a feature branch
- Submit a Pull Request
Check the CONTRIBUTING.md for details.
Licensed under the MIT License.
- Open an Issue
- View the Official Documentation