Releases: arkivanov/Decompose
2.0.0-compose-experimental-alpha-01
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
Changes since 1.0.0-beta-04
-
- Kotlin
1.8.0
- JB Compose
1.3.0
- Jetpack Compose compiler
1.4.0
- Essenty
1.0.0
parcelize-darwin
0.1.3
- Kotlin
-
Added
defaultComponentContext
extension for AndroidFragment
(#305) -
Generic Navigation is promoted to stable (#313)
-
Stack animation API is promoted to stable (#314)
-
ViewContext
now extendsLifecycleOwner
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
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
- Added non-parcelable overloads for
childStack
andchildOverlay
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
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
- Added
backStackCreateDepth
argument toChild Stack
(#293, #295) - Added
persistent
argument toChild 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
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
- Added
minAlpha
argument tofade
animator (#270) - Added a convenience overload function
ComponentContext#children
withParcelable
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
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
- Added
SimpleNavigation
and exposedSimpleChildNavState
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 tostackAnimation
function (#264) - Converted
StackAnimation
andStackAnimator
interfaces tofun
interfaces (#265) - Moved
StackNavigation
andOverlayNavigation
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