Skip to content

rakibur557/flarch_cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Flarch CLI

pub package License: MIT

Flarch is a powerful command-line interface (CLI) tool designed to simplify and streamline Flutter project development. It automates the creation of clean architecture folder structures, manages features, and configures essential project components with ease.

πŸš€ Features

Project Initialization

  • Interactive & Non-Interactive Modes: Initialize Flutter projects with comprehensive setup
  • Automated Configuration: Set up assets, themes, routing, networking, storage, and utilities in one command

Architecture Support

  • Clean Architecture: Full support for Clean Architecture patterns
  • MVC & MVVM: Support for MVC and MVVM architectures
  • State Management: Integration with Bloc, GetX, and Provider

Feature Management

  • Create Features: Generate complete feature structures with a single command
  • List Features: View all features in your project
  • Remove Features: Safely delete features with all associated files
  • Rename Features: Rename features while maintaining structure

Project Configuration

  • Assets Setup: Configure assets folder structure
  • Theme Configuration: Set up light/dark themes
  • Router Setup: Configure GoRouter for navigation
  • Storage Setup: Configure local storage (Hive, SharedPreferences, ObjectBox, Isar, Drift)
  • Network Setup: Configure Dio client with connectivity checking
  • Utils Setup: Create constants, API endpoints, and logger utilities

Project Maintenance

  • Clean pubspec.yaml: Remove unnecessary comments
  • Package ID Management: Replace package IDs across the project
  • App Name Management: Change app display names
  • Health Check: Analyze project health and get recommendations

πŸ“¦ Installation

dart pub global activate flarch

Make sure you have Dart SDK installed and pub cache bin is in your PATH.

🎯 Quick Start

Initialize a New Project

# Interactive mode (asks questions)
flarch init

# Non-interactive mode (all options enabled)
flarch init my_app

Create a Feature

# Interactive mode
flarch "FeatureName"

# With architecture
flarch "FeatureName" --clean
flarch "FeatureName" --mvc
flarch "FeatureName" --mvvm

# With state management
flarch "FeatureName" -sm "Name" -bloc
flarch "FeatureName" -sm "Name" -getx

Configure Project

# Setup assets
flarch config assets

# Setup theme
flarch config theme

# Setup router
flarch config router

# Setup storage
flarch config storage

# Setup network (via init)
flarch init

πŸ“š Usage Guide

Project Initialization

flarch init                    # Interactive mode
flarch init my_app            # Non-interactive mode (all options enabled)

Feature Management

flarch list                    # List all features
flarch tree                    # Show project directory tree
flarch rm FeatureName         # Remove a feature
flarch rename OldName NewName  # Rename a feature

Project Configuration

flarch config assets           # Setup assets folder structure
flarch config main             # Clean main.dart and create app.dart
flarch config theme            # Setup theme configuration
flarch config router           # Setup GoRouter configuration
flarch config storage          # Setup local storage
flarch config package <id>     # Replace package ID
flarch config name "App Name"  # Change app display name

Project Maintenance

flarch clean pubspec           # Clean comments from pubspec.yaml
flarch health                  # Check project health

πŸ—οΈ Architecture Support

Clean Architecture

flarch "FeatureName" --clean
flarch "FeatureName" -u "UseCaseName"    # Create use case
flarch "FeatureName" -m "ModelName"      # Create model/entity
flarch "FeatureName" -r "RepositoryName" # Create repository
flarch "FeatureName" -d "DataSourceName"  # Create data source

MVC Architecture

flarch "FeatureName" --mvc

MVVM Architecture

flarch "FeatureName" --mvvm

πŸ”§ State Management

flarch "FeatureName" -sm "Name" -bloc     # Bloc state management
flarch "FeatureName" -sm "Name" -getx     # GetX state management
flarch "FeatureName" -sm "Name" -provider # Provider state management

πŸ“– Documentation

For detailed documentation, run:

flarch --help

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

πŸ“ License

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

πŸ‘€ Author

Rakibur Rahman

πŸ™ Acknowledgments

  • Inspired by clean architecture principles
  • Built with ❀️ for the Flutter community

πŸ“Š Project Health

Check your project's health and get recommendations:

flarch health

This will analyze your project structure, dependencies, configuration, and best practices, providing actionable recommendations.


Made with ❀️ for Flutter developers

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages