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!" π«
- 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)
# 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
# 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
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:
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
This project uses a hybrid architecture combining aspects of MVC and Provider patterns for state management.
- Screens: UI components and screen logic
- Widgets: Reusable UI components
- Each screen can have its own widgets folder
- 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
- APIs (
apis/
): API endpoints and network calls - Models (
model/
): Data models and serialization - Services (
services/
): Business logic and services
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
- π Authentication ready
- π Dark/Light theme
- π API integration setup
- Responsive design
- π State management
- π Navigation
- Fork it
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push t the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
MIT Licens - feel free to copy, steal, modify, or frame it on your wall!
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 βοΈ