Skip to content

3.0.0-alpha09

Pre-release
Pre-release
Compare
Choose a tag to compare
@arkivanov arkivanov released this 14 Mar 21:13
8e9f6e4
  • Improved component context API for easier custom component contexts (#670)
  • Monitor window focused state in desktop LifecycleController (#672, see #671)
  • Updated Kotlin to 1.9.23, Compose to 1.6.1 and other dependencies (#676)

The improved ComponentContext API

This release brings experimental changes to the ComponentContext API. Please share your feedback or any issues you encounter. The idea is to make it easier to create and manage custom component contexts.

The change shouldn't break any source compatibility. However, if you have type parameters (generics) explicitly specified for functions childStack, childSlot, childPages or children, you will need to change your code in the following way. The rest should be compatible and require no changes in the code.

- val stack: Value<ChildStack<*, Child>> = childStack<Config, Child>(...)
+ val stack: Value<ChildStack<*, Child>> = childStack<_, Config, Child>(...)

If you have a custom component context

Since this version (experimentally) you can now remove custom navigation extensions like AppComponentContext.appChildStack, AppComponentContext.childAppContext, etc. You will also need to update your custom component context definitions. Please see the updated docs.

Changes in LifecycleController for desktop (JVM)

The LifecycleController function now accepts an optional WindowInfo argument. If supplied, the Lifecycle will pause/resume when the window's focus state changes.

Versions and dependencies

Kotlin: 1.9.23
Essenty: 2.0.0-alpha07
kotlinx-serialization: 1.6.2
JetBrains Compose: 1.6.1