This project is an application that uses the BLoC architecture pattern with a single state, Dio as the network manager, and Drift as the database solution. The database is implemented using Drift classes, without the need for a Drift file.
Important
Similar project with (Drift Class) 👉 SampleBlocPatternWithSingleState 👈
Bloc Patterns using single state along with repositories
and services, separates business logic, data access, and UI by using streams to handle state and
manage data flow. (Bloc Pattern Documentation)
Dio Network Manager is responsible for making requests and
retrieving data from the remote server.
Cached Network Image is a package that it is
responsible for loading the images and supports offline functionality.
Drift Database is responsible for saving the
retrieved data from the remote server, querying data from the local database, and supporting offline
functionality. (Drift Database Documentation)
Get It (Dependencies Injection) is a lightweight dependency
injection package for Flutter that allows you to register and access services globally, promoting
cleaner and more maintainable code.
Flutter SDK version: 3.27.1
Dart Version: 3.6.0
https://bloclibrary.dev/#/flutterinfinitelisttutorial
https://bloclibrary.dev/#/gettingstarted
https://bloclibrary.dev/#/fluttertimertutorial?id=flutter-timer-tutorial
https://ppantaleon.medium.com/flutter-blocbuilder-vs-blocconsumer-vs-bloclistener-a4a3ce7bfa9a
https://stackoverflow.com/questions/59188021/why-usually-theres-a-repository-layer-on-bloc-pattern
https://drift.simonbinder.eu/docs/getting-started/advanced_dart_tables/
https://stackoverflow.com/questions/73811123/how-to-stop-dio-get-when-the-internet-is-off
https://stackoverflow.com/questions/61381265/stop-showing-error-from-http-or-dio-request
https://pub.dev/packages/dio#handling-errors
https://pub.dev/packages/get_it
https://github.com/r-spacex/SpaceX-API (GitHub)
https://docs.spacexdata.com/?version=latest (Postman)