Fork this project then start you project with a lot of stuck prepare
Base project made with much ❤️ . Contains CRUD, patterns, and much more!
Report bug
·
Request feature
- Prerequisites
- How to Run
- Using This Template
- Code Conventions
- Dependencies
- Code Structure
- Navigation Stack
- Wiki
- Screenshots
- Flutter:
>=3.35.3 - Firebase Projects:
-
Clone the repo:
git clone https://github.com/khanhuitse05/flutter-boilerplate.git
-
Install dependencies:
flutter pub get
-
Generate code:
flutter packages pub run build_runner build
-
Run the app (Staging):
flutter run --flavor staging --target lib/main_staging.dart
-
Run the app (Production):
flutter run --flavor production --target lib/main_production.dart
-
Clone this repo:
git clone https://github.com/khanhuitse05/flutter-boilerplate.git
-
Customize the package name:
sudo sh ./customizer.sh your.package.name
✅ This will:
- Remove the existing git history
- Update the README
- Change your bundle ID
-
Update your Firebase config:
- Android
android/app/src/staging/google-services.jsonandroid/app/src/production/google-services.json
- iOS
ios/config/GoogleService-Info.plist(staging & production)
- Update:
firebase_options_stg.dartfirebase_options_prod.dartREVERSED_CLIENT_IDinInfo.plist
- Android
-
Regenerate Firebase options:
flutterfire config --project={YOUR_FIREBASE_PROJECT_ID} --out={PATH_TO_SAVE/firebase_options.dart} --ios-bundle-id={BUNDLE_ID_APP} --android-app-id={APP_ID} -
Run the app: Follow steps here
Best Practices:
- Modularize widgets to be as independent and reusable as possible.
- Follow naming conventions:
- Models: start with
M→MUser,MProduct,MGroup - Common Widgets: start with
X→XButton,XText,XAppBar(stored inlib/widgets/) - App Constants/Services: start with
App→AppStyles,AppColor,AppRouter,AppCoordinator,UserPrefs
- Models: start with
- logger – Pretty logging
- url_launcher – Launch URLs
- auto_route – Router generator
- get_it – Service Locator
- intl – i18n, formatting
- shared_preferences – Key-value storage
- package_info_plus – App package info
- device_info_plus – Device info
- permission_handler – Permission management
- http – HTTP requests
- FlutterFire – Auth, Analytics, Crashlytics, Storage, Firestore
- flutter_bloc – Recommended BLoC pattern Docs
- flutter_gen – Strongly typed assets, fonts, colors
- localization – Simplified translations
- shimmer – Loading shimmer effect
- flutter_html
- webview_flutter
flutter-app/
|- android
|- ios
|- web
|- lib
|- modules
|- test
lib/
|- packages/
|- src/
|- data/
|- services/
|- feature/
|- dashboard/
|- widget/
|- controller/
|- dashboard_screen.dart
|- home/
|- login/
|- plugins/
|- routing/
|- widgets/
|- button/
|- image/
|- view/
|- main.dart
|- modules/
Check out the Wiki for more detailed guides.
| Account | Profile | Login |
|---|---|---|
![]() |
![]() |
![]() |




