- Remove support for
initialLazy
state. This complicates things for library users, because it results in a state machine which semantically has no defined initial state, it's "suspended". The better way to do this (if needed) is for consumer to suspend until the initial state is ready and only after that construct the machine.
-
Remove built-in support for events
Previously this was nice to have bundled in, but now that
transitionTo
andaction
are suspend functions, nothing stops you from easily doing something likeval events = MutableSharedFlow<Event>(extraBufferCapacity = 12) machine<State> { onEach(events) { action { events.emit(Event.Another) } } }
- Remove
unicorn-lint
sub-project. It wasn't finished, wasn't used, wasn't working. - Remove
unicorn-rxjava2
support. Use coroutine's rxjava adapters if you need to work with RxJava streams - Add support for nested states, expressed through a
sealed class
transitionTo
andaction
are nowsuspend
-functions
- Add
initial
property to theMachine
interface
- Made it possible to have a nullable payload in
onEach
blocks for coroutine-based machines
- Added coroutines module/artifact
- Actions are now executed internally, only state stream is present in the API