v0.8.0 improve predictability
To make the library more predictable (one of the three architectural goals) the following changes were made:
- the Essenty lifecycle is translated to a Bloc lifecycle using a state machine
- initializers are now executed completely before thunks or reducers are
- MVVM+ style initializers were removed because they could be submitted at any time and thus the state machine could never progress to Started state
- if a bloc is stopped, actions, thunks, reducers etc. submitted to the bloc will be ignored
- if a bloc is running the initializer actions, thunks, reducers etc. submitted to the bloc will be queued for later execution
- reducers need to run synchronously -> they are no longer suspend but just regular functions