Skip to content

kasundularaam/flutter-berry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Flutterberry πŸ“

npm version npm downloads License: MIT Flutter Node.js

Skip the setup, start coding! Flutterberry is a powerful CLI tool that instantly bootstraps your Flutter projects with a production-ready architecture, essential dependencies, and best practices - all with a single command.

✨ Why Flutterberry?

Starting a new Flutter project usually means hours of manual setup:

  • ❌ Manually installing dozens of dependencies
  • ❌ Setting up folder architecture from scratch
  • ❌ Configuring routing, state management, and dependency injection
  • ❌ Creating boilerplate code for themes and utilities
  • ❌ Running build_runner and resolving conflicts

Flutterberry does ALL of this in seconds! ⚑️

πŸš€ What's in the Box?

With a single flutterberry command, you get:

  • πŸ—οΈ Production-Ready Architecture - Complete DDD (Domain-Driven Design) folder structure
  • πŸ“¦ Essential Dependencies - All the packages you need for modern Flutter development
  • 🎨 Theming Setup - Beautiful, customizable themes with Flex Color Scheme
  • 🧭 Routing Configuration - Auto Route setup for declarative navigation
  • πŸ’‰ Dependency Injection - GetIt + Injectable for clean architecture
  • πŸ”„ State Management - Flutter BLoC pattern implementation
  • πŸ› οΈ Code Generation - Automatic build_runner execution with conflict resolution

πŸ“¦ Installation

Install Flutterberry globally via npm:

npm install -g flutter-berry

🎯 Usage

  1. Create a new Flutter project:

    flutter create my_awesome_app
    cd my_awesome_app
  2. Run Flutterberry:

    flutterberry
  3. That's it! Your project is now ready with professional architecture and all dependencies installed.

πŸ—οΈ Project Structure

Flutterberry creates a clean, scalable architecture following DDD principles:

lib/
β”œβ”€β”€ app/                    # Application layer
β”œβ”€β”€ core/                   # Shared core functionality
β”‚   β”œβ”€β”€ extensions/         # Dart extensions
β”‚   β”œβ”€β”€ domain/            # Domain layer
β”‚   β”‚   └── failure/       # Error handling
β”‚   β”œβ”€β”€ infrastructure/    # Infrastructure layer  
β”‚   β”‚   β”œβ”€β”€ repo/          # Repository implementations
β”‚   β”‚   └── services/      # External services
β”‚   └── presentation/      # Presentation layer
β”‚       β”œβ”€β”€ router/        # Navigation setup
β”‚       β”œβ”€β”€ screens/       # UI screens
β”‚       β”‚   └── landing/   # Landing page example
β”‚       β”œβ”€β”€ widgets/       # Reusable widgets
β”‚       └── app/          # App configuration
β”œβ”€β”€ injection/             # Dependency injection setup
└── main.dart             # Application entry point

πŸ“š Dependencies Included

Core Dependencies

  • auto_route - Declarative route generation
  • dartz - Functional programming utilities
  • flex_color_scheme - Advanced Material Design theming
  • flutter_bloc - Predictable state management
  • freezed_annotation - Immutable data classes
  • get_it - Service locator for dependency injection
  • injectable - Code generation for dependency injection
  • json_annotation - JSON serialization
  • google_fonts - Beautiful typography
  • toastification - Elegant toast notifications

Dev Dependencies

  • auto_route_generator - Route code generation
  • build_runner - Code generation runner
  • freezed - Data class and union generation
  • injectable_generator - DI code generation
  • json_serializable - JSON serialization generation

🎨 Architecture Benefits

Domain-Driven Design (DDD) provides:

  • πŸ”„ Separation of Concerns - Clean boundaries between layers
  • πŸ§ͺ Testability - Easy unit testing with dependency injection
  • πŸ“ˆ Scalability - Architecture that grows with your project
  • πŸ”§ Maintainability - Organized code that's easy to understand
  • πŸ”„ Reusability - Modular components across features

πŸ› οΈ What Happens Under the Hood

When you run flutterberry, it:

  1. πŸ“ Copies Architecture - Replaces your lib/ folder with the complete structure
  2. ⬇️ Installs Dependencies - Adds all core packages to pubspec.yaml
  3. πŸ”§ Installs Dev Dependencies - Adds development tools
  4. πŸ”„ Fetches Packages - Runs flutter pub get
  5. ⚑ Generates Code - Executes build_runner with conflict resolution

🚦 Requirements

  • Node.js 14.0 or higher
  • Flutter 3.0 or higher
  • Dart 2.17 or higher

🎯 Quick Start Example

# Create new project
flutter create todo_app
cd todo_app

# Bootstrap with Flutterberry  
flutterberry

# Start developing immediately!
flutter run

🀝 Contributing

We love contributions! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ› Issues & Support

Found a bug or need help? Please open an issue on GitHub.

⭐ Show Your Support

If Flutterberry saved you time, please give it a star! ⭐️


Made with πŸ’œ by developers, for developers

Releases

No releases published

Packages

 
 
 

Contributors