Releases: arkivanov/Decompose
3.2.2
3.2.1
- 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
Changes since version 3.2.0-beta03
- Updated Essenty to
2.2.0
and Compose to1.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 toChildPages
, promoted all Child Pages API to stable (#756) - Force javaTarget 11 for all non-Android JVM targets (#758)
- Renamed
PredictiveBackParams#animatableSelector
parameter toanimatable
(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 experimentalstackAnimation
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(...)
andStateKeeperOwner.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
- 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
- Added Child Panels navigation model (#782, #789)
- Removed unused type parameters from the experimental
PredictiveBackParams
API (#777) - Make
animator
argument optional in the experimentalstackAnimation
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
- Updated Kotlin to
2.0.20
, Compose to1.7.0-beta01
, Essenty to2.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
- Renamed
PredictiveBackParams#animatableSelector
parameter toanimatable
(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
- 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
- Added new experimental stack animation API with Shared Element Transitions support (#753)
- Annotated
StackNavigator#push
as delicate API (#747) - Renamed
Pages
composable function toChildPages
, promoted all Child Pages API to stable (#756) - Updated Kotlin to
2.0.10
, Compose to1.7.0-alpha02
, Essenty to2.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
- Fixed "Key was used multiple times" crash with
duplicateConfigurationsEnabled
flag enabled (#734) - Updated Essenty to
2.2.0-alpha02
with newStateKeeper
andInstanceKeeper
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(...)
andStateKeeperOwner.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