3.0.0-alpha01
Storescan now be instantiated on a background thread (#217, #258, #263)- Used Essenty library, removed
Lifecyclefrommvikotlinmodule, deprecatedkeepersmodule - Removed previously deprecated
InstanceKeeperandStateKeeperfrom themvikotlinmodule, removed previously deprecatedmvikotlin-extensions-androidxmodule (#256) - Introduced
CoroutineExecutorandCoroutineBootstrapper, deprecatedSuspendExecutorandSuspendBootstrapper(#265) - Converted
CoroutineBootstrapperandCoroutineExecutorto non-suspend, exposedCoroutineScope(#268) - Added Time Travel client app for desktop, removed one for macOS, improved time travel protocol (#251, #269) (#259)
- Clean-up
enum StoreEventType(#270) - Updated documentation (#260, #262, #271)
Breaking changes
Please familiarise yourself with the updated documentation.
Essenty library
Lifecycle, StateKeeper, InstanceKeeper and related things were extracted to the Essenty library, and so MVIKotlin now depends on Essenty. Lifecycle was removed from mvikotlin module, the keepers module is now deprecated. This change makes MVIKotlin and Decompose compatible. It also allows developers to use Essenty library without any extra dependencies.
Coroutines interop
SuspendExecutor and SuspendBootstrapper were renamed to CoroutineExecutor and CoroutineBootstrapper respectively, via deprecation. CoroutineBootstrapper and CoroutineExecutor are now non-suspend, but exposing CoroutineScope. This enables synchronous processing of Intents and Actions by default, with explicit async tasks via the provided CoroutineScope.
Time travel
Introduced the new time travel client application for desktop, using Compose for Desktop. Removed the native version for macOS. The time travel protocol was significantly improved, it is now more optimal. Please make sure you updated the IDEA Plugin, if you are using it.