Skip to content

Releases: arkivanov/Decompose

3.4.0

28 Sep 16:30

Choose a tag to compare

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 StrictMode with restarting the Activity stack for deep links (#853)
  • Don't restart Activity stack when there is no deep link (#854)
  • Added backHandlerPriority argument to childContext extension function (#859)
  • Updated Compose to 1.8.0-rc01 and compileSdkVersion to 35 (#870)
  • Added Child Items navigation model (#878, #882, #880)
  • Added PagesNavigator#setItems extension function (#881)
  • Deprecated Value#getValue operator overload (#885, see #877)
  • Exposed ChildPagesPager typealias (#886, see #883)
  • Avoid using Modifier.graphicLayer in 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 ClassCastException in SlotNavigator#dismiss on wasmJs on Kotlin 2.2 (#888, see #879)
  • Explicit error handling in Relay (#899, see #892)
  • Expose StackAnimationScope from ChildStack instead of AnimatedVisibilityScope (#901, #925)
  • Use graphicsLayer with CompositingStrategy.Offscreen in predictive back animations (#919, see #918)
  • Renamed androidPredictiveBackAnimatable to androidPredictiveBackAnimatableV1 (#921)
  • Added androidPredictiveBackAnimatableV2 from Android Vanilla Ice Cream (#923)
  • Fixed incorrect enter shape in androidPredictiveBackAnimatable when not fullscreen (#922)
  • Fixed ChildPages animation sometimes stuck when interrupted (#924)
  • Fixed Child Slot state not saved when not active (#916)
  • Fixed CCE in SlotNavigator#dismiss on wasmJs (#915)
  • Fixed ChildPages composable 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

12 Sep 21:56
3147421

Choose a tag to compare

3.4.0-beta01 Pre-release
Pre-release
  • Fixed Web History Navigation duplicates history items when nested (#933, see #907)

Versions and dependencies

Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.2

3.4.0-alpha05

09 Sep 20:05
1e362ef

Choose a tag to compare

3.4.0-alpha05 Pre-release
Pre-release
  • Fixed ChildPages composable discards the selected index change while not in composition (#930, see #929)

Versions and dependencies

Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.2

3.4.0-alpha04

06 Sep 18:57
6fe25c8

Choose a tag to compare

3.4.0-alpha04 Pre-release
Pre-release
  • Explicit error handling in Relay (#899, see #892)
  • Expose StackAnimationScope from ChildStack instead of AnimatedVisibilityScope (#901, #925)
  • Use graphicsLayer with CompositingStrategy.Offscreen in predictive back animations (#919, see #918)
  • Renamed androidPredictiveBackAnimatable to androidPredictiveBackAnimatableV1 (#921)
  • Added androidPredictiveBackAnimatableV2 from Android Vanilla Ice Cream (#923)
  • Fixed incorrect enter shape in androidPredictiveBackAnimatable when not fullscreen (#922)
  • Fixed ChildPages animation sometimes stuck when interrupted (#924)
  • Fixed Child Slot state not saved when not active (#916)
  • Fixed CCE in SlotNavigator#dismiss on wasmJs (#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

28 Jun 13:10
0c29e40

Choose a tag to compare

3.4.0-alpha03 Pre-release
Pre-release
  • Added JetpackComponentContext API (#895, #896)
  • Updated Compose to 1.8.2 (#897)
  • Fixed ClassCastException in SlotNavigator#dismiss on wasmJs on 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

31 May 12:18

Choose a tag to compare

3.4.0-alpha02 Pre-release
Pre-release
  • Added Child Items navigation model (#878, #882, #880)
  • Added PagesNavigator#setItems extension function (#881)
  • Deprecated Value#getValue operator overload (#885, see #877)
  • Exposed ChildPagesPager typealias (#886, see #883)
  • Avoid using Modifier.graphicLayer in 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

03 May 00:30
a53e5ef

Choose a tag to compare

3.4.0-alpha01 Pre-release
Pre-release
  • Use SPDX identifier in POMs (#851 by @TheMrMilchmann)
  • Relax StrictMode with restarting the Activity stack for deep links (#853)
  • Don't restart Activity stack when there is no deep link (#854)
  • Added backHandlerPriority argument to childContext extension function (#859)
  • Updated Compose to 1.8.0-rc01 and compileSdkVersion to 35 (#870)

Versions and dependencies

Kotlin: 2.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.8.0-rc01

3.3.0

25 Feb 16:29
a7bed35

Choose a tag to compare

Changes since version 3.3.0-beta01

  • Updated Essenty to 2.5.0 (#846)

Earlier changes since version 3.2.0

  • Updated Kotlin to 2.1.0 and other dependencies (#825)
  • Added AnimatedVisibilityScope to ChildPanels content composables (#835)
  • Added isPredictiveBack flag to the experimental stackAnimation function with selector (#826)
  • 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.1.0
Essenty: 2.5.0
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0

3.3.0-beta01

09 Feb 20:26
153587c

Choose a tag to compare

3.3.0-beta01 Pre-release
Pre-release
  • Updated Essenty to 2.5.0-beta01 (#846)

Versions and dependencies

Kotlin: 2.1.0
Essenty: 2.5.0-beta01
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0

3.3.0-alpha03

12 Jan 11:07
fa037ec

Choose a tag to compare

3.3.0-alpha03 Pre-release
Pre-release
  • Updated Kotlin to 2.1.0, Essenty to 2.4.0, AGP to 8.7.3, Gradle to 8.11.1 (#825)
  • Added AnimatedVisibilityScope to ChildPanels content composables (#835)
  • Updated Essenty to 2.5.0-alpha01 (#837)

Versions and dependencies

Kotlin: 2.1.0
Essenty: 2.5.0-alpha01
kotlinx-serialization: 1.6.3
Multiplatform Compose: 1.7.0