Dart & Flutter Clean architecture Streams & rxdart REST API Animations Internal SQL database iOS & Android In beta testing Open source
What I did:
Mobile application: Developed the mobile application for Android and iOS, it was coded with a clean architecture and I used BLoC for managing of the state.
Error is handling is done with functional programming, every function and streams gives a Either or a Resource type, so in the UI we can give an error message
The Data layer consists of repository and data models. Repository is where the application gather all data related to the use case, either from local sources (Local DB, cookies) or remote sources (remote API). Data from the sources, usually in json format, is parsed to Dart object called models. Itβs need to be done to make sure the application knows what data and variable itβs expecting.
Domain is the inner layer which shouldnβt be susceptible to the whims of changing data sources or porting our app to Angular Dart. It will contain only the core business logic (use cases) and business objects (entities). Repository classes act as the Data Layer and Domain Layer, each function on the repository class acts as the domain layer that specifies the use cases of the feature.
Domain Layer can have:
Presentation is where the UI goes. You obviously need widgets to display something on the screen. These widgets is controlled by the state using various state management design pattern used in Flutter. In this project, I use BLoC as the state management.
UI calls from the Presentation layer. Presentation layer executes the use case. Use case(Domain layer) will ask the Data layer to send back the result. Data layer will run and send back the result to the Use case. Information is flown back to UI, to show the result.