Messaging app (web/android) based on Whatsapp style using firebase and based on an implementation of the Riverpod Architecture from Andrea Bizzotto.
- Realtime Messaging
- Group conversations
- Send pictures
- “Was read” indicator
It contain at least a view, a state and a controller.
The view represents the page itself. The logic of this view is managed by a Controller. This controller contains an immutable state (a class that contains variables). The view can read the state but can only modify it via the controller. Each time the state is modified, the widget is rebuilt.
Example with create conversation : view, controller, state
Contains the defitions of the entities / objects used by the views, controllers. These objects are immutable in order to be able to propagate state changes in our application. The modification of a state is done by copy.
Communicates with external APIs (REST API, Local Storage API, ...) and converts the received data into models from the layer domain.