starter_kit 1.0.2+1 copy "starter_kit: ^1.0.2+1" to clipboard
starter_kit: ^1.0.2+1 copied to clipboard

A comprehensive, scalable, and production-ready Flutter boilerplate generator with clean architecture.

StarterKit - Flutter Boilerplate Generator #

pub package style: very good analysis License: MIT

Stop writing boilerplate. Start building features.

A comprehensive Flutter package that generates production-ready boilerplate with clean architecture, beautiful design system, and essential utilities in seconds.


⚑ Quick Start #

flutter pub add starter_kit              # Add package
dart run starter_kit init                # Generate boilerplate
dart run starter_kit add_screen Login    # Create screens
dart run starter_kit add_api UserAPI     # Add API services

🎯 What you get: Complete project structure, design system, network layer, utilities, and tests - all in under 30 seconds!


πŸ“š Table of Contents #

🏁 Getting Started #

πŸ› οΈ Core Features #

🎨 Design & Development #

πŸ“– Guides & Examples #

πŸ”§ Advanced #


🌟 What is StarterKit? #

StarterKit eliminates the tedious setup phase of Flutter projects. Instead of spending hours setting up folder structures, design systems, and boilerplate code, you get everything instantly.

πŸ“Š Traditional vs StarterKit Approach #

Traditional Setup ⏱️ Time StarterKit ⏱️ Time
Create folder structure 30 min dart run starter_kit init 10 sec
Setup clean architecture 2 hours βœ… Auto-generated 0 sec
Design color system 1 hour βœ… WeChat-inspired included 0 sec
Create API client 1 hour βœ… Production-ready client 0 sec
Write form validators 45 min βœ… Pre-built validators 0 sec
Setup testing structure 1 hour βœ… Complete test framework 0 sec
Total Setup Time ~6 hours Total Setup Time ~10 seconds

πŸ’‘ Why Choose StarterKit? #

🎯 Core Benefits #

β”Œβ”€ SPEED ────────────────────────────────────────────────┐
β”‚  β€’ 25+ files generated in 10 seconds                  β”‚
β”‚  β€’ Skip repetitive boilerplate setup                  β”‚
β”‚  β€’ Focus on building features, not infrastructure     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€ QUALITY ──────────────────────────────────────────────┐
β”‚  β€’ Industry-standard clean architecture               β”‚
β”‚  β€’ Production-ready error handling                    β”‚
β”‚  β€’ Comprehensive testing structure                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€ CONSISTENCY ──────────────────────────────────────────┐
β”‚  β€’ Standardized project structure                     β”‚
β”‚  β€’ Unified coding patterns                            β”‚
β”‚  β€’ Team-friendly conventions                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ† What Makes It Special #

  • πŸš€ Zero Configuration - Works out of the box
  • πŸ“± Mobile-First - Optimized for Flutter development
  • 🎨 Beautiful Design - WeChat-inspired design system
  • πŸ§ͺ Test-Ready - Complete testing infrastructure
  • πŸ“ˆ Scalable - Grows with your project needs

🏁 First Steps #

🎬 Initialize Your Project #

dart run starter_kit init

✨ This single command creates:

πŸ“¦ Your Flutter Project
β”œβ”€β”€ πŸ—οΈ  Clean Architecture Setup
β”œβ”€β”€ 🎨  Complete Design System
β”œβ”€β”€ 🌐  Production API Client
β”œβ”€β”€ πŸ› οΈ  Utility Functions
β”œβ”€β”€ πŸ§ͺ  Testing Infrastructure
└── πŸ“±  Ready-to-use Components

🎯 What Gets Generated #

Component Files Created Purpose
πŸ—οΈ Architecture 8 files Domain, Data, Presentation layers
🎨 Design System 6 files Colors, typography, components
🌐 Network Layer 3 files API client, error handling
πŸ› οΈ Utilities 5 files Validators, helpers, navigation
πŸ§ͺ Testing 3 files Unit, widget, integration tests

πŸ› οΈ CLI Commands #

StarterKit provides 4 powerful commands to accelerate your development:

πŸ“‹ Command Overview #

β”Œβ”€ COMMAND ──────────┬─ PURPOSE ──────────────┬─ FILES ─┬─ TIME ─┐
β”‚ init               β”‚ Complete setup         β”‚   25+   β”‚  10s   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ add_screen <name>  β”‚ Create new screen      β”‚    2    β”‚   2s   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ add_api <name>     β”‚ Generate API service   β”‚    3    β”‚   3s   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ add_model <name>   β”‚ Create data model      β”‚    3    β”‚   2s   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Real-World Usage Examples #

πŸ” Building Authentication Flow

dart run starter_kit add_screen LoginScreen
dart run starter_kit add_screen SignupScreen  
dart run starter_kit add_api AuthService
dart run starter_kit add_model User

