Skip to content

🌟 Stop reinventing the wheel! Start your next Flutter project at Mach speed! πŸš„ Your ultimate Flutter launchpad packed with Provider state management πŸ”„, authentication πŸ”, theming 🎨, and API integration 🌐. Skip the setup, start coding! Because life's too short to start from scratch! 🎯

Notifications You must be signed in to change notification settings

bibektimilsina00/Flutter-Starter-Kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

Repository files navigation

πŸš€ Flutter Starter Kit

Because why start from scratch when you can start with awesomeness? 🎯

A carefully crafted Flutter starter template that save you from the boring setup stuff. You know, the stuff that makes you go "ugh, not again!" 😫

πŸ›  Prerequisites

  • Flutter SDK (we're rocking version 3.27.1 🎸)
  • FVM (Flutter Version Management) - because we're fanc like that
  • A cup of coffee β˜•οΈ (or tea πŸ«–, we don't judge)

🚦 Getting Started

Using FV (Recommended)

# Clone this bad boy
git clone https://github.com/yourusername/flutter_starter_kit.git
cd flutter_starter_kit
fvm use 3.27.1
fvm flutter pub get

Without FVM

# Check your Flutter version
flutter --version

# If not on 3.27.1, upgrad Flutter
flutter upgrade

# Clone and setup
git clone https://github.com/yourusername/flutter_starter_kit.git
cd flutter_starter_kit
flutter pub get

πŸ— Projec Structure

lib/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ api_client/      # API communication wizardry
β”‚   β”œβ”€β”€ config/          # App configuration spells
β”‚   β”œβ”€ const/          # Constants (the boring but important stuff)
β”‚   β”œβ”€β”€ enum/           # Enums (because we're organized!)
β”‚   β”œβ”€β”€ providers/       State management magic
β”‚   β”œβ”€β”€ routes/         # Navigation compass
β”‚   β”œβ”€β”€ services/       # Business logic kingdom
β”‚   └── utils/           Utility belt (Batman approved)
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ apis/           # API endpoints
β”‚   β”œβ”€β”€ model/          # Data models (keepin it clean)
β”‚   β”œβ”€β”€ notifiers/      # State notifications
β”‚   └── services/       # Core services
└── presentation/
    β”œβ”€β”€ screens/        # UI screen
    └── widgets/        # Reusable widgets

πŸ“¦ Dependencies

dependencies:
  dio: ^5.7.0 # HTTP ninja
  provider: ^6.1.2 # State managemen guru
  go_router: ^14.6.2 # Navigation master
  connectivity_plus: ^6.1.1 # Internet detective
  shared_preferences: ^2.3.5 # Local data hoarder
  logger: ^2.5.0 # Debu whisperer
  flex_color_scheme: ^8.1.0 # Making things pretty
  json_annotation: ^4.9.0 # JSON wizard
  equatable: ^2.0.7 # Equality made easy

πŸ› Architecture

This project uses a hybrid architecture combining aspects of MVC and Provider patterns for state management.

πŸ“± Application Layers

1. Presentation Layer (lib/presentation/)

  • Screens: UI components and screen logic
  • Widgets: Reusable UI components
  • Each screen can have its own widgets folder

2. State Management (lib/core/notifiers/)

  • Notifiers: Provider state management classes
  • States: Immutable state classes

Example:

core/notifiers/
β”œβ”€β”€ auth/
β”‚   β”œβ”€β”€ auth_notifier.dart    # Auth state logic
β”‚   └── auth_state.dart       # Auth state model
└── theme/
    β”œβ”€β”€ theme_notifier.dart   # Theme state logic
    └── theme_state.dart      # Theme state model

3. Data Layer (lib/core/)

  • APIs (apis/): API endpoints and network calls
  • Models (model/): Data models and serialization
  • Services (services/): Business logic and services

πŸ”„ State Management Flow

UI (Screen) β†’ Notifier β†’ State β†’ UI Update
    ↑          ↓
    └── API Services

Flow Details:

  • Screens dispatch actions to Notifiers
  • Notifiers handle business logic and update States
  • States are immutable and represent UI data
  • Services handle external data operations

🎨 Features

  • πŸ” Authentication ready
  • πŸŒ“ Dark/Light theme
  • 🌐 API integration setup
  • Responsive design
  • πŸ”„ State management
  • πŸ“ Navigation

🀝 Contributing

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

πŸ“ License

MIT Licens - feel free to copy, steal, modify, or frame it on your wall!

πŸŽ‰ Special Thanks

Thanks to coffe β˜•οΈ, Stack Overflow πŸš€, and that one YouTube tutorial that finally made sense.

P.S. If this starter kit saved you hours of setup, consider:

  • Giving the repo a ⭐️
  • Sharing it with other Flutter devs πŸ«‚
  • Contributing back to the project 🀝

Made with ❀️ and probably too much β˜•οΈ

About

🌟 Stop reinventing the wheel! Start your next Flutter project at Mach speed! πŸš„ Your ultimate Flutter launchpad packed with Provider state management πŸ”„, authentication πŸ”, theming 🎨, and API integration 🌐. Skip the setup, start coding! Because life's too short to start from scratch! 🎯

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published