Skip to content

FluPilot CLI is a cross-platform tool to quickly scaffold Flutter projects with interactive package selection and automated setup. It streamlines project initialization, dependency management, and IDE launching. Ideal for developers seeking a fast, customizable Flutter workflow.

License

Notifications You must be signed in to change notification settings

ahmedali109/FluPilot-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ FluPilot CLI

A lightweight and powerful CLI tool to scaffold Flutter projects faster with interactive package selection, auto-generated boilerplate, and clean project setup.

License: ISC GitHub Issues GitHub Repo stars

πŸ“– Overview

FluPilot CLI streamlines Flutter development by providing an interactive command-line interface that automates project setup, package management, and boilerplate code generation. Whether you're building a simple app or a complex enterprise solution, FluPilot CLI helps you get started quickly with industry best practices baked in.

✨ Key Features

🎯 Interactive Project Creation

  • Smart Bundle ID Configuration: Automated bundle ID setup for seamless deployment
  • Directory Selection: Choose your project location with an intuitive picker
  • Platform Optimization: Removes unnecessary platforms (web, desktop) for mobile-focused development

πŸ“¦ Comprehensive Package Management

FluPilot CLI supports 150+ popular Flutter packages across multiple categories:

🎨 UI & UX

  • App Setup: Icons, splash screens, onboarding flows
  • Animations: Lottie, animate_do, flutter_animate, animated_text_kit
  • Navigation: Bottom navigation bars, page indicators, pull-to-refresh
  • Utilities: Shimmer effects, loading indicators, toast notifications

πŸ—οΈ Architecture & State Management

  • State Management: BLoC, Provider, Riverpod, Hydrated BLoC
  • Navigation: GoRouter with auto-generated route configurations
  • Dependency Injection: GetIt with pre-configured service locator patterns

🌐 Networking & APIs

  • HTTP Clients: Dio, Retrofit with interceptors and error handling
  • Code Generation: JSON serialization, Freezed models, build_runner
  • Connectivity: Network status monitoring, internet connection checking

πŸ’Ύ Storage Solutions

  • Local Storage: SharedPreferences, Hive, SQLite
  • Cloud Services: Firebase (Auth, Firestore, Analytics), Supabase
  • Caching: Cached network images, offline-first patterns

πŸ” Authentication & Security

  • Social Login: Google, Apple, Facebook authentication
  • Biometric Auth: Fingerprint, Face ID, local authentication
  • Security: Secure storage, encryption, app lock screens

🌍 Localization & Accessibility

  • Internationalization: Easy Localization with auto-generated translations
  • Responsive Design: Screen utilities, responsive frameworks
  • Accessibility: Screen readers, semantic labels

πŸ“± Device Integration

  • Media: Image/video pickers, audio players, camera integration
  • System: Device info, package info, URL launcher
  • Notifications: Local notifications, push messaging, awesome notifications

πŸ—οΈ Auto-Generated Architecture

Clean Architecture Structure

lib/
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ constants/
β”‚   β”œβ”€β”€ helpers/           # Extensions, spacing, regex utilities
β”‚   β”œβ”€β”€ networking/        # API services, error handling
β”‚   β”œβ”€β”€ services/          # Local auth, notifications, storage
β”‚   └── widgets/           # Reusable UI components
β”œβ”€β”€ features/
β”‚   └── auth/              # Feature-based modular structure
β”‚       β”œβ”€β”€ data/
β”‚       β”‚   β”œβ”€β”€ models/    # Data models with JSON serialization
β”‚       β”‚   └── repo/      # Repository pattern implementation
β”‚       β”œβ”€β”€ logic/         # BLoC/Cubit state management
β”‚       └── ui/            # Screens and widgets
└── main.dart

Pre-built Authentication System

  • Complete auth flow with login/register/forgot password
  • Social authentication (Google, Apple) integration
  • Biometric authentication support
  • Password validation with real-time feedback
  • Responsive form design with localization

Networking Layer

  • Dio HTTP client with interceptors
  • API error handling and result patterns
  • Retrofit integration for type-safe API calls
  • Network connectivity monitoring

State Management

  • BLoC pattern implementation
  • Cubit generators for rapid development
  • State persistence with Hydrated BLoC
  • Equatable for value comparison

πŸ› οΈ Development Tools

Code Generation

  • JSON serialization with json_annotation
  • Freezed for immutable data classes
  • Build runner automation
  • Retrofit API client generation

Asset Management

  • Automatic asset folder creation
  • pubspec.yaml asset configuration
  • Image optimization and organization
  • Icon and splash screen generation

Platform Configuration

  • iOS Info.plist permissions setup
  • Android manifest permissions
  • Firebase/Supabase configuration
  • Platform-specific optimizations

πŸš€ Quick Start

Prerequisites

  • Flutter SDK: Latest stable version
  • Git: Version control
  • Gum: Interactive CLI components (auto-installed)
  • Python 3: For build tools (macOS/Linux) or Python (Windows)

Installation

via npm (Recommended)

npm install -g flupilot-cli
flupilot-cli

Manual Installation

git clone https://github.com/ahmedali109/FluPilot-CLI.git
cd FluPilot-CLI
chmod +x scripts/helper/check_and_install_deps.sh
./scripts/helper/check_and_install_deps.sh

