Welcome to the Flutter Architecture repository! This project aims to demonstrate and provide a reference for structuring Flutter applications using best practices in software architecture.
This repository provides a sample Flutter application showcasing an effective architecture that promotes scalability, testability, and maintainability. The goal is to help developers understand and implement robust architectural patterns in their Flutter projects.
- Clean architecture with separation of concerns
- State management using GetX
- Dependency injection using GetX
- Repository pattern for data access
- Modular and scalable project structure
- Flutter
- Dart
- GetX (state management and dependency injection)
- Dio (networking)
- Flutter Material icons - Recommended
To get a local copy up and running, follow these simple steps.
- Install Flutter 3.22.3 or latest version
- Install Melos latest version (Optional)
- Install fvm latest version (Optional)
- At Config module
- Generated:
make create-env
- One time:
make denied
(Mac OS) - PreBuild:
make pre-bootstrap
make pub-get
- Run:
make run flavor=[dev|staging|prod]
If you can not install Melos, Fvm on Windown. You need to follow step by step to ready run source code
- scripts package
- cd scripts
- sh pre-bootstrap.sh
- flutter pub get
- utilities package:
- cd utilities
- flutter pub get
- domain package
- cd domain
- flutter pub get
- flutter packages pub run build_runner build --delete-conflicting-outputs
- data package
- cd data
- flutter pub get
- flutter packages pub run build_runner build --delete-conflicting-outputs
- config package
- cd configs
- flutter pub get
- flutter packages pub run build_runner build --delete-conflicting-outputs
- app package
- cd app
- flutter pub get
- Run source
- cd configs
- dart run lib/src/env.json.dart [dev|prod]
- cd ..
- dart run scripts/build.dart [dev|prod] -> Run complete and copy command on console
- cd app
- paste command and run
- Widget Book is a web platform to build UIkit. It runs quickly on web instead of run by the mobile platform.
- Run Project:
- One time:
make denied
(Mac OS) - PreBuild:
make pre-bootstrap
make pub-get
make widget-book flavor=[dev|prod]
- One time:
- Lab: Write your first Flutter app
- Cookbook: Useful Flutter samples
- Git-chglog
- Firebase
- Setup Flavor
- GetX
- GetX Storage
- Dio
- Flutter secure storage
- Package Info Plus
- Hive
- Hive Flutter
- Firebase Core
- Firebase Auth
- Loader overlay
- Pull to refresh
- Flutter_slidable
- Dropdown Button
- Flutter DateTime Picker
- Flutter Icon