πŸ›’ Creating E-commerce Features

dart run starter_kit add_screen ProductListScreen
dart run starter_kit add_screen ProductDetailScreen
dart run starter_kit add_api ProductService
dart run starter_kit add_model Product

πŸ“Š Command Details #

init - Project Foundation

  • βœ… Creates complete folder structure
  • βœ… Sets up clean architecture
  • βœ… Generates design system
  • βœ… Configures API client
  • βœ… Implements utilities

add_screen - UI Creation

  • βœ… Generates StatefulWidget
  • βœ… Includes proper imports
  • βœ… Creates widget test file
  • βœ… Follows naming conventions

add_api - Service Generation

  • βœ… Creates repository interface
  • βœ… Implements repository pattern
  • βœ… Generates unit tests
  • βœ… Includes error handling

add_model - Data Structures

  • βœ… Creates domain entity
  • βœ… Generates data model
  • βœ… Implements JSON serialization
  • βœ… Includes unit tests

πŸ—οΈ Project Architecture #

StarterKit implements Clean Architecture with clear separation of concerns:

πŸ“Š Architecture Layers #

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    PRESENTATION LAYER                   β”‚
β”‚                                                         β”‚
β”‚  Screen Widgets β†’ State Management β†’ User Interactions  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      DOMAIN LAYER                       β”‚
β”‚                                                         β”‚
β”‚   Business Logic β†’ Entities β†’ Repository Contracts      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              ↓  
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       DATA LAYER                        β”‚
β”‚                                                         β”‚
β”‚    API Calls β†’ Data Models β†’ Repository Implementation  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       CORE LAYER                        β”‚
β”‚                                                         β”‚
β”‚     Utilities β†’ Configuration β†’ Dependency Injection    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Layer Responsibilities #

Layer 🎯 Focus πŸ“‹ Responsibilities πŸ”— Dependencies
🎨 Presentation UI & UX Widgets, screens, user interactions Domain + Core
🧠 Domain Business Logic Entities, use cases, business rules Core only
πŸ’Ύ Data Data Access API calls, caching, data transformation Domain + Core
βš™οΈ Core Infrastructure Configuration, utilities, DI container External packages

πŸ“ˆ Benefits of This Architecture #

β”Œβ”€ MAINTAINABILITY ──────────────────────────────────────┐
β”‚   β€’  Clear separation of concerns                      β”‚
β”‚   β€’  Easy to locate and modify code                    β”‚
β”‚   β€’  Reduced coupling between layers                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€ TESTABILITY ──────────────────────────────────────────┐
β”‚   β€’  Each layer can be tested independently            β”‚
β”‚   β€’  Easy mocking of dependencies                      β”‚
β”‚   β€’  Clear test boundaries                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€ SCALABILITY ──────────────────────────────────────────┐
β”‚   β€’  Easy to add new features                          β”‚
β”‚   β€’  Supports team collaboration                       β”‚
β”‚   β€’  Framework-independent business logic              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Generated Structure #

After running dart run starter_kit init:

πŸ“¦ your_project/
β”œβ”€β”€ πŸ“ lib/
β”‚   β”œβ”€β”€ πŸ“„ starter_kit.dart                    # πŸš€ Main exports
β”‚   └── πŸ“ src/
β”‚       β”œβ”€β”€ πŸ“ core/                          # βš™οΈ Core functionality
β”‚       β”‚   β”œβ”€β”€ πŸ“ config/                    # βš™οΈ App configuration
β”‚       β”‚   β”œβ”€β”€ πŸ“ design_system/             # 🎨 UI components & theme
β”‚       β”‚   β”œβ”€β”€ πŸ“ di/                        # πŸ”§ Dependency injection
β”‚       β”‚   β”œβ”€β”€ πŸ“ network/                   # 🌐 HTTP client
β”‚       β”‚   └── πŸ“ utils/                     # πŸ› οΈ Helper functions
β”‚       β”œβ”€β”€ πŸ“ data/                          # πŸ’Ύ Data layer
β”‚       β”‚   β”œβ”€β”€ πŸ“ models/                    # πŸ“Š Data models
β”‚       β”‚   └── πŸ“ repositories/              # πŸͺ Data repositories
β”‚       β”œβ”€β”€ πŸ“ domain/                        # 🧠 Business logic
β”‚       β”‚   β”œβ”€β”€ πŸ“ entities/                  # πŸ“‹ Domain entities
β”‚       β”‚   └── πŸ“ repositories/              # πŸ“„ Repository contracts
β”‚       └── πŸ“ presentation/                  # 🎨 UI layer
β”‚           β”œβ”€β”€ πŸ“ pages/                     # πŸ“± Screen widgets
β”‚           └── πŸ“ widgets/                   # 🧩 Reusable components
β”œβ”€β”€ πŸ“ test/                                  # πŸ§ͺ Testing
β”‚   β”œβ”€β”€ πŸ“ unit/                             # πŸ”¬ Unit tests
β”‚   β”œβ”€β”€ πŸ“ widget/                           # 🎭 Widget tests
β”‚   └── πŸ“ integration/                      # πŸ”— Integration tests
└── πŸ“ assets/                               # 🎭 Resources
    β”œβ”€β”€ πŸ“ images/                           # πŸ–ΌοΈ Images
    β”œβ”€β”€ πŸ“ icons/                            # 🎯 Icons
    └── πŸ“ fonts/                            # πŸ“ Custom fonts

