This project is an application that utilizes the BLoC architecture pattern with a single state, Dio for network management, and Drift for local database storage.
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.
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)
Cached Network Image is a package that it is
responsible for loading the images and supports offline functionality.
Important
Similar project with 👉 SampleDriftDatabaseWithBlocPattern 👈
Flutter SDK version: 3.27.1
Dart Version: 3.6.0
https://github.com/r-spacex/SpaceX-API (GitHub)
https://docs.spacexdata.com/?version=latest (Postman)
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://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