blue_bird_cli 1.0.0
blue_bird_cli: ^1.0.0 copied to clipboard
A powerful CLI tool to kickstart your Flutter projects with clean, scalable architectures that grow with your app.
Blue Bird CLI π¦ #
Build scalable Flutter apps with confidence.
Blue Bird CLI generates production-ready Flutter projects with clean architecture, workspace management, and automated dependency injection. Choose from lite templates for small apps or complex multi-package architectures for enterprise-scale applications.
Inspired by Very Good CLI π€
Installation π #
dart pub global activate blue_bird_cli
Quick Start #
# Create a lite app (small to medium projects)
blue_bird create lite_app -t flutter_lite
# Create a full-scale app (complex, enterprise projects)
blue_bird create full_app
# Add a feature package to an existing project
blue_bird create my_feature -t flutter_package -o "full_app/packages"
Templates #
πͺΆ Flutter Lite #
Perfect for small to medium-sized projects
A streamlined single-app structure with clean architecture, ideal for apps that need organization without the complexity of multi-package workspaces.
blue_bird create lite_app -t flutter_lite --org com.mycompany
Structure:
lite_app/
βββ lib/
β βββ main.dart
β βββ src/
β βββ config/ # DI, routes, l10n, theming
β βββ data/ # Repositories, data sources, models
β βββ domain/ # Entities, use cases, repository interfaces
β βββ presentation/ # Pages, widgets, view models
βββ assets/
βββ test/
ποΈ Flutter Project #
Built for complex, scalable applications
A comprehensive multi-package architecture with clean architecture patterns, perfect for large teams and enterprise apps.
blue_bird create full_app
Structure:
full_app/
βββ core/ # Foundation layer
βββ design_system/ # UI system
βββ packages/ # Feature packages
β βββ bb_example_package/
β βββ ...
βββ lib/ # Main app
π¦ Flutter Package #
Modular feature development
Generate feature packages with clean architecture (data, domain, presentation layers) that automatically integrate with your workspace.
cd full_app/packages
blue_bird create my_feature -t flutter_package
Auto-configured:
- β Added to workspace
- β Added to dependencies
- β DI configuration injected
Architecture & Dependencies #
Blue Bird enforces a clear dependency hierarchy to maintain scalability:
graph TD
A[Main App] --> B[design_system]
A --> C[core]
A --> D[packages/*]
B --> C
D --> B
D --> C
style A fill:#4CAF50
style B fill:#2196F3
style C fill:#FF9800
style D fill:#9C27B0
Dependency Rules:
- Main App β Can use all packages
- design_system β Can use core only
- core β No internal dependencies (foundation layer)
- packages/ β Can use core and design_system
- packages/ β β Cannot depend on each other (no cyclic dependencies)
This ensures maintainability and prevents circular dependencies as your app grows.
Package Structure #
Feature packages follow clean architecture with three distinct layers:
Domain Layer (Business Logic)
- Entities, repositories interfaces, use cases
Data Layer (Implementation)
- Repository implementations, data sources, models
Presentation Layer (UI)
- Pages, widgets, state management (Cubit/BLoC)
Example: bb_example_package
bb_example_package/
βββ lib/src/
β βββ domain/
β βββ data/
β βββ presentation/
β βββ config/di/
Commands #
Create Projects & Packages #
# Lite template
blue_bird create lite_app -t flutter_lite
# Full project (default)
blue_bird create full_app
# Feature package
blue_bird create my_package -t flutter_package
# With custom organization
blue_bird create my_app --org com.example.myapp
# All platforms are added by default, remove them like this
blue_bird create my_app -t flutter_lite --android false --ios false
Update CLI #
blue_bird update
Help #
blue_bird --help
blue_bird create --help
Features #
β¨ Workspace Management - Automatic workspace configuration
π§ Auto DI Integration - Dependencies injected automatically
π Clean Architecture - Domain, data, presentation layers
π¨ Design System - Centralized theming and components
π§ͺ Test Ready - Pre-configured testing structure
π¦ Modular - Feature-based package organization
π Melos Compatible - Multi-package development ready