wasabeef / Flutter Architecture Blueprints
Licence: mit
Flutter Architecture Blueprints is a project that introduces MVVM architecture and project structure approaches to developing Flutter apps.
Stars: ✭ 707
Programming Languages
dart
5743 projects
Projects that are alternatives of or similar to Flutter Architecture Blueprints
Figma Export
Command line utility to export colors, typography, icons and images from Figma to Xcode / Android Studio project
Stars: ✭ 235 (-66.76%)
Mutual labels: xcode, android-studio
Ios Clean Architecture Mvvm
Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI
Stars: ✭ 753 (+6.51%)
Mutual labels: xcode, architecture
Notzz App
📝 A Simple Note-Taking App built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, State Flow, Hilt-Dependency Injection, Jetpack DataStore, Architecture Components, MVVM, Room, Material Design Components).
Stars: ✭ 158 (-77.65%)
Mutual labels: android-studio, architecture
Vipera
Project is now called Swift template, check the link ➡️
Stars: ✭ 57 (-91.94%)
Mutual labels: xcode, architecture
Swiftdux
Predictable state management for SwiftUI applications.
Stars: ✭ 130 (-81.61%)
Mutual labels: xcode, architecture
Ios Good Practices
Good ideas for iOS development, by Futurice developers.
Stars: ✭ 10,417 (+1373.41%)
Mutual labels: xcode, architecture
Quiz App
A repository reflecting the progress made on the "How to Build iOS Apps with Swift, TDD & Clean Architecture" YouTube series, by Caio & Mike.
Stars: ✭ 230 (-67.47%)
Mutual labels: xcode, architecture
Xcodes
The best command-line tool to install and switch between multiple versions of Xcode.
Stars: ✭ 653 (-7.64%)
Mutual labels: xcode
Architectureplaybook
The Open Architecture Playbook. Use it to create better and faster (IT)Architectures. OSS Tools, templates and more for solving IT problems using real open architecture tools that work!
Stars: ✭ 652 (-7.78%)
Mutual labels: architecture
System design
Preparation links and resources for system design questions
Stars: ✭ 7,170 (+914.14%)
Mutual labels: architecture
Awesome Swift Korean Lecture
훌륭한 Swift 세션 동영상(강좌), 한글 자막있는 혹은 한국어 강의 정보 링크 모음 (Awesome Swift Korean lecture information)
Stars: ✭ 649 (-8.2%)
Mutual labels: xcode
Teaching App Dev Swift
DEPRECATED. Instructor lesson plans that accompany Xcode projects, for guiding in-class experiential learning.
Stars: ✭ 699 (-1.13%)
Mutual labels: xcode
Android Studio Tips By Philippe Breault
Every Android Studio Tip posted by Phillipe Breault
Stars: ✭ 652 (-7.78%)
Mutual labels: android-studio
Whats New In Swift 5 0
An Xcode playground that demonstrates the new features introduced in Swift 5.0.
Stars: ✭ 703 (-0.57%)
Mutual labels: xcode
Xcmetrics
XCMetrics is the easiest way to collect Xcode build metrics and improve developer productivity.
Stars: ✭ 695 (-1.7%)
Mutual labels: xcode
Flutter Architecture Blueprints
Flutter Architecture Blueprints is a project that introduces MVVM architecture and project structure approaches to developing Flutter apps.
Documentation
Requirements
Environment
iOS
- iOS 13+
Android
- Android 5.1+
- minSdkVersion 22
- targetSdkVersion 30
App architecture
- Base on MVVM + Repository
Code Style
Assets, Fonts
If added some assets or fonts
- Use FlutterGen
Models
If added some models for api results
- Use Freezed
Localizations
If added some localizations (i.g. edited *.arb)
Git Commit message style
Code collections
Project settings
Working status | Category | Description | Codes |
---|---|---|---|
✅ | Dart | Dart version | pubspec.yaml |
✅ | FVM | Flutter Version Management | .fvm/fvm_config.json |
✅ | 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 |
✅ | Firebase | [Android] Switching between Development and Production google-service.json using flavors | development and production |
✅ | Firebase | [iOS] Switching between Development and Production GoogleService-Info.plist using run script | copy_google_service.sh, development and production |
✅ | Firebase Auth | SignIn, SignOut | auth_data_source_impl.dart |
✅ | Firebase Crashlytics | Crash Reports | main.dart |
✅ | Firebase Performance | Network monitoring with dio_firebase_performance | app_dio.dart |
Architecture
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 |
✅ | Data | Using Freezed | model classes |
✅ | Persist Data | Using shared_preferences | theme_data_source_impl.dart |
✅ | Constants | Define constants and route names | constants.dart |
✅ | Localization | Switching between two languages with Intl package | *.arb |
✅ | Error handling | Using Result pattern - A value that represents either a success or a failure, including an associated value in each case. | result.dart, news_repository_impl.dart, home_page.dart |
UI
Working status | Category | Description | Codes |
---|---|---|---|
✅ | Theme | Dynamically Switch between light and dark themes | app_theme.dart |
✅ | Font | Using Google font | app_theme.dart |
✅ | Transition | Simple animation between screens using Hero | article_item.dart, detail_page.dart |
Testing
Working status | Category | Description | Codes |
---|---|---|---|
✅ | API(Repositories) | Using mocktail | view_mode_test.dart, app_theme_test.dart |
✅️ | UI | Using mocktail | widget_test.dart |
✅ | Coverage reports | Send the report to Codecov on CI | codecov.yml, codecov.sh, flutte-ci.yml |
CI
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 |
Getting Started
Setup
$ make setup
$ export PATH="$PATH":"$HOME/.pub-cache/bin" # Add your run-commands (.zshrc, .bashrc, etc)
$ make dependencies
$ make build-runner
And set your IDE for FVM path.
How to add assets(images..)
- Add assets
- Run FlutterGen
How to add localizations
- Edit *.arb files.
- Run generate the
flutter pub get
Make .apk and .ipa file
Android
$ make build-android-dev
$ make build-android-prd
iOS
$ make build-ios-dev
$ make build-ios-prd
Run app
$ make run-dev
$ make run-prd
Special Thanks.
Contributors
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].