namanh11611/flutter_mvvm_riverpod
MVVM 아키텍처와 Riverpod 상태 관리가 포함된 기본 Flutter 프로젝트입니다.
- Stars
- 342
- Forks
- 119
- 최근 푸시(UTC)
- 2026. 7. 20.
- 프로젝트 상태
- 활성
언어DartC++CMakeSwiftRubyCHTMLKotlinObjective-C
기술 주제
사용 중인 의존성
의존성 목록 51 개
- flutter
{"sdk":"flutter"} - cached_network_image
^3.4.1 - collection
^1.19.0 - connectivity_plus
^7.0.0 - cupertino_icons
^1.0.6 - dio
^5.9.0 - easy_localization
^3.0.7 - envied
^1.1.1 - equatable
^2.0.5 - firebase_analytics
^11.3.6 - firebase_core
^3.8.1 - firebase_crashlytics
^4.2.0 - flutter_riverpod
^2.6.1 - flutter_svg
^2.2.1 - freezed_annotation
^3.0.0 - go_router
^16.2.4 - google_fonts
^6.3.2 - google_sign_in
^6.3.0 - hugeicons
^0.0.11 - image_picker
^1.2.0 - in_app_purchase
^3.2.3 - in_app_update
^4.2.5 - json_annotation
^4.9.0 - lottie
^3.3.2 - ming_cute_icons
^0.0.7 - package_info_plus
^9.0.0 - path
^1.9.0 - path_provider
^2.1.5 - permission_handler
^12.0.1 - persistent_bottom_nav_bar
^6.2.1 - pinput
^5.0.2 - purchases_flutter
^9.9.2 - riverpod_annotation
^2.6.1 - shared_preferences
^2.5.3 - shimmer
^3.0.0 - sign_in_with_apple
^7.0.1 - sqflite
^2.4.2 - supabase_flutter
^2.10.3 - url_launcher
^6.3.2 - uuid
^4.4.0 - build_runner개발 의존성
^2.4.13 - change_app_package_name개발 의존성
^1.5.0 - custom_lint개발 의존성
^0.7.5 - envied_generator개발 의존성
^1.1.1 - flutter_lints개발 의존성
^6.0.0 - flutter_test개발 의존성
{"sdk":"flutter"} - freezed개발 의존성
^3.0.0 - json_serializable개발 의존성
^6.9.5 - riverpod_generator개발 의존성
^2.6.4 - riverpod_lint개발 의존성
^2.6.4 - test개발 의존성
^1.25.8
순위
원본 README
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
README 펼치기 / 접기
Flutter MVVM Riverpod Starter
A lightweight Flutter starter template implementing MVVM architecture with Riverpod state management and Supabase backend. Perfect for indie hackers and solo developers looking to quickly bootstrap their projects.
This project was inspired by the Flutter App Architecture Guide and the Starter Architecture for Flutter & Firebase.
🎯 Features
- MVVM Architecture: Clean separation of concerns
- Riverpod State Management: Efficient and type-safe state management solution
- Supabase Backend: Ready-to-use backend infrastructure
- Dark/Light Theme: Built-in theme support
- Localization: Multi-language support
- Authentication: Email & Social login ready
- Routing: Declarative routing with go_router
- In-App Purchases: RevenueCat integration for subscriptions and purchases
📚 Libraries & Tools
| Category | Library | Purpose |
|---|---|---|
| State Management | ||
flutter_riverpod |
Reactive state management | |
riverpod_annotation |
Code generation for Riverpod | |
| Backend & Auth | ||
supabase_flutter |
Backend as a service | |
google_sign_in |
Google authentication | |
sign_in_with_apple |
Apple authentication | |
| Navigation | ||
go_router |
Declarative routing | |
| Storage | ||
shared_preferences |
Local key-value storage | |
sqflite |
Local database | |
| Network | ||
dio |
HTTP client | |
connectivity_plus |
Network connectivity | |
| UI/UX | ||
google_fonts |
Custom fonts | |
flutter_svg |
SVG rendering | |
shimmer |
Loading animations | |
lottie |
Animation files | |
| Utilities | ||
easy_localization |
Internationalization | |
envied |
Environment variables | |
uuid |
Unique identifiers | |
| Analytics | ||
firebase_analytics |
Usage tracking | |
firebase_crashlytics |
Crash reporting | |
| Monetization | ||
in_app_purchase |
In-app purchases | |
purchases_flutter |
RevenueCat integration |
🏗 Project Structure
lib/
├── constants/ # App constants and configurations
├── environment/ # Environment variables and config files
├── extensions/ # Extension methods and helpers
├── features/ # Feature modules
│ ├── common/
│ ├── authentication/
│ ├── home/
│ ├── onboarding/
│ ├── profile/
│ ├── premium/
├── routing/ # Route configurations
├── theme/ # Theme configurations
└── utils/ # Utility functions
🚀 Getting Started
-
Clone this repository
git clone https://github.com/namanh11611/flutter_mvvm_riverpod.git -
Install dependencies
flutter pub get -
Generate localization files
dart run easy_localization:generate -f keys -o locale_keys.g.dart --source-dir assets/translations -
Generate code
dart run build_runner build --delete-conflicting-outputs -
Change the app information
- To change the app package name, run the following command:
dart run change_app_package_name:main com.new.package.name- To change the Android app name, open the
android/app/src/main/AndroidManifest.xmlfile, change theandroid:label="New App Name" - To change the iOS app name, open the
ios/Runner/Info.plistfile, change theCFBundleDisplayNametoNew App Name - To change the iOS bundle name, open the
ios/Runner/Info.plistfile, change theCFBundleNametonew_bundle_name
-
Run the app
flutter run
📱 Screenshots
| Light Hero | Light Profile | Dark Hero | Dark Profile |
|---|---|---|---|
| Hero Light | Profile Light | Hero Dark | Profile Dark |
🤝 Contributing
Contributions, issues, and feature requests are welcome!
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.