Flutter Architecture Blueprints is a project that introduces MVVM architecture and project structure approaches to developing Flutter apps.
iOS
- iOS 13+
- compatibilityVersion "Xcode 9.3"
Android
- Android 5.1+
- minSdkVersion 22
- targetSdkVersion 30
Working status | Category | Description | Codes |
---|---|---|---|
✅ | Dart | Dart version | pubspec.yaml |
✅ | Dart | Switching between Development and Production environment | constants.dart, runConfigurations, Makefile |
✅ | Dart | Lint / Analyze | analysis_options.yaml |
✅ | Android | Kotlin version | build.gradle |
✅ | Android | Apk attributes | build.gradle (compileSdkVersion, applicationId, minSdkVersion, targetSdkVersion) |
✅ | Android | Switching between Development and Production environment | build.gradle, Flavor dirs, signingConfigs |
✅ | iOS | Xcode version | compatibilityVersion |
✅ | iOS | Podfile | Podfile |
✅ | iOS | Switching between Development and Production environment | xcconfig, Podfile |
Working status | Category | Description | Codes |
---|---|---|---|
✅ | Base | Using Riverpod + Hooks + ChangeNotifier + MVVM | home_page.dart, home_view_model.dart, news_repository.dart, news_data_source.dart |
✅ | Networking | Using dio | app_dio.dart, news_data_source_impl.dart |
✅ | Caching | Using dio_http_cache | news_data_source_impl.dart |
✅ | Persist Data | Using shared_preferences | theme_data_source_impl.dart |
✅ | Constants | Define constants and route names | constants.dart |
✅ | Localization | Switching between two languages | message.dart, context.localized |
🤔 | Error handling | Using ChangeNotifier | change_notifier_with_error_handle.dart, error_notifier.dart, home_view_model.dart |
Working status | Category | Description | Codes |
---|---|---|---|
✅ | Theme | Dynamically Switch between light and dark themes | app_theme.dart, app.dart |
✅ | Font | Using Google font | app_theme.dart |
✅ | Transition | Simple animation between screens using Hero | article_item.dart, detail_page.dart |
Working status | Category | Description | Codes |
---|---|---|---|
✅ | API(Repositories) | If needed, we'll use Mockito | view_mode_test.dart, app_theme_test.dart |
☑️ | UI | If needed, we'll use Mockito | widget_test.dart |
✅ | Coverage reports | Send the report to Codecov on CI | codecov.yml, codecov.sh, flutte-ci.yml |
Working status | Category | Description | Codes |
---|---|---|---|
✅ | Git | Git hooks for format and analyze | package.json, Makefile |
✅ | Git | .gitignore settings | .gitignore |
✅ | Build | Using Codemagic | codemagic.yaml |
✅ | Build | Using Bitrise | bitrise.yml |
✅ | Build | Using Github Actions | .github/workflows/flutter-ci.yml |
$ make setup
$ make build-runner
Android
$ make build-android-dev
$ make build-android-prd
iOS
$ make build-ios-dev
$ make build-ios-prd
$ make run-dev
$ make run-prd