Flutter project using clean architecture and bloc pattern
YOUR_PROJECT_NAME
Flutter project using clean architecture and bloc pattern
Getting Started
Requirements
- Dart: 2.18.5
- Flutter SDK: 3.3.9
- 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:
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
- Unit Test: mocktail, bloc_test
- Paging: infinite_scroll_pagination
- Utils: rxdart, dartx, async
- Assets generator: flutter_gen_runner, flutter_launcher_icons, flutter_native_splash