Usage

  1. Run FluPilot CLI:

    flupilot-cli
  2. Follow the Interactive Prompts:

    • Select project directory
    • Enter project name and bundle ID
    • Choose package categories
    • Select specific packages
    • Configure Firebase/Supabase (if selected)
  3. Your Project is Ready!:

    • All dependencies installed
    • Boilerplate code generated
    • Platform configurations applied
    • Ready to open in your preferred IDE

πŸ“š Detailed Workflow

1. Project Initialization

πŸ“ Select project location
πŸ“ Enter Flutter project name
πŸ†” Configure Bundle ID (com.example.yourapp)
πŸš€ Create Flutter project with optimized structure

2. Package Selection

πŸ“¦ Choose from 15+ categories:
   β”œβ”€β”€ App Setup (Icons, Splash, Onboarding)
   β”œβ”€β”€ UI Components (Animations, Navigation)
   β”œβ”€β”€ State Management (BLoC, Provider)
   β”œβ”€β”€ Networking (HTTP, GraphQL)
   β”œβ”€β”€ Storage (Local, Cloud)
   β”œβ”€β”€ Authentication (Social, Biometric)
   └── System Integration (Notifications, Device)

3. Code Generation

πŸ› οΈ Generate boilerplate for selected packages
πŸ“„ Create service classes and utilities
πŸ—οΈ Set up architecture patterns
βš™οΈ Configure platform-specific settings

4. Final Setup

πŸ”§ Run build_runner (if needed)
🎯 Open project in preferred IDE
βœ… Ready for development!

🎯 Use Cases

MVP Development

Quick prototype creation with essential features:

  • Authentication system
  • Basic UI components
  • Local storage
  • API integration

Enterprise Applications

Production-ready setup with:

  • Clean architecture
  • State management
  • Comprehensive testing structure
  • CI/CD configurations

Learning Projects

Educational setup with:

  • Best practices implementation
  • Modern Flutter patterns
  • Code organization examples
  • Documentation templates

πŸ› οΈ Available Commands

CLI Flags

--help, -h     Show help information
--version, -v  Display version information

πŸ“‹ Package Categories

🎨 UI & Visual (35+ packages)

  • Animations: Lottie, animate_do, flutter_animate, animated_text_kit
  • Indicators: Progress bars, loading spinners, shimmer effects
  • Navigation: Bottom nav bars, page indicators, sliding panels
  • Utilities: Toast notifications, dialogs, overlays

πŸ—οΈ Architecture (20+ packages)

  • State Management: BLoC, Provider, Riverpod, GetX
  • Navigation: GoRouter, AutoRoute, Navigator 2.0
  • Dependency Injection: GetIt, Injectable, Kiwi
  • Code Generation: Build runner, JSON serialization, Freezed

🌐 Networking (15+ packages)

  • HTTP: Dio, Retrofit, HTTP interceptors
  • GraphQL: GraphQL Flutter, Ferry
  • Connectivity: Network monitoring, offline support
  • Caching: Image caching, data persistence

πŸ’Ύ Storage (12+ packages)

  • Local: SharedPreferences, Hive, SQLite, Secure Storage
  • Cloud: Firebase, Supabase, AWS Amplify
  • Caching: Cache management, offline-first patterns

πŸ” Authentication (10+ packages)

  • Social: Google, Apple, Facebook, Twitter sign-in
  • Biometric: Fingerprint, Face ID, local authentication
  • Security: JWT handling, secure storage, encryption

πŸ”§ Configuration Examples

Firebase Setup

# Automatically configured
firebase_core: ^latest
firebase_auth: ^latest
cloud_firestore: ^latest
firebase_analytics: ^latest

BLoC State Management

// Auto-generated cubit structure
class AuthCubit extends Cubit<AuthState> {
  AuthCubit() : super(AuthInitial());

  void login(String email, String password) {
    // Implementation generated
  }
}

Networking with Dio

// Auto-configured API service
class ApiService {
  final Dio _dio = DioFactory.getDio();

  Future<Response> getData() {
    // Type-safe API calls
  }
}

🀝 Contributing

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

πŸ› Bug Reports

  • Use the issue tracker
  • Provide detailed reproduction steps
  • Include system information

πŸ’‘ Feature Requests

  • Suggest new packages or integrations
  • Propose architecture improvements
  • Share use case scenarios

πŸ”§ Development

# Fork the repository
git clone https://github.com/yourusername/FluPilot-CLI.git
cd FluPilot-CLI

# Create feature branch
git checkout -b feature/amazing-feature

# Make your changes and test
./scripts/helper/check_and_install_deps.sh

# Submit pull request

πŸ“š Documentation

  • Improve README sections
  • Add code examples
  • Create tutorial content
  • Translate documentation

πŸ“ˆ Roadmap

πŸ”œ Coming Soon

  • Template System: Custom project templates
  • Plugin Architecture: Third-party integrations
  • Testing Setup: Unit, widget, and integration tests
  • CI/CD Templates: GitHub Actions, GitLab CI

🎯 Future Plans

  • Web Support: Web-specific packages and setup
  • Desktop Support: Windows, macOS, Linux configurations

πŸ“œ License

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


Made with ❀️ by Ahmed Ali

Made with ❀️ by Ahmed Ali

⭐ Star this repo | πŸ› Report Bug | πŸ’‘ Request Feature

About

FluPilot CLI is a cross-platform tool to quickly scaffold Flutter projects with interactive package selection and automated setup. It streamlines project initialization, dependency management, and IDE launching. Ideal for developers seeking a fast, customizable Flutter workflow.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages