A lightweight Flutter starter template implementing Clean architecture with Riverpod state management
- Architecture: Clean separation of concerns
- Riverpod State Management: Efficient and type-safe state management solution
- Dark/Light Theme: Built-in theme support
- Localization: Multi-language support
- Routing: Declarative routing with go_router
Category | Package | Purpose |
---|---|---|
State Management | flutter_riverpod | Reactive state management |
Navigation | go_router | Declarative routing |
Local storage | shared_preferences | Local key-value storage |
Network | dio | HTTP client |
Localization | easy_localization | Internationalization |
Service locator | get_it | Allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere |
Utilities | ||
build_runner | A build system for Dart code generation and modular compilation | |
freezed | Code generation for immutable classes | |
adaptive_dialog | Show alert dialog or modal action sheet adaptively according to platform. | |
cached_network_image | Load and cache network images | |
flutter_local_notifications | Displaying and scheduling local notifications | |
flutter_gen | Generator for your assets, fonts, colors, |
lib/
├── data/ # Contains classes for handling requests, responses, and clients to fetch data from network or local storage.
├── service/ # Contains common services used across the application.
├── presentation/ # Contains feature modules for the app.
│ ├── common/ # Shared components and logic used throughout the app.
│ ├── router/ # Manages navigation between screens in the app.
│ ├── theme/ # Contains settings for the app's appearance and theme.
│ ├── ui/ # Screens and widgets specific to the user interface.
└── service/ # Contains utility functions for common tasks.
(fvm) dart run tool/setup.dart
(fvm) flutter clean
(fvm) flutter pub get
(fvm) dart run easy_localization:generate -S assets/translations & (fvm) dart run easy_localization:generate -S assets/translations -f keys -o locale_keys.g.dart
(fvm) dart run build_runner build -d
(fvm) flutter test
(fvm) flutter test --coverage && genhtml coverage/lcov.info -o coverage/html && open coverage/html/index.html