Skip to content

3.2.0

Compare
Choose a tag to compare
@arkivanov arkivanov released this 23 Oct 11:32
· 38 commits to master since this release

Changes since version 3.2.0-beta03

  • Updated Essenty to 2.2.0 and Compose to 1.7.0 (#801)

Earlier changes since version 3.1.0

  • Allow duplicate configurations as an experimental feature (#731)
  • Fixed "Key was used multiple times" crash with duplicateConfigurationsEnabled flag enabled (#734)
  • Added new experimental stack animation API with Shared Element Transitions support (#753)
  • Annotated StackNavigator#push as delicate API (#747)
  • Renamed Pages composable function to ChildPages, promoted all Child Pages API to stable (#756)
  • Force javaTarget 11 for all non-Android JVM targets (#758)
  • Renamed PredictiveBackParams#animatableSelector parameter to animatable (the new animation API) (#762)
  • Make predictiveBackParams parameter a function instead of just a value (the new animation API) (#761)
  • Fixed a bug when predictive back gesture is interrupted (the new animation API) (#760)
  • Disable input during predictive back animation (#775)
  • Don't animate the previous child after predictive back gesture finished and stack popped (the new animation API) (#774)
  • Added Child Panels navigation model (#782, #789)
  • Removed unused type parameters from the experimental PredictiveBackParams API (#777)
  • Make animator argument optional in the experimental stackAnimation API (#787)
  • Fixed incorrect predictive back animation playing on hardware back button click (the new animation API) (#779)
  • Fixed stack animation not updating to new child component instance when active configuration is unchanged (#794, see #792)
  • Don't seek stack animation transition on back start when predictive back animatable is specified (the new animation API) (#797)

Experimental Duplicate Configurations feature

This release adds an experimental support of duplicate configurations in all navigation models. The feature can be enabled using the DecomposeExperimentFlags.duplicateConfigurationsEnabled flag. If the feature is enabled, Decompose will not throw errors when duplicate configurations are detected. Instead, it will try its best to properly manage the components. Please see the updated docs for more information.

Please take into account that this feature is experimental and might go away in a future release.

New experimental StateKeeper and InstanceKeeper extensions

This release is based on Essenty 2.2.0, which brings some new extensions for StateKeeper and InstanceKeeper:

  • StateKeeper.saveable(...) and StateKeeperOwner.saveable(...) - experimental.
  • InstanceKeeperOwner.retainedInstance { ... } - stable.

Please see the update docs for saveable and retainedInstance.

The new experimental animation API

This release adds a new artifact extensions-compose-experimental with a brand new API surface for stack animations with the support of Shared Element Transitions. Please see the updated docs for more information and examples.

Child Pages API is stable

The entire Child Pages API is now stable. The Pages composable function has been renamed to ChildPages, for consistency with the new ChildStack composable function from the new experimental animations.

The new Child Panels navigation model

This release adds a new navigation model for multi-pane navigation: Child Panels. This navigation is somewhat similar to List-Details Layout. Please see the updated docs for more information.

Versions and dependencies

Kotlin: 2.0.20
Essenty: 2.2.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0