Skip to content

Releases: arkivanov/Decompose

2.0.0-compose-experimental-alpha-01

04 Apr 13:04
Compare
Choose a tag to compare
Pre-release

This is the same release as 2.0.0-alpha-01, but with Compose for iOS and Web (Canvas) support.

Versions and dependencies

Kotlin: 1.8.0
Essenty: 1.0.0
parcelize-darwin: 0.1.3
JetBrains Compose: 1.3.1

1.0.0

02 Feb 20:41
2f22432
Compare
Choose a tag to compare

Changes since 1.0.0-beta-04

  • Version updates (#311, #320):

    • Kotlin 1.8.0
    • JB Compose 1.3.0
    • Jetpack Compose compiler 1.4.0
    • Essenty 1.0.0
    • parcelize-darwin 0.1.3
  • Added defaultComponentContext extension for Android Fragment (#305)

  • Generic Navigation is promoted to stable (#313)

  • Stack animation API is promoted to stable (#314)

  • ViewContext now extends LifecycleOwner interface (extensions-android module) (#322)

The new defaultComponentContext extension function

This release adds a new extension function for Android Fragments - Fragment#defaultComponentContext. Now integrating a root component into a Fragment is as easy as with Activity. Plus it's now possible to use OnBackPressedDispatcher from the hosting Activity. See the updated docs for more information.

Generic Navigation is promoted to stable

Generic Navigation API is now stable and is no longer annotated with @ExperimentalDecomposeApi. The ComponentContext#children function got a new callback - onStateChanged. Also most of the arguments were renamed and reordered. See the updated docs for more information.

Stack animation API is promoted to stable

Stack animation API is now stable and is no longer annotated with @ExperimentalDecomposeApi. There are no changes in the API.

Versions and dependencies

Kotlin: 1.8.0
Essenty: 1.0.0
parcelize-darwin: 0.1.3

extensions-compose-jetpack

Jetpack Compose: 1.2.1
Jetpack Compose Compiler: 1.4.0

extensions-compose-jetbrains

JetBrains Compose: 1.3.0

1.0.0-compose-experimental

02 Feb 21:49
eda866f
Compare
Choose a tag to compare
Pre-release

This is the same release as 1.0.0, but with Compose for iOS and Web (Canvas) support.

Versions and dependencies

Kotlin: 1.8.0
Essenty: 1.0.0
parcelize-darwin: 0.1.3
JetBrains Compose: 1.3.0

1.0.0-beta-04

11 Jan 19:52
cfcd329
Compare
Choose a tag to compare
  • Added non-parcelable overloads for childStack and childOverlay functions (#300)

New overloads for childStack and childOverlay functions

The new overloads allow non-parcelable configurations with manual (and optional) saving and restoration.

Versions and dependencies

Kotlin: 1.7.20
Essenty: 0.8.0
parcelize-darwin: 0.1.2

extensions-compose-jetpack

Jetpack Compose: 1.2.1
Jetpack Compose Compiler: 1.3.2

extensions-compose-jetbrains

JetBrains Compose: 1.2.0

1.0.0-beta-04-native-compose

14 Jan 09:09
Compare
Choose a tag to compare
Pre-release

This is the same release as 1.0.0-beta-04, but with Compose for iOS support.

Versions and dependencies

Kotlin: 1.7.20
Essenty: 0.8.0
parcelize-darwin: 0.1.2
JetBrains Compose: 1.2.0

1.0.0-beta-03

04 Jan 11:44
fc7f226
Compare
Choose a tag to compare
  • Added backStackCreateDepth argument to Child Stack (#293, #295)
  • Added persistent argument to Child Stack (#294)
  • Updated Essenty to 0.8.0 (#296)

The new backStackCreateDepth argument

The ComponentContext.children extension function got the new argument - backStackCreateDepth. It allows you to specify the amount of components on top of the back stack that are always created. This is useful e.g. for swipe-back navigation on iOS - when you drag the active screen, the previous screen is visible behind. Please see the updated docs for more information.

The new persistent argument

The ComponentContext.children extension function got the new argument - persistent. It allows you to disable the persistence of the navigation state - e.g. the initial stack will be used every time the screen is recreated. Please see the updated docs for more information.

Essenty update to 0.8.0

The new Essenty release 0.8.0 brings state preservation on JVM/desktop. It's now possible to save the navigation and app's state via StateKeeper on JVM/desktop. Please refer to the update sample app for more information, or check out the related PR #297.

Versions and dependencies

Kotlin: 1.7.20
Essenty: 0.8.0
parcelize-darwin: 0.1.2

extensions-compose-jetpack

Jetpack Compose: 1.2.1
Jetpack Compose Compiler: 1.3.2

extensions-compose-jetbrains

JetBrains Compose: 1.2.0

1.0.0-beta-03-native-compose

04 Jan 22:11
Compare
Choose a tag to compare
Pre-release

This is the same release as 1.0.0-beta-03, but with Compose for iOS support.

Versions and dependencies

Kotlin: 1.7.20
Essenty: 0.8.0
parcelize-darwin: 0.1.2
JetBrains Compose: 1.2.0

1.0.0-beta-02

16 Dec 09:29
fe80970
Compare
Choose a tag to compare
  • Added minAlpha argument to fade animator (#270)
  • Added a convenience overload function ComponentContext#children with Parcelable navigation state (#279)
  • Applied parcelize-darwin plugin, updated Essenty to 0.7.0 (#286)

The new parcelize-darwin plugin

This release adds an experimental support of Parcelize on all Darwin (Apple) targets! Which means it's now possible to preserve the navigation state and any other Parcelable data not only on Android. Please read the updated docs.

This change shouldn't affect your project's runtime. If you have any problems or questions, please file an issue or a discussion.

Versions and dependencies

Kotlin: 1.7.20
Essenty: 0.7.0
parcelize-darwin: 0.1.2

extensions-compose-jetpack

Jetpack Compose: 1.2.1
Jetpack Compose Compiler: 1.3.2

extensions-compose-jetbrains

JetBrains Compose: 1.2.0

1.0.0-beta-02-native-compose

16 Dec 09:30
Compare
Choose a tag to compare
Pre-release

This is the same release as 1.0.0-beta-02, but with Compose for iOS support.

Versions and dependencies

Kotlin: 1.7.20
Essenty: 0.7.0
parcelize-darwin: 0.1.2
JetBrains Compose: 1.2.0

1.0.0-beta-01

19 Nov 18:11
7c5c859
Compare
Choose a tag to compare
  • Added SimpleNavigation and exposed SimpleChildNavState for custom navigation implementations (#249)
  • Added main thread checks to MutableValue (#259)
  • Provide old and new child stacks in StackRouterView#children function (#260)
  • Added disableInputDuringAnimation argument to stackAnimation function (#264)
  • Converted StackAnimation and StackAnimator interfaces to fun interfaces (#265)
  • Moved StackNavigation and OverlayNavigation factory functions next to the corresponding interfaces (#267)

The first Beta release

This is the first Beta release! Which means that all API that is not explicitly marked with ExperimentalDecomposeApi is now considered stable.

Main thread checks in MutableValue

MutableValue now checks for the main thread when its value is changed. This is to prevent race conditions and other unexpected bugs. Please test your projects to make sure you access only from the main thread.

The new disableInputDuringAnimation argument

The Children function disables the input and touch events while the animation is in progress. This has been the default behaviour for some time. Now the new disableInputDuringAnimation argument provides the ability to disable this behaviour. The default value is true so there is no behaviour change.

Breaking changes

Main decompose module

The main decompose module is source compatible with the previous release 1.0.0-alpha-07, but is not binary compatible. This is because StackNavigation and OverlayNavigation factory functions were moved to another file in the same package, next to corresponding interfaces.

Compose extension modules

Both extensions-compose-jetpack and extensions-compose-jetbrains modules are source and binary compatible with 1.0.0-alpha-07.

extensions-android module

The extensions-android is not source and binary compatible. This is because the StackRouterView#children function's signature has changed. Now both the new stack and the old stack are provided, so better animations are possible. See #260 for more information.

Versions and dependencies

Kotlin: 1.7.20
Essenty: 0.6.0

extensions-compose-jetpack

Jetpack Compose: 1.2.1
Jetpack Compose Compiler: 1.3.2

extensions-compose-jetbrains

JetBrains Compose: 1.2.0