Skip to content

Releases: arkivanov/Decompose

3.3.0-alpha02

13 Dec 22:19
ee8c035
Compare
Choose a tag to compare
3.3.0-alpha02 Pre-release
Pre-release
  • Added isPredictiveBack flag to the experimentalstackAnimation function with selector (#826)

Versions and dependencies

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

3.3.0-alpha01

08 Dec 17:10
363192a
Compare
Choose a tag to compare
3.3.0-alpha01 Pre-release
Pre-release
  • Added the new Web Navigation API with nested navigation support (#821, #823, see #111)
  • Added placeholders for ChildPanels composable function (#811, #815)
  • Use Nothing type for ChildPanels composable function without Extra panel (#812)
  • Fixed a crash when multiple retained components are created with different keys (#813, see #807)

New Web Navigation API

This release introduces the new Web Navigation API for browsers. The new API is a successor of the previous WebHistoryController, which is still available for compatibility. The new API supports different navigation models, nested navigation is also supported. Please see the docs for more information.

Versions and dependencies

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

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