Skip to content

Releases: arkivanov/Decompose

3.2.2

07 Nov 15:43
85bbf2f
Compare
Choose a tag to compare
  • Cancel predictive back gesture when stack changed (experimental animation API) (#806)

Versions and dependencies

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

3.2.1

29 Oct 21:00
00bf7ee
Compare
Choose a tag to compare
  • Updated Essenty to 2.2.1 (#803)

This release updates Essenty to version 2.2.1, which contains a fix for a possible crash in the experimental StateKeeper#saveable API.

Versions and dependencies

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

3.2.0

23 Oct 11:32
Compare
Choose a tag to compare

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

3.2.0-beta03

16 Oct 08:50
3376b24
Compare
Choose a tag to compare
3.2.0-beta03 Pre-release
Pre-release
  • 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 (#797)

Versions and dependencies

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

3.2.0-beta02

03 Oct 21:23
17852c5
Compare
Choose a tag to compare
3.2.0-beta02 Pre-release
Pre-release
  • 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)
  • Updated Compose to 1.7.0-rc01 (#790)
  • Fixed incorrect predictive back animation playing on hardware back button click with the new animation API (#779)

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-beta01
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0-rc01

3.2.0-beta01

08 Sep 09:45
9d2f1c4
Compare
Choose a tag to compare
3.2.0-beta01 Pre-release
Pre-release
  • Updated Kotlin to 2.0.20, Compose to 1.7.0-beta01, Essenty to 2.2.0-beta01 (#776)
  • 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)

Versions and dependencies

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

3.2.0-alpha05

18 Aug 16:09
92906bc
Compare
Choose a tag to compare
3.2.0-alpha05 Pre-release
Pre-release
  • 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)

Versions and dependencies

Kotlin: 2.0.10
Essenty: 2.2.0-alpha04
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0-alpha02

3.2.0-alpha04

08 Aug 20:18
e2659fd
Compare
Choose a tag to compare
3.2.0-alpha04 Pre-release
Pre-release
  • Force javaTarget 11 for all non-Android JVM targets (#758)

The previous 3.2.0-alpha03 release has all non-Android JVM targets published with the target Java version 17. This release fixes the issue, all non-Android JVM targets now have target Java version 11 instead.

Versions and dependencies

Kotlin: 2.0.10
Essenty: 2.2.0-alpha04
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0-alpha02

3.2.0-alpha03

08 Aug 11:40
2ecf142
Compare
Choose a tag to compare
3.2.0-alpha03 Pre-release
Pre-release
  • 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)
  • Updated Kotlin to 2.0.10, Compose to 1.7.0-alpha02, Essenty to 2.2.0-alpha03 (#750)

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.

Versions and dependencies

Kotlin: 2.0.10
Essenty: 2.2.0-alpha03
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0-alpha02

3.2.0-alpha02

08 Jul 21:10
436c518
Compare
Choose a tag to compare
3.2.0-alpha02 Pre-release
Pre-release
  • Fixed "Key was used multiple times" crash with duplicateConfigurationsEnabled flag enabled (#734)
  • Updated Essenty to 2.2.0-alpha02 with new StateKeeper and InstanceKeeper extensions (#735)

New experimental StateKeeper and InstanceKeeper extensions

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

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

Please see the update docs for saveable and retainedInstance.

Versions and dependencies

Kotlin: 2.0.0
Essenty: 2.2.0-alpha02
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.6.10