A modern, production-ready Flutter starter template with best practices, clean architecture, and essential features pre-configured. Perfect for quickly bootstrapping new Flutter projects with a solid foundation.
Check out the live demo: https://flutter-material3-starter.web.app
- Clean Architecture: Organized code structure with separation of concerns
- State Management: Riverpod 2.0 with code generation support
- Routing: GoRouter for declarative navigation
- Dependency Injection: Built-in with Riverpod
- Error Handling: Comprehensive error boundary and error widgets
- Responsive Design: Adaptive layouts for mobile, tablet, and desktop
- Theme System: Material 3 with light/dark mode support
- Internationalization: Multi-language support (EN, ES, FR)
- Animations: Smooth transitions with flutter_animate
- Loading States: Skeleton screens and shimmer effects
- Custom Components: Reusable UI components library
- Authentication: Login and registration flows
- Dashboard: Stats, charts, and activity feeds
- User Management: CRUD operations with data tables
- Settings: Theme and language preferences
- Onboarding: First-time user experience
- Error Pages: 404, error boundaries, and fallbacks
- Mock API Service: Development without backend
- Form Validation: Comprehensive form handling
- File Upload: Drag-and-drop file upload widget
- Search: Integrated search functionality
- Notifications: In-app notification system
- Flutter SDK (3.0 or higher)
- Dart SDK (3.0 or higher)
- IDE with Flutter support (VS Code, Android Studio, IntelliJ)
- Clone the repository
git clone https://github.com/momentous-developments/flutter-starter-app.git
cd flutter-starter-app
- Install dependencies
flutter pub get
- Run build runner (for code generation)
dart run build_runner build --delete-conflicting-outputs
- Run the app
flutter run
- β iOS
- β Android
- β Web
- β macOS
- β Windows
- β Linux
lib/
βββ core/ # Core functionality
β βββ constants/ # App constants
β βββ error/ # Error handling
β βββ models/ # Core data models
β βββ providers/ # Global providers
β βββ router/ # Navigation setup
β βββ services/ # Core services
β βββ theme/ # Theme configuration
βββ features/ # Feature modules
β βββ auth/ # Authentication
β βββ dashboard/ # Dashboard
β βββ forms/ # Forms examples
β βββ home/ # Home & showcases
β βββ notifications/ # Notifications
β βββ onboarding/ # Onboarding flow
β βββ settings/ # App settings
β βββ users/ # User management
βββ l10n/ # Localization files
βββ shared/ # Shared components
β βββ providers/ # Shared providers
β βββ widgets/ # Reusable widgets
βββ main.dart # App entry point
Edit lib/core/theme/app_theme.dart
to customize:
- Color schemes
- Typography
- Component themes
- Light/dark mode settings
- Create a new folder in
lib/features/
- Follow the existing structure:
data/
- Repositories and data sourcespresentation/
- UI componentspages/
- Screen widgetswidgets/
- Feature-specific widgetsproviders/
- Feature state management
- Add translations to
lib/l10n/app_*.arb
files - Run
flutter gen-l10n
to generate code
# Run all tests
flutter test
# Run with coverage
flutter test --coverage
# Generate coverage report
genhtml coverage/lcov.info -o coverage/html
flutter build web --release
flutter build apk --release
# or
flutter build appbundle --release
flutter build ios --release
flutter build macos --release
flutter build windows --release
flutter build linux --release
Create .env
files for different environments:
.env.development
.env.staging
.env.production
Update lib/core/services/mock_api_service.dart
with your API endpoints.
- State Management: flutter_riverpod, riverpod_annotation
- Navigation: go_router
- UI/UX: flutter_animate, flex_color_scheme
- Utilities: intl, shared_preferences, cached_network_image
- Development: freezed, json_serializable, build_runner
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter team for the amazing framework
- Riverpod for powerful state management
- The Flutter community for inspiration and packages