🎨 Design System #

StarterKit includes a WeChat-inspired design system for consistent, beautiful UIs.

🎨 Color Palette #

Primary Colors - Main Actions

  • AppColors.primary - #07C160 (WeChat Green)
  • AppColors.primaryDark - #05A050 (Hover states)
  • AppColors.primaryLight - #4CD98B (Backgrounds)

Text Hierarchy

  • AppColors.textPrimary - #1A1A1A (Headings)
  • AppColors.textSecondary - #8C8C8C (Body text)
  • AppColors.textTertiary - #BFBFBF (Captions)

Status Colors

  • AppColors.success - #52C41A (Success states)
  • AppColors.warning - #FAAD14 (Warning states)
  • AppColors.error - #F5222D (Error states)
  • AppColors.info - #1890FF (Info states)

πŸ“ Typography Scale #

Style Size Weight Usage Example
h1 32px Bold Page titles, hero text
h2 28px Bold Section headers
h3 24px SemiBold Subsection titles
h4 20px SemiBold Card titles, form labels
bodyLarge 16px Regular Main content, descriptions
bodyMedium 14px Regular Secondary content
bodySmall 12px Regular Supporting text, footnotes
button 14px Medium Button labels
caption 10px Regular Timestamps, metadata

🧩 Ready-to-Use Components #

πŸ”˜ Buttons

  • PrimaryButton - Main actions (save, submit, continue)
  • SecondaryButton - Secondary actions (cancel, back)

πŸ“ Input Fields

  • AppTextField - Text inputs with validation
  • AppDropdown - Selection dropdowns
  • AppDatePicker - Date/time selection

πŸƒ Layout Components

  • AppCard - Content containers
  • AppScaffold - Page structure
  • AppAppBar - Navigation bars

🌐 Network & APIs #

StarterKit provides a production-ready HTTP client built on Dio.

πŸ”„ API Response Flow #

πŸ“± Your App Request
         ↓
πŸ›‘οΈ API Client (StarterKit)
         ↓
🌐 HTTP Request (Dio)
         ↓
πŸͺ External API
         ↓
πŸ“¦ Raw Response
         ↓
✨ Processed Response (StarterKit)
         ↓
πŸ“± Your App (Success/Error)

πŸ“Š Error Handling Matrix #

Scenario HTTP Code StarterKit Response User Experience
No Internet - "Connection failed" Retry prompt
Request Timeout - "Request timed out" Retry option
Unauthorized 401 "Login required" Redirect to login
Forbidden 403 "Access denied" Contact support
Not Found 404 "Resource not found" Navigate back
Server Error 500+ "Server unavailable" Try again later

πŸ”§ Response Wrapper #

All API responses use a consistent format:

ApiResponse<T> {
  βœ… data: T?              // Success data
  ❌ errorMessage: String? // Error description
  πŸ“Š isSuccess: bool       // Status indicator
}

πŸ› οΈ Utilities & Helpers #

StarterKit includes battle-tested utilities for common development tasks.

βœ… Form Validation #

Available Validators:

  • Validators.email - Email format validation
  • Validators.password - Strong password requirements
  • Validators.phone - Phone number validation
  • Validators.required - Required field validation
  • Validators.minLength - Minimum character count
  • Validators.maxLength - Maximum character count

🧭 Navigation Helpers #

Simple Navigation:

  • NavigationUtils.push() - Navigate to screen
  • NavigationUtils.pushReplacement() - Replace current screen
  • NavigationUtils.pushAndClearStack() - Clear navigation history

User Feedback:

  • NavigationUtils.showSnackBar() - Show success/error messages
  • NavigationUtils.showAlertDialog() - Show confirmation dialogs

πŸ”€ String Utilities #

Text Manipulation:

  • 'hello world'.capitalize() β†’ 'Hello world'
  • 'hello world'.toCamelCase() β†’ 'helloWorld'
  • 'HelloWorld'.toSnakeCase() β†’ 'hello_world'
  • 'Long text...'.truncate(10) β†’ 'Long te...'

