A production-ready Flutter boilerplate with Riverpod state management, following clean architecture principles and modern development practices.
- Flutter SDK 3.5.4+
- Dart 3.0+
- FVM: https://fvm.app/documentation/getting-started
make setup
make run-dev
Widget → Controller (@riverpod) → Repository → DataSource → API/Storage
↑ ↓ ↑ ↑ ↑
UI State Local+Remote Dio HTTP SharedPrefs
(AsyncValue) (offline-first) (interceptors)
lib/
├── core/ # Core infrastructure
│ ├── config/ # App configuration
│ │ ├── router/ # GoRouter setup
│ │ └── localization/ # i18n configuration
│ ├── services/ # Core services
│ │ ├── api_client.dart # HTTP client
│ │ ├── storage_service.dart
│ │ └── interceptors/ # Request interceptors
│ ├── models/ # Shared models
│ ├── exceptions/ # Custom exceptions
│ └── extensions/ # Dart extensions
├── features/ # Feature modules
│ ├── example/ # Example CRUD feature
│ │ ├── data/ # Data layer
│ │ │ ├── models/ # Feature models
│ │ │ ├── datasources/ # Local & remote sources
│ │ │ └── repositories/ # Repository implementation
│ │ └── presentation/ # UI layer
│ │ ├── pages/ # Screen widgets
│ │ ├── controllers/ # Riverpod controllers
│ │ └── widgets/ # Feature widgets
│ └── home/ # Home feature
└── shared/ # Shared UI components
├── widgets/ # Reusable widgets
├── theme/ # App theming
└── strings/ # Shared translations