Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Androidproject | 5,116 | 6 months ago | 1 | apache-2.0 | Java | |||||
Android 技术中台,但愿人长久,搬砖不再有 | ||||||||||
Flutter Architecture Blueprints | 1,308 | a year ago | 30 | mit | Dart | |||||
Flutter Architecture Blueprints is a project that introduces MVVM architecture and project structure approaches to developing Flutter apps. | ||||||||||
Android Learning Resources | 1,289 | 3 years ago | 2 | |||||||
Android学习资源网站索引大全 | ||||||||||
Androidproject Kotlin | 677 | 5 months ago | 3 | apache-2.0 | Kotlin | |||||
Android 技术中台 Kotlin 版本,但愿人长久,搬砖不再有 | ||||||||||
Jetpack_github | 355 | a year ago | mit | Roff | ||||||
基于Kotlin + Jetpack全家桶 + Coroutines(协程) + Flutter等架构实现的一款精简版Github客户端项目,望与广大小伙伴一起成长,欢迎start or fork! | ||||||||||
Mvvm_flutter | 261 | 3 days ago | 1 | other | Dart | |||||
Build MVVM App for Android and IOS with Flutter | ||||||||||
Flawless Ios | 222 | 3 years ago | ||||||||
Awesome iOS guides from the community, shared on Flawless iOS Medium blog 👉 | ||||||||||
Mood Example | 176 | 10 days ago | bsd-3-clause | Dart | ||||||
🐦 Flutter 3 心情记录 样例工程 - 国际化 i18n、uni 小程序、深色模式、多主题、本地数据管理、路由管理、状态管理、无障碍(Semantics)、异步 FFI、集成测试、图表统计、Excel 导入导出、游戏…… | ||||||||||
Flutter Architecture | 112 | 3 years ago | 1 | Dart | ||||||
Clean Architecture with MVVM for Flutter using Get_It, State management, SQFlite, Dio, StorageHelper, ConnectionHelper, custom widgets and more | ||||||||||
Flutter Elementary | 107 | 3 days ago | 20 | August 14, 2022 | 2 | mit | Dart | |||
This is a home to a family of Elementary library packages. |
* We want to determine what types of database that we use for storage (might want to change it later on)
* We want to adhere to SOLID principles since we are using OOP for this project.
* We want to ensure that UI layers do not care what is going on at the data layer at all.
* We might want to separate each layer into different packages.
* Widgets
* Cubit
* Cubit only manages UI state based on business logic
* Entities (or models that UI needs)
* Usecases (user stories)
* Repositories interface
* Typically one function, but can be more if functions are related.
* Remember, one class has one responsibility only.
* source
* remotes (API)
* locals (Database)
* Repositories (Implementation from Domain layer)
data model
common for domain layer and data layer)* models
* request
* response
We build this class working separately and not following logics of Domain layer
. However, Repositories
will still implement from Domain layer
, but the Domain layer
will follow each function, and the Data layer
will follow the cluster of data defined on the server.
For example: Domain layer
has defined 2 layers of Login and Register features, but these two features are related to the API User cluster on the server, so in the Data layer
, there will only be one Repo which is user and that Repo will implement 2 layers Login and Register of the Domain layer
.
Dependency Injection
is a great design pattern that allows us to eliminate rigid dependencies between elements and it makes the application more flexible, easy to expand scales and maintain.
In the project we use Plugin get_it
and injectable
to implement DI and we have also defined classes so you can easily implement DI
in the DI layer
.
The project has predefined Named routes RouteDefine + manifest
* All routes must extend this class.
* When extending, you will have to override func "initRoute", here you will define your routes.
* A feature may have multiple routes with different input arguments.
* Make sure that the ID of each route in your project is unique.
lib/manifest.dart
* To add a route to the project you just need to declare in the func "generateRoute". Each route will be provided with a func "build", you must call it in the func "generateRoute" of "manifest" to register.
* Project can use retrofit to work with the alternative network for http.
* Retrofit is pre-installed in the "ApiModule.dart". You can customize it here
* All interceptors are defined in the /configuration/lib/network/interceptor/* class
* To work with Certificate, please refer to the "/configuration/lib/network/http_overrides.dart" class, with the default the project accept badCertificate
* All flavor environments are installed in the "/configuration/lib/environment/buid_config.dart" class.
* Basically we are defining 4 development environments: development, staging, preprod and release.
* Run App
You can run the app using the commands
## development: flutter run -t lib/main.dart --debug --flavor beta
## staging: flutter run -t lib/main.dart --debug --flavor prod
You can build the app using the commands
for Android
## development: flutter build apk -t lib/main.dart --flavor beta
## staging: flutter build apk -t lib/main.dart --flavor prod
for IOS
## development flutter build ios -t lib/main.dart --flavor beta
## staging: flutter build ios -t lib/main.dart --flavor prod
* All resources (images, fonts, videos, ...) must be placed in the assets class
* Before using them, please declare the path in utility class and the suffix of the class to be type_provide (image_provide.dart)
Get dependencies and generate necessary files.
npm run init
We'll handle the generation of required files for 🚀 your onboarding!
This project is implementing json_serializable. It use build_runner to generate files. If you make a change to these files, you need to re-run the generator using build_runner:
flutter pub run build_runner build
generator using build_runner and remove conflict file :
npm run generate
npm run setup
and you should be done. More details below.npm install
npx lefthook install
to finish up installation.Using this library to handle multi-languages. Follow this guide to understand and config languages files
VSC, AS, IJ users need to install the plugins from the market.
vs-code: https://marketplace.visualstudio.com/items?itemName=localizely.flutter-intl
intelliJ / android studio: https://plugins.jetbrains.com/plugin/13666-flutter-intl
others/CLI:
flutter pub global activate intl_utils
flutter pub global run intl_utils:generate
Action
arb File
Add Locale
/ Remove Locale
Current available locale is en, en
Link library : https://pub.dev/packages/intl_utils