Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing (navigation) and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.)
APACHE-2.0 License
Bot releases are hidden (Show)
Published by arkivanov 10 months ago
kotlinx-serialization
(#553)wasmJs
target for browser (#564)extensions-compose-jetbrains
module to extensions-compose
(#559)Value#subscribe
and Value#unsubscribe
methods (#554)predictiveBackAnimation
animation
argument to fallbackAnimation
(#555)STARTED
status to ChildNavState
(#557)The extensions-compose-jetpack
module is removed, the extensions-compose-jetbrains
is renamed to extensions-compose
. Please update your dependencies accordingly and replace all com.arkivanov.decompose.extensions.compose.jetbrains.*
imports with com.arkivanov.decompose.extensions.compose.*
.
Starting with this release there is no need to use -compose-experimental
version suffix. The support of Compose for iOS, macOS and Web is now published under the main version.
Starting with this release Compose for Wasm (wasmJs
target) is also supported.
This release completes the migration to kotlinx-serialization
and removes the support of Parcelable/Parcelize. See the updated docs for more information.
The ChildNavState.Status
enum (Generic Navigation) has changed and now includes STARTED
variant. Please see the updated docs.
Previously deprecated methods Value#subscribe
and Value#unsubscribe
are removed. The Value#observe
method returning Cancellation
is renamed to subscribe
. The Value.observe(Lifecycle, ...)
method is also renamed to subscribe
.
The defaultComponentContext
function now accepts two new arguments:
discardSavedState
- a flag indicating whether any previously saved state should be discarded or not, default value is false
. Can be useful for handling deep links in onCreate
, so that the navigation state is not restored and initial state from the deep link is applied instead.isStateSavingAllowed
- called before saving the state. When true
then the state will be saved, otherwise it won't. Default value is true
.Kotlin: 1.9.21
Essenty: 2.0.0-alpha01
kotlinx-serialization: 1.6.2
JetBrains Compose: 1.6.0-alpha01
Published by arkivanov 10 months ago
This is the same release as 2.2.1, but with Compose for iOS and Web (Canvas, js
only) support.
Kotlin: 1.9.21
Essenty: 1.3.0
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.3
JetBrains Compose: 1.5.11
Published by arkivanov 10 months ago
1.9.21
, Jetpack Compose compiler to 1.5.6
, Multiplatform Compose to 1.5.11
(#539)Kotlin: 1.9.21
Essenty: 1.3.0
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.3
Jetpack Compose: 1.5.0
Jetpack Compose Compiler: 1.5.6
JetBrains Compose: 1.5.11
Published by arkivanov 11 months ago
This is the same release as 2.2.0, but with Compose for iOS and Web (Canvas, js
only) support.
Kotlin: 1.9.20
Essenty: 1.3.0
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.3
JetBrains Compose: 1.5.10
Published by arkivanov 11 months ago
1.3.0
(#547)NSInvalidArgumentException
crash in ApplicationLifecycle
(#545)kotlinx-serialization
, deprecated Parcelable APIs (#486)key
argument to Pages
(#494)pushNew
extension function for StackNavigator
(#499, #514)materialPredictiveBackAnimatable
as a default animation (#533)ApplicationLifecycle
for iOS and tvOS targets (#527)PredictiveBackGestureOverlay
(#535 by @alexzhirkevich, #538)1.9.20
and other dependencies (#521)Please see the previous release notes for more information and guidance:
Kotlin: 1.9.20
Essenty: 1.3.0
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.3
Jetpack Compose: 1.5.0
Jetpack Compose Compiler: 1.5.4
JetBrains Compose: 1.5.10
Published by arkivanov 11 months ago
TBD (publishing in progress)
Published by arkivanov 11 months ago
materialPredictiveBackAnimatable
as a default animation (#533)PredictiveBackGestureOverlay
(#538)PredictiveBackGestureOverlay
swipe edges not changing (#535 by @alexzhirkevich)materialPredictiveBackAnimatable
APIThis release adds the new materialPredictiveBackAnimatable
function that resembles the predictive back design for Android. This animation is used by default on all platforms.
Kotlin: 1.9.20
Essenty: 1.3.0-beta01
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.3
Jetpack Compose: 1.5.0
Jetpack Compose Compiler: 1.5.4
JetBrains Compose: 1.5.10
Published by arkivanov 11 months ago
TBD
Published by arkivanov 11 months ago
TBD (publishing in progress)
Published by arkivanov 11 months ago
TBD (publishing in progress)
Published by arkivanov 11 months ago
TBD (publishing in progress)
Published by arkivanov 11 months ago
TBD (publishing in progress)
Published by arkivanov 12 months ago
This is the same release as 2.2.0-alpha04, but with Compose for iOS and Web (Canvas, js
only) support.
Kotlin: 1.9.10
Essenty: 1.3.0-alpha03
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.2
JetBrains Compose: 1.5.1
Published by arkivanov 12 months ago
1.3.0-alpha03
(#520)Kotlin: 1.9.10
Essenty: 1.3.0-alpha03
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.2
Jetpack Compose: 1.5.3
Jetpack Compose Compiler: 1.5.3
JetBrains Compose: 1.5.1
Published by arkivanov 12 months ago
This is the same release as 2.1.4, but with Compose for iOS and Web (Canvas, js
only) support.
Kotlin: 1.9.10
Essenty: 1.2.0
parcelize-darwin: 0.2.1
JetBrains Compose: 1.5.1
Published by arkivanov 12 months ago
Kotlin: 1.9.10
Essenty: 1.2.0
parcelize-darwin: 0.2.1
Jetpack Compose: 1.5.3
Jetpack Compose Compiler: 1.5.3
JetBrains Compose: 1.5.1
Published by arkivanov 12 months ago
This is the same release as 2.2.0-alpha03, but with Compose for iOS and Web (Canvas, js
only) support.
Kotlin: 1.9.10
Essenty: 1.3.0-alpha02
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.2
JetBrains Compose: 1.5.1
Published by arkivanov 12 months ago
Pages(onPageSelected)
callback called multiple times and not rendering the current page sometimes (#503)pushNew
extension function for StackNavigator
(#499, #514)PredictiveBackAnimatable
API (#507, #515)pushNew
navigation functionThis release introduces the new navigation function for Child Stack: pushNew
. It allows pushing a configuration only if it's not already on top of the stack. Can be useful for pushing components on button clicks, etc. Please see the updated docs.
This release contains some improvements for the Predictive Back Gesture API, bringing it closer to become stable. The new API allows creating more complex custom transitions.
- import com.arkivanov.decompose.extensions.compose.jetbrains.stack.animation.predictiveBackAnimation
+ import com.arkivanov.decompose.extensions.compose.jetbrains.stack.animation.predictiveback.predictiveBackAnimation
- import com.arkivanov.decompose.extensions.compose.jetbrains.stack.animation.predictiveBackAnimation
+ import com.arkivanov.decompose.extensions.compose.jetbrains.stack.animation.predictiveback.predictiveBackAnimatable
+ import com.arkivanov.decompose.extensions.compose.jetbrains.stack.animation.predictiveback.predictiveBackAnimation
Children(
stack = component.childStack,
modifier = modifier,
animation = predictiveBackAnimation(
backHandler = component.backHandler,
animation = stackAnimation(fade() + scale()),
- exitModifier = { progress, edge -> ... },
- enterModifier = { progress, edge -> ... },
+ selector = { initialBackEvent, _, _ ->
+ predictiveBackAnimatable(
+ initialBackEvent = initialBackEvent,
+ exitModifier = { progress, edge -> ... },
+ enterModifier = { progress, edge -> ... },
+ )
+ },
onBack = component::onBackClicked,
),
) {
...
}
Kotlin: 1.9.10
Essenty: 1.3.0-alpha02
kotlinx-serialization: 1.6.0
parcelize-darwin: 0.2.2
Jetpack Compose: 1.5.3
Jetpack Compose Compiler: 1.5.3
JetBrains Compose: 1.5.1
Published by arkivanov 12 months ago
TBD (publishing in progress)
Published by arkivanov 12 months ago
TBD (publishing in progress)