A production-ready Flutter starter template designed for building scalable mobile applications with industry best practices and a comprehensive toolset.
- ๐ Production-Ready: Built with scalability and maintainability in mind
- ๐ฑ Cross-Platform: Optimized for both Android and iOS platforms
- ๐ Type-Safe: Leverages Dart's strong typing with code generation
- ๐ State Management: Integrated Hooks Riverpod for efficient reactive programming
- ๐ Networking: Preconfigured Dio API clients with proper error handling
- ๐ Internationalization: Type-safe i18n solution with Slang
- ๐งช Testable: Structure designed for easy unit and widget testing
- ๐ง Developer Experience: Extensive tooling and utilities included
- Hooks Riverpod: Complete integration with code generation support via Riverpod Generator
- Flutter Hooks: For reusable stateful logic
- Custom Query System: React-Query inspired hooks system with useQuery, useInfiniteQuery, useAsyncTask...
- Provider Observers: Built-in debugging tools for state changes
- Go Router: Type-safe routing with deep linking support
- Custom Route Extensions:
- Fixes for common GoRouter issues
- Enhanced RoutePage implementation with consistent navigation behavior
- Router State Provider: For reactive routing state access
- Dio: Configured HTTP client with interceptors
- Repository Pattern: Clean data layer organization
- Centralized Error Handling: Via custom ApiService implementation
- Mock API Clients: Testing-friendly API infrastructure with repository pattern
- Flutter Secure Storage: Encrypted storage for sensitive data
- Shared Preferences: Simple key-value storage wrapper
- Type-safe Storage Access: Strongly typed providers for storage values
- Advanced Scaffolding System:
- Root scaffold with config provider for separation of concerns
- Page scaffold with widget delegation and useful common fixes and features
- Responsive Design: Flutter ScreenUtil integration for adaptive interfaces
- Theme System: Type-safe theme with Theme Tailor
- SVG Support: Flutter SVG for vector graphics rendering
- Form Management: Reactive Forms with validation
- Common UI Components:
- Dialog and alert system with standardized API
- Snackbar and toast messages with consistent styling
- Slang: For strongly-typed translations
- Locale Management: Dynamic locale switching with persistence
- Custom Lint Rules: Via Flutter Lints, Custom Lint, and Riverpod Lint
- Conventional Commits: Enforced via Commitlint CLI
- Git Hooks: Pre-commit and pre-push checks via Husky
- Flutter Gen: Asset code generation for type-safe asset access
- Launch Icons: Flutter Launcher Icons for customizing app icons
- Native Splash: Flutter Native Splash for splash screen configuration
- App Metadata: Package name and app name management via Change App Package Name and Rename
- Change the app name:
flutter pub run rename --appname "YourAppName"- Change the package name/bundle id:
flutter pub run change_app_package_name:main com.company.name && flutter pub run rename --bundleId com.company.name- Configure splash screen in
flutter_native_splash.yaml:
flutter_native_splash:
# ...
color: "#ffffff"
background_image: "assets/background.png"
image: assets/splash.png
# ... other configurations- Generate splash screens:
dart run flutter_native_splash:create- Configure app icons in
flutter_launchers_icons.yaml:
flutter_icons:
android: "launcher_icon"
image_path: "assets/icons/launcher_icon.png"
min_sdk_android: 21
ios: true
remove_alpha_ios: true
# ... other configurations- Generate app icons:
dart run flutter_launcher_icons๐ assets
๐ icons # Vector and raster icon assets
๐ images # Image assets
๐ i18n
๐ {locale} # Localized resources by language
๐ {namespace}.json # Translation resources by feature
๐ lib
๐ constants # Application-wide constants
๐ features # Feature modules
๐ {feature} # e.g., auth, home, settings
๐ data
๐ models # Feature-specific data models
๐ {feature}_api_client.dart # API endpoints for the feature
๐ {entity}_provider.dart # State providers for the feature
๐ screens # UI screens within the feature
๐ {screen_name}_screen.dart
๐ widgets # Feature-specific UI components
๐ {widget_name}.dart
๐ gen # Generated files (assets, etc.)
๐ i18n # Internationalization
๐ locale_provider.dart # Locale state management
๐ services # Core application services
๐ api # API infrastructure
๐ api_client.dart # Base API client
๐ api_service.dart # API service with error handling
๐ mocked_api_client.dart # Testing helpers
๐ navigation # Routing system
๐ router.dart # Application router configuration
๐ route_page.dart # Custom route page implementation
๐ pop_notifier.dart # Navigation state refresh fixes
๐ storage # Data persistence
๐ secure_storage.dart # Encrypted storage service
๐ prefs.dart # Key-value storage service
๐ theme # App theming
๐ app_theme.dart # Theme definitions
๐ utils # Utility functions and extensions
๐ data
๐ hooks # Custom hook implementations
๐ use_query.dart # React-Query inspired data fetching
๐ use_async_task.dart # Async operation management
๐ forms # Form helpers
๐ providers # Provider utilities
๐ extensions.dart # Provider extension methods
๐ router # Router utilities
๐ redirects.dart # Navigation guards and redirects
๐ strings # String manipulation
๐ widgets # Shared UI components
๐ scaffold # Advanced scaffolding system
๐ root_scaffold.dart # Base root scaffold
๐ page_scaffold.dart # Smart page scaffold
๐ root_scaffold_config.dart # Configuration system
๐ alerts.dart # Alert dialog system
๐ snackbars.dart # Notification system
๐ svg.dart # SVG rendering utilities
๐ main.dart # Application entry point
Generate code for all code-generating packages:
dart run build_runner buildOverwrite conflicting outputs:
dart run build_runner build --delete-conflicting-outputsWatch for changes and regenerate:
dart run build_runner watchGenerate translation files:
dart run slangAnalyze translations:
dart run slang analyzeGenerate launcher icons:
dart run flutter_launcher_iconsGenerate splash screens:
dart run flutter_native_splash:createRestore default splash screen:
dart run flutter_native_splash:remove- Flutter Documentation - Official Flutter docs
- Dart Documentation - Official Dart guides
- Riverpod Documentation - Official Riverpod docs
- Flutter Hooks - Reuse stateful logic
- Slang - Type-safe internationalization
- Flutter ScreenUtil - Responsive design
- Google Fonts - Typography
- Flutter SVG - SVG rendering
- Reactive Forms - Form management
- Flutter Animate - Animation library