Validation Helpers:

  • 'email@test.com'.isEmail() β†’ true
  • '+1234567890'.isPhoneNumber() β†’ true
  • 'https://example.com'.isUrl() β†’ true

πŸ“… Date Utilities #

Formatting:

  • DateTime.now().formatDate() β†’ 'Mar 15, 2024'
  • DateTime.now().formatRelativeTime() β†’ '2 hours ago'
  • Duration(hours: 2).formatDuration() β†’ '2h 0m'

πŸ“– Complete Examples #

πŸ” Authentication Example #

Generate authentication components:

dart run starter_kit add_screen LoginScreen
dart run starter_kit add_api AuthService  
dart run starter_kit add_model User

Simple login implementation:

// Minimal login screen example
class LoginScreen extends StatefulWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Login')),
      body: Column(
        children: [
          AppTextField(
            labelText: 'Email',
            validator: Validators.email,
          ),
          AppTextField(
            labelText: 'Password',
            obscureText: true,
            validator: Validators.required,
          ),
          PrimaryButton(
            text: 'Sign In',
            onPressed: () => _handleLogin(),
          ),
        ],
      ),
    );
  }
}

πŸ›’ E-commerce Example #

Generate e-commerce components:

dart run starter_kit add_screen ProductListScreen
dart run starter_kit add_api ProductService
dart run starter_kit add_model Product

🎯 Best Practices #

πŸ“‹ Project Organization #

βœ… DO: Use provided folder structure
βœ… DO: Follow naming conventions
βœ… DO: Keep layers separated
βœ… DO: Write tests for new features

❌ DON'T: Mix presentation with business logic
❌ DON'T: Skip validation on user inputs
❌ DON'T: Ignore error handling
❌ DON'T: Hard-code configuration values

πŸ”§ Development Workflow #

  1. πŸ—οΈ Setup - Run dart run starter_kit init
  2. πŸ“± Screens - Generate with add_screen
  3. 🌐 APIs - Create with add_api
  4. πŸ’Ύ Models - Define with add_model
  5. πŸ§ͺ Test - Verify with flutter test

βš™οΈ Configuration #

🌍 Environment Setup #

StarterKit supports multiple environments:

Environment Purpose Configuration
Development Local testing Debug logs, mock data
Staging QA testing Test APIs, monitoring
Production Live app Optimized, analytics

πŸ”§ Build Commands #

# Development
flutter run --dart-define=ENV=development

# Staging  
flutter build apk --dart-define=ENV=staging

# Production
flutter build apk --dart-define=ENV=production

πŸ§ͺ Testing Strategy #

StarterKit generates a comprehensive testing structure:

πŸ“Š Test Types #

πŸ”¬ UNIT TESTS
β”œβ”€β”€ Business logic validation
β”œβ”€β”€ Utility function testing  
└── Repository method testing

🎭 WIDGET TESTS  
β”œβ”€β”€ UI component behavior
β”œβ”€β”€ User interaction testing
└── Widget state management

πŸ”— INTEGRATION TESTS
β”œβ”€β”€ Complete user flows
β”œβ”€β”€ API integration testing
└── End-to-end scenarios

⚑ Running Tests #

flutter test                    # All tests
flutter test test/unit/         # Unit tests only
flutter test test/widget/       # Widget tests only
flutter test --coverage        # With coverage report

🎨 Customization #

🎨 Theme Customization #

Override default colors:

class MyAppColors extends AppColors {
  static const Color primary = Color(0xFF6366F1);  // Custom primary
  static const Color accent = Color(0xFF10B981);   // Custom accent
}

Custom typography:

class MyTextStyles extends AppTextStyles {
  static const TextStyle heroTitle = TextStyle(
    fontSize: 48,
    fontWeight: FontWeight.bold,
  );
}

πŸ”§ Component Customization #

Create custom components:

class CustomButton extends StatelessWidget {
  // Extend StarterKit components
  // Add your custom styling
}

🀝 Contributing #

🌟 How to Contribute #

We welcome contributions to make StarterKit even better!

πŸ› Bug Reports

  • Report issues with clear reproduction steps
  • Include Flutter/Dart version information
  • Provide minimal code examples

✨ Feature Requests

  • Suggest new CLI commands
  • Propose new utility functions
  • Request additional components

πŸ“ Documentation

  • Improve README sections
  • Add code examples
  • Create tutorials

πŸš€ Development Setup #

# 1. Fork and clone
git clone https://github.com/your-username/starter_kit.git

# 2. Install dependencies
flutter pub get

# 3. Run tests
flutter test

# 4. Test CLI
dart run bin/starter_kit.dart init

Made with ❀️ by ErrorXperts