Tutorials for this project
-
Vietnamese: https://medium.com/@NALSengineering/list/flutter-xay-dung-base-project-hoan-hao-tu-a-en-a-c240f845f660
Flutter Bloc - Clean Architecture
Flutter project using clean architecture and bloc pattern.
Features
-
Architecture: Clean Architecture
-
State management: flutter_bloc
-
Navigation: auto_route
-
DI: get_it, injectable
-
REST API: dio
-
GraphQL: artemis, graphql_flutter
-
Database: objectbox
-
Shared Preferences: encrypted_shared_preferences
-
Data class: freezed
-
Lint: dart_code_metrics, flutter_lints
-
CI/CD: Github Actions, Bitbucket Pipelines
-
Paging: infinite_scroll_pagination
-
Assets generator: flutter_gen_runner, flutter_launcher_icons, flutter_native_splash
-
Shimmer loading effect
Shimmer-loading-effect.mp4
- Load more
Load-more.mp4
- Retry when error
Retry-when-error.mp4
- Nested navigation
Nested-Navigation.mp4
- Dark mode
Dark-Mode.mp4
- Change App Language
Change-App-Language.mp4
Getting Started
Requirements
- Dart: 2.18.5
- Flutter SDK: 3.7.1
- Melos: 2.8.0
- CocoaPods: 1.11.2
Install
-
WARN: If you already installed
melos
andlefthook
, you could omit this step. -
Install melos:
- Run
dart pub global activate melos 2.8.0
- Run
-
Install lefthook (optional):
- Run
gem install lefthook
- Run
-
Export paths:
- Add to
.zshrc
or.bashrc
file
- Add to
export PATH="$PATH:<path to flutter>/flutter/bin"
export PATH="$PATH:<path to flutter>/flutter/bin/cache/dart-sdk/bin"
export PATH="$PATH:~/.pub-cache/bin"
export PATH="$PATH:~/.gem/gems/lefthook-0.7.7/bin"
- Save file `.zshrc`
- Run `source ~/.zshrc`
Config and run app
- cd to root folder of project
- Run
make gen_env
- Run
make sync
- Run
lefthook install
(optional) - Run & Enjoy!
Upgrade Flutter
- Update Flutter version in:
Upgrade Melos
- Update Melos version in:
License
MIT