Table of Contents
My goal with this project was to combine everything I have learned to build a fully functional, realistic and scalable Flutter app.
Frameworks, libraries and dependencies for this project
- Flutter (Main framework used)
- Freezed (Data modelling library)
- Autoroute (Navigation library)
- fl_chart (Chart library)
- flutter_bloc (Main state management library)
- flutter_svg (Rendering svg pictures)
- get_it (Service lovator for dependency injection )
- injectable (Dependency injection library)
- salomon_bottom_bar (Bottom navigation bar library)
Instructions on how to build the app
How to install the app.
- Clone the repo
git clone https://github.com/your_username_/Project-Name.git
- Install Flutter dependencies (Pre-installed in
pubspec.yaml
)flutter pub get
- Generate dpendency class
flutter pub run build_runner build --delete-conflicting-outputs
Project can be used as a reference for building scalable apps and real-world apps. App features:
- Retrieves data from an API
- Null-safety
- Proper implementation of dependency injection
- Domain-Driven-Design Architecture
- Flutter Bloc State management
- Data Transfer Objects
- Navigation and routing
- Project structure setup
- Infrastructure layer (API)
- Domain layer (Models and reposiory facade)
- Application layer (Implement state management (Bloc))
- Presentation layer (setup UI)
- Link application layer to domain
- Render dynamic chart content
- Documentation
- Multi-language Support
- Chinese
- Spanish
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Project Link: https://github.com/ferdinandmwal123/flutter_proj
Resources used to develop this project
- Flutter Bloc Tutorial for Beginner (Video)
- Flutter Firebase & DDD (Video)
- Flutter Native Splash (Video)
- Dartz Using Either (Article)
- Using freezed with Bloc (Article)
- Flutter - bloc with freezed (Article)
- Flutter Bloc (v8.0.1) Pattern to load API data with Freezed and AutoRoute (Article)
- React Icons
- API used
- Networking in Flutter using Dio (Article)
- Data Modeling with Flutter using freezed package (Article)
- News app (Repository)
- Shields IO