Releases: arkivanov/MVIKotlin
4.2.0
4.1.0
- Use
typeOf
as key instead ofKClass
inInstanceKeeper#getStore
(#138) - Updated Kotlin to
2.0.0
, Essenty to2.1.0
(mind the release notes), and other dependencies (#139)
Versions and dependencies
Kotlin: 2.0.0
Essenty: 2.1.0
Module mvikotlin-extensions-reaktive
Reaktive: 2.2.0
Module mvikotlin-extensions-coroutines
kotlinx.coroutines: 1.8.1
4.0.0
Changes since version 4.0.0-beta01
- Updated Essenty to
2.0.0
(#134) - Promoted Executor
onAction
andforward
methods to stable (#133) - Promoted DSL APIs to stable (#135)
Earlier changes since version 3.3.0
- Support
wasmJs
target (#122, #124) - Updated Reaktive in
mvikotlin-extensions-reaktive
module to version2.0.0
(#110 by @acousticksan) - Deleted all deprecated code (#113)
- Merged
rx
,rx-internal
andutils-internal
modules intomvikotlin
module (#115) - Disabled debug artifact publications for Android (#117)
- Support sending Actions from Executors (#116)
- Replaced
getState
argument function in Executors andstate
property in DSL withstate()
function (#118)
Updates and breaking changes since version 3.3.0
Please see the release notes of the version 4.0.0-alpha01 to learn about all breaking changes and migration guides.
Versions and dependencies
Kotlin: 1.9.23
Essenty: 2.0.0
Module mvikotlin-extensions-reaktive
Reaktive: 2.1.0
Module mvikotlin-extensions-coroutines
kotlinx.coroutines: 1.8.0
4.0.0-beta01
- Updated Kotlin to 1.9.23, Essenty to 2.0.0-beta01, coroutines to 1.8.0, Reaktive to 2.1.0 (#131)
Versions and dependencies
Kotlin: 1.9.23
Essenty: 2.0.0-beta01
Module mvikotlin-extensions-reaktive
Reaktive: 2.1.0
Module mvikotlin-extensions-coroutines
kotlinx.coroutines: 1.8.0
4.0.0-alpha02
4.0.0-alpha01
- Updated Reaktive in
mvikotlin-extensions-reaktive
module to version2.0.0
(#110 by @acousticksan) - Updated Essenty to
1.3.0
(#119) - Deleted all deprecated code (#113)
- Merged
rx
,rx-internal
andutils-internal
modules intomvikotlin
module (#115) - Updated Kotlin to
1.9.21
(#114) - Disabled debug artifact publications for Android (#117)
- Support sending Actions from Executors (#116)
- Replaced
getState
argument function in Executors andstate
property in DSL withstate()
function (#118)
Updates and breaking changes
Please see the updated docs from more information.
Reaktive update to version 2.0.0
Reaktive library in the mvikotlin-extensions-reaktive
module is updated to version 2.0.0
, making the new version binary incompatible with MVIKotlin v3.x
. If you are using this, make sure you also update Reaktive in your project
Deleted all deprecated code
All previously deprecated code is now removed:
- The
keepers
module - please use StateKeeper from library Essenty. SuspendBootstrapper
andSuspendExecutor
- please useCoroutineBootstrapper
andCoroutineExecutor
respectively.TimeTravelView
- please use either the time-travel IDEA plugin or the standalone desktop client, or copy TimeTravelView to your project.
The rx
module is merged into mvikotlin
module
Please replace the rx
dependency from your project and replace com.arkivanov.mvikotlin.rx.*
imports with com.arkivanov.mvikotlin.core.rx.*
.
Sending Actions from Executors (experimental)
MVIKotlin now allows sending Actions from an Executor back to the Executor itself. This makes it easier to reuse Actions, and also better proper logging and time-traveling. This makes the new version of MVIKotlin binary incompatible with v3.x
. See the updated docs.
The new state()
function
The getState
argument function in Executors and the state
property in DSL is replaced with state()
function. This makes the API simpler, and there is no need to pass getState
argument around.
Versions and dependencies
Kotlin: 1.9.21
Essenty: 1.3.0
Module mvikotlin-extensions-reaktive
Reaktive: 2.0.0
Module mvikotlin-extensions-coroutines
kotlinx.coroutines: 1.7.3
3.3.0
3.2.1
3.2.0
3.1.0
- New extensions for observing
Store
state changes (#68) - Added tvos target (#72)
- Do not throw if
Store
is already initialized (#73) - Fixed time travel dialogs on Windows (#70)
New Store.states extensions
There are new coroutine extensions to observe Store
state changes - Store.stateFlow: StateFlow
.
Also, Reaktive extension Store.state
now returns BehaviorObservable
, which is a subtype of Observable
and allows reading the current state.
See the update docs for more information.
Initializing an already initialized Store
Now Store.init
function doesn't throw an error when it's called multiple times, and just does nothing.
Versions and dependencies
Kotlin: 1.7.10
Essenty: 0.9.0