A Flutter application for Meat Delivery.
Basis of Architecture This app adopts layered architecture. Each layer has several role.
Backend Services (Api, server application, etc...) ↑
↑
↑ →→→→→→→→→→→→ Storage (File system or on memory)
↑ →→→→→→→→→→→→ Device informations
↑
↑ access
+----------------+
| Repository | ... Abstracting the usage of backends
+----------------+
↑
↑ depend
↑
+----------------+
| Bloc | ... Common procedures manipulationg repositories
+----------------+
↑
↑ depend
↑
+----------------+
| UI | ... Presenting states of App and recieving commands from user
+----------------+
↑
↑ launch
↑
main
State management
This app adopts Bloc pattern to manage application/screen states of the app and implement domain logic.
To separate State and Business Logic, we will use State / Event.