Releases: arkivanov/Decompose
Release list
3.5.0
No changes since version 3.5.0-beta01.
Changes since version 3.4.0
- Promoted the Duplicate Configurations feature to stable (#954, #971)
- Changed
Child#keytype fromAnytoStringand promote it to stable (#957) - Added support for per-child animators in Child Panels (#951, #949)
- Added
ChildPagescomposable functions exposingPagerState(#962, #963) - Added
DecomposeSettings#mainThreadCheckEnabledsetting (#964) - Added
DecomposeSettings#updatefunction (#966) - Added
DecomposeSettings#onDecomposeErrorsetting, deprecatedonDecomposeErrorcallback (#965) - Added
handleDeepLinkfunction with additional parameters for better deep link handling (#968) - Updated Compose to 1.9.3 (#955)
- Fixed
ChildPanelssometimes showing the Extra panel placeholder inSINGLEandDUALmodes (#948) - Fixed
Childrencomposable sometimes sticks when switching the stack quickly (#979) - Fixed web history rewriting incorrectly when started via a link (#983)
Duplicate Configurations feature is now stable
Child Stack and Child Pages navigation models now officially support duplicate configurations. The feature is disabled by default, it can be enabled via the new DecomposeSettings#duplicateConfigurationsEnabled global property. See the updated docs for Child Stack and Child Pages.
Changed Child#key type from Any to String and promote it to stable
The Child#key property is now of type String, which makes it possible to use it as a key in Compose. This fixes the occasional crash: Key XYZ was used multiple times.
The new DecomposeSettings API
This release introduces the new DecomposeSettings API for global Decompose configuration. Currently it contains the following properties:
duplicateConfigurationsEnabled - controls whether duplicate configurations are enabled or not.
mainThreadCheckEnabled - controls whether main thread checks are enabled or not.
onDecomposeError - called when a non-fatal error has occurred in Decompose. Replaces the (now deprecated) global onDecomposeError callback property.
Versions and dependencies
Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.9.3
3.5.0-beta01
3.5.0-alpha01
- Promoted the Duplicate Configurations feature to stable (#954, #971)
- Changed
Child#keytype fromAnytoStringand promote it to stable (#957) - Added support for per-child animators in Child Panels (#951, #949)
- Added
ChildPagescomposable functions exposingPagerState(#962, #963) - Added
DecomposeSettings#mainThreadCheckEnabledsetting (#964) - Added
DecomposeSettings#updatefunction (#966) - Added
DecomposeSettings#onDecomposeErrorsetting, deprecatedonDecomposeErrorcallback (#965) - Added
handleDeepLinkfunction with additional parameters for better deep link handling (#968) - Updated Compose to 1.9.3 (#955)
- Fixed
ChildPanelssometimes showing the Extra panel placeholder inSINGLEandDUALmodes (#948)
Duplicate Configurations feature is now stable
Child Stack and Child Pages navigation models now officially support duplicate configurations. The feature is disabled by default, it can be enabled via the new DecomposeSettings#duplicateConfigurationsEnabled global property. See the updated docs for Child Stack and Child Pages.
Changed Child#key type from Any to String and promote it to stable
The Child#key property is now of type String, which makes it possible to use it as a key in Compose. This fixes the occasional crash: Key XYZ was used multiple times.
The new DecomposeSettings API
This release introduces the new DecomposeSettings API for global Decompose configuration. Currently it contains the following properties:
duplicateConfigurationsEnabled - controls whether duplicate configurations are enabled or not.
mainThreadCheckEnabled - controls whether main thread checks are enabled or not.
onDecomposeError - called when a non-fatal error has occurred in Decompose. Replaces the (now deprecated) global onDecomposeError callback property.
Versions and dependencies
Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.9.3
3.4.0
Changes since version 3.4.0-beta01
- Fixed Child Stack and Child Pages incorrectly initialized when state is not restored (#938)
Earlier changes since version 3.3.0
- Use SPDX identifier in POMs (#851 by @TheMrMilchmann)
- Relax
StrictModewith restarting the Activity stack for deep links (#853) - Don't restart Activity stack when there is no deep link (#854)
- Added
backHandlerPriorityargument tochildContextextension function (#859) - Updated Compose to
1.8.0-rc01andcompileSdkVersionto 35 (#870) - Added Child Items navigation model (#878, #882, #880)
- Added
PagesNavigator#setItemsextension function (#881) - Deprecated
Value#getValueoperator overload (#885, see #877) - Exposed
ChildPagesPagertypealias (#886, see #883) - Avoid using
Modifier.graphicLayerin predictive back animatables (#884, see #877) - Fixed IndexOutOfBoundsException in ChildPages (#887, see #866)
- Added JetpackComponentContext API (#895, #896)
- Updated Compose to
1.8.2(#897) - Fixed
ClassCastExceptioninSlotNavigator#dismissonwasmJson Kotlin 2.2 (#888, see #879) - Explicit error handling in Relay (#899, see #892)
- Expose
StackAnimationScopefromChildStackinstead ofAnimatedVisibilityScope(#901, #925) - Use
graphicsLayerwithCompositingStrategy.Offscreenin predictive back animations (#919, see #918) - Renamed
androidPredictiveBackAnimatabletoandroidPredictiveBackAnimatableV1(#921) - Added
androidPredictiveBackAnimatableV2from Android Vanilla Ice Cream (#923) - Fixed incorrect enter shape in
androidPredictiveBackAnimatablewhen not fullscreen (#922) - Fixed
ChildPagesanimation sometimes stuck when interrupted (#924) - Fixed Child Slot state not saved when not active (#916)
- Fixed CCE in
SlotNavigator#dismissonwasmJs(#915) - Fixed
ChildPagescomposable discards the selected index change while not in composition (#930, see #929) - Fixed Web History Navigation duplicates history items when nested (#933, see #907)
The new Child Items navigation model
This release introduces a new experimental navigation model – Child Items. It's designed specifically for displaying child components in lazy lists or grids, but can also be used to organize components in an arbitrary list with flexible lifecycles. See the updated docs.
New JetpackComponentContext API
This release adds a new module jetpack-component-context that provides the JetpackComponentContext API for interop with AndroidX Architecture Components. See the updated docs for more information.
The new androidPredictiveBackAnimatableV2 animation
The androidPredictiveBackAnimatable has been renamed to androidPredictiveBackAnimatableV1. Plus the new androidPredictiveBackAnimatableV2 animation was added, resembling the standard predictive back animation from Android Vanilla Ice Cream and Baklava. See the updated docs for more information.
BackGestureAndroidV2.mp4
The new StackAnimationScope
The ChildStack composable function now exposes StackAnimationScope instead of AnimatedVisibilityScope, providing access to stackAnimationDirection: Direction? property. This allows better UI customization during stack animations.
Improved predictive back animation scaling quality
This release significantly improves the quality of scaling when performing predictive back animations with Jetpack Compose.
Versions and dependencies
Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.2
3.4.0-beta01
3.4.0-alpha05
3.4.0-alpha04
- Explicit error handling in Relay (#899, see #892)
- Expose
StackAnimationScopefromChildStackinstead ofAnimatedVisibilityScope(#901, #925) - Use
graphicsLayerwithCompositingStrategy.Offscreenin predictive back animations (#919, see #918) - Renamed
androidPredictiveBackAnimatabletoandroidPredictiveBackAnimatableV1(#921) - Added
androidPredictiveBackAnimatableV2from Android Vanilla Ice Cream (#923) - Fixed incorrect enter shape in
androidPredictiveBackAnimatablewhen not fullscreen (#922) - Fixed
ChildPagesanimation sometimes stuck when interrupted (#924) - Fixed Child Slot state not saved when not active (#916)
- Fixed CCE in
SlotNavigator#dismissonwasmJs(#915)
The new androidPredictiveBackAnimatableV2 animation
The androidPredictiveBackAnimatable has been renamed to androidPredictiveBackAnimatableV1. Plus the new androidPredictiveBackAnimatableV2 animation was added, resembling the standard predictive back animation from Android Vanilla Ice Cream and Baklava. See the updated docs for more information.
BackGestureAndroidV2.mp4
The new StackAnimationScope
The ChildStack composable function now exposes StackAnimationScope instead of AnimatedVisibilityScope, providing access to stackAnimationDirection: Direction? property. This allows better UI customization during stack animations.
Improved predictive back animation scaling quality
This release significantly improves the quality of scaling when performing predictive back animations with Jetpack Compose.
Versions and dependencies
Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.2
3.4.0-alpha03
- Added JetpackComponentContext API (#895, #896)
- Updated Compose to
1.8.2(#897) - Fixed
ClassCastExceptioninSlotNavigator#dismissonwasmJson Kotlin 2.2 (#888, see #879)
New JetpackComponentContext API
This release adds a new module jetpack-component-context that provides the JetpackComponentContext API for interop with AndroidX Architecture Components. See the updated docs for more information.
Versions and dependencies
Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.2
3.4.0-alpha02
- Added Child Items navigation model (#878, #882, #880)
- Added
PagesNavigator#setItemsextension function (#881) - Deprecated
Value#getValueoperator overload (#885, see #877) - Exposed
ChildPagesPagertypealias (#886, see #883) - Avoid using
Modifier.graphicLayerin predictive back animatables (#884, see #877) - Fixed IndexOutOfBoundsException in ChildPages (#887, see #866)
The new Child Items navigation model
This release introduces a new experimental navigation model – Child Items. It's designed specifically for displaying child components in lazy lists or grids, but can also be used to organize components in an arbitrary list with flexible lifecycles. See the updated docs.
Versions and dependencies
Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.0-rc01
3.4.0-alpha01
- Use SPDX identifier in POMs (#851 by @TheMrMilchmann)
- Relax
StrictModewith restarting the Activity stack for deep links (#853) - Don't restart Activity stack when there is no deep link (#854)
- Added
backHandlerPriorityargument tochildContextextension function (#859) - Updated Compose to
1.8.0-rc01andcompileSdkVersionto 35 (#870)
Versions and dependencies
Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.0-rc01