Skip to content

Releases: arkivanov/MVIKotlin

4.0.0

27 Apr 20:44
1350f82
Compare
Choose a tag to compare

Changes since version 4.0.0-beta01

  • Updated Essenty to 2.0.0(#134)
  • Promoted Executor onAction and forward 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 version 2.0.0 (#110 by @acousticksan)
  • Deleted all deprecated code (#113)
  • Merged rx, rx-internal and utils-internal modules into mvikotlin module (#115)
  • Disabled debug artifact publications for Android (#117)
  • Support sending Actions from Executors (#116)
  • Replaced getState argument function in Executors and state property in DSL with state() 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

05 Apr 19:52
1865f31
Compare
Choose a tag to compare
4.0.0-beta01 Pre-release
Pre-release
  • 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

16 Jan 08:35
5a95449
Compare
Choose a tag to compare
4.0.0-alpha02 Pre-release
Pre-release

Versions and dependencies

Kotlin: 1.9.21
Essenty: 2.0.0-alpha02

Module mvikotlin-extensions-reaktive

Reaktive: 2.1.0-beta01

Module mvikotlin-extensions-coroutines

kotlinx.coroutines: 1.8.0-RC2

4.0.0-alpha01

02 Dec 15:31
dc70f60
Compare
Choose a tag to compare
4.0.0-alpha01 Pre-release
Pre-release
  • Updated Reaktive in mvikotlin-extensions-reaktive module to version 2.0.0 (#110 by @acousticksan)
  • Updated Essenty to 1.3.0 (#119)
  • Deleted all deprecated code (#113)
  • Merged rx, rx-internal and utils-internal modules into mvikotlin 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 and state property in DSL with state() 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 and SuspendExecutor - please use CoroutineBootstrapper and CoroutineExecutor 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

04 Nov 22:46
37d45ad
Compare
Choose a tag to compare
  • Updated Kotlin to 1.9.20 and other dependencies (#100)
  • Removed the support of the Kotlin/Native legacy memory model (#101, #105)

Versions and dependencies

Kotlin: 1.9.20
Essenty: 1.2.0

3.2.1

09 May 08:24
0aae7f8
Compare
Choose a tag to compare
  • Fixed logs crashing on Paparazzi tests (#91)

Versions and dependencies

Kotlin: 1.8.0
Essenty: 1.0.0

3.2.0

17 Mar 20:55
55583f1
Compare
Choose a tag to compare
  • Updated Kotlin to 1.8.0, Essenty to 1.0.0

Versions and dependencies

Kotlin: 1.8.0
Essenty: 1.0.0

3.1.0

20 Jan 18:40
63ad7c7
Compare
Choose a tag to compare
  • 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

3.0.2

18 Aug 23:02
Compare
Choose a tag to compare
  • Fixed InaccessibleObjectException in Time Travel client apps (JDK 17+) (#59)

3.0.1

18 Jul 14:28
62fceaa
Compare
Choose a tag to compare