Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: badoo/MVIKotlin

3.0.0-alpha02

19 Oct 01:21
119cd06

Choose a tag to compare

3.0.0-alpha02 Pre-release
Pre-release
  • Removed isAutoInitByDefault property from StoreFactory (#298)
  • Added Apple silicon targets (#302)
  • Allow duplicate store names in TimeTravelController. TimeTravelStoreFactory now doesn't need fallback StoreFactory. (#299)
  • Setup Kotlin hierarchical project structure (HMPP) (#278 by @sellmair)
  • Updated Kotlin to 1.5.30, coroutines to 1.5.2 and other dependencies (#282)
  • Fix wrong adb path selection in Time Travel plugin and client app (#281 by @ema987)
  • Add toolbar button tooltips in the Time Travel client app (#287 by @plusmobileapps)
  • Time Travel documentation updates (#297 by @plusmobileapps)

3.0.0-alpha01

02 Aug 00:01
7302bfc

Choose a tag to compare

3.0.0-alpha01 Pre-release
Pre-release
  • Stores can now be instantiated on a background thread (#217, #258, #263)
  • Used Essenty library, removed Lifecycle from mvikotlin module, deprecated keepers module
  • Removed previously deprecated InstanceKeeper and StateKeeper from the mvikotlin module, removed previously deprecated mvikotlin-extensions-androidx module (#256)
  • Introduced CoroutineExecutor and CoroutineBootstrapper, deprecated SuspendExecutor and SuspendBootstrapper (#265)
  • Converted CoroutineBootstrapper and CoroutineExecutor to non-suspend, exposed CoroutineScope (#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.

2.0.4

15 Jun 08:56
567c8fe

Choose a tag to compare

  • Added watchos target support (#233)
  • Updated coroutines to 1.5.0 in mvikotlin-extensions-coroutines module (#234)
  • Updated Reaktive to 1.2.0 in mvikotlin-extensions-reaktive module (#238)
  • Fixed recursive events of different types are not working in TimeTravelStore (#232)

2.0.3

05 May 20:42
f84d1c2

Choose a tag to compare

  • Updated Kotlin to 1.5.0 (#218)
  • Enabled IR mode for JavaScript (#205)

2.0.2

15 Apr 21:15
bad1235

Choose a tag to compare

  • Published to Maven Central

2.0.1

13 Feb 14:12
76697fe

Choose a tag to compare

  • Added setMainThreadId(...) functions for jvm and linuxX64 targets (#168)
  • Updated Kotlin to 1.4.30, Reaktive to 1.1.20 and coroutines to 1.4.2 (#174, #182)

2.0.0

03 Oct 23:09

Choose a tag to compare

  • Updated Kotlin to 1.4.10 (#162 by @bachlis)
  • Fixed "ReferenceError: observer$ObjectLiteral is not defined" crash (#146 by @maxtox3)
  • Changed order of Lifecycle.State enum entries (#153)
  • Introduced InstanceKeeper in the keepers module, old InstanceKeeper is deprecated (#156)
  • Introduced StateKeeper in the keepers module, old StateKeeper is deprecated (#157)
  • Introduced AndroidX Lifecycle extensions in the mvikotlin module, old Lifecycle extensions are deprecated (#158)
  • Removed dependency on com.badoo.reaktive:utils (#160)
  • Removed vars from LogginStoreFactory (#161)

Release notes

The mvikotlin-extensions-androidx module is now deprecated. New InstanceKeeper and StateKeeper API is available in the separate keepers module. AndroidX Lifecycle extensions are available directly in the mvikotlin module.

MVIKotlin does not depend on com.badoo.reaktive:utils anymore. So its Bintray repository definition can be removed, unless Reaktive is used in the project.

2.0.0-rc3

21 Aug 21:52
d418ccb

Choose a tag to compare

  • Update Kotlin to 1.4.0 (#138)
  • Make BaseMviView.dispatch(Event) method publicc (#126)
  • Check for cancellation in coroutines binder (#128)
  • Disable Main thread assert if the Main thread is unknown (#136)
  • Remove Lifecycle.Callbacks method bodies, introduce DefaultLifecycleCallbacks interface (#139)
  • Fix LifecycleRegistry callback order when shutting down (#143)

2.0.0-rc2

25 Jul 14:25

Choose a tag to compare

  • Refactored logging functionality (#97)
  • Refactored StateKeeper API
  • Added InstanceKeeper API
  • Fixed file choosers not showing in IDEA time travel plugin (#102, #103, #105, #107)

Breaking changes

The StateKeeper API is refactored, here are some most important changes:

  • removed the StateKeeperContainer interface and all its implementations;
  • StateKeeper.state: T property is replaced with StateKeeper.getState(): T method;
  • StateKeeper.register(...) method is replaced with StateKeeper.setSupplier(...) method;
  • StateKeeperProvider.get(...): StateKeeper method got additional argument clazz: KClass;
  • removed StateKeeperProvider.retainInstance(...) and StateKeeperProvider.retainStore(...) extension methods.

A new InstanceKeeper API is introduced for objects retention.

Both StateKeeper and InstanceKeeper APIs are annotated as experimental.

The androidx-lifecycle-interop module is renamed to mvikotlin-extensions-androidx and now contains all extensions for AndroidX. Its package is changed to com.arkivanov.mvikotlin.extensions.androidx.*.

Please refer to the updated documentation for more information.

2.0.0-rc1

29 Jun 23:40
d35e085

Choose a tag to compare

  • Support macOS target (#87)
  • Added StateKeeperProvider.retainStore(...) extension functions (#68)
  • MacOS time travel client app for iOS and macOS debugging (#89)
  • Time travel export/import in IDEA plugin (#93)
  • Sample JS app (#58 by @maxtox3)
  • Time travel UI for sample JS app (#74 by @maxtox3)
  • Unit and integration tests for sample shared code (#70)