An example of how to use BLOC pattern by GET Rajaongkir REST API
This layer is all widgets (UI)
Application layer has only one job - orchestrating all of the other layers. No matter where the data originates (state management)
The domain layer is the pristine center of an app. It is fully self contained and it doesn't depend on any other layers. Domain is not concerned with anything but doing its own job well (Model and etc.)
Much like presentation, this layer is also at the boundary of our app (Repository, Internet Request and etc.)
Code generation for immutable classes that has a simple syntax/API without compromising on the features.
Annotations for the freezed code-generator. This package does nothing without freezed too.
A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern.
Flutter Widgets that make it easy to implement the BLoC (Business Logic Component) design pattern. Built to be used with the bloc state management package.
AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.
Functional Programming in Dart. Purify your Dart code using efficient immutable data structures, monads, lenses and other FP tools.
A powerful Http client for Dart, which supports Interceptors, FormData, Request Cancellation, File Downloading, Timeout etc.
Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App"
Injectable is a convenient code generator for get_it. Inspired by Angular DI, Guice DI and inject.dart.
A build system for Dart code generation and modular compilation.
Automatically generate code for converting to and from JSON by annotating Dart classes.