1.**Actor**: It is just a function that takes current state, user action as input and produces an effect (result) as output. This function generally makes the call to external APIs and usecases.
2.**Reducer**: It is also a very simple function whose inputs are current state, effect from the actor and it returns new state.
3.**State**: Simple POJO (kotlin data class) representing various UI states of the application.
4.**Effect**: A POJO (kotlin data class) which is returned from the actor function.
5.**SingleEventProducer**: This is a function which is invoked by the reducer to publish single events (that can/should only be consumed once like displaying toast, snackbar message or sending an analytics event). This function takes action, effect, current state as input and it returns a `SingleEvent`. By default this function is null for any Feature.
1.**Action**: The exhaustive list of user actions for a feature.
2.**State**: Simple POJO (kotlin data class) representing various UI states of the application.
3.**SingleEventProducer**: This is a function which is invoked by the reducer to publish single events (that can/should only be consumed once like displaying toast, snackbar message or sending an analytics event). This function takes action, effect, current state as input and it returns a `SingleEvent`. By default this function is null for any Feature.
### Architecture Overview of PrivacyCentral App
@@ -50,179 +48,6 @@ Looking at the diagram from right to left: