Releases: arkivanov/Decompose
1.0.0-alpha-01-native-compose
This is the same release as 1.0.0-alpha-01, but with Compose for iOS support:
Versions and dependencies
Kotlin: 1.7.0
Essenty: 0.5.2
JetBrains Compose: 1.2.0-alpha01-dev753
0.8.0
- Deprecated
Router
and introducedChild Stack
(#135, #136, #137, #140, #142, #143) - Deprecated
ValueObserver
typealias (#139)
The new Child Stack
The Router
and all its surroundings are now deprecated. There is new concept introduced - Child Stack
. It is located in a separate package and doesn't conflict with Router
. The main purpose of introducing Child Stack
is to bring more flexibility and compile time safety. And also to allow the room for another kinds of routing in the future.
Please refer to the updated docs and #134 for more information.
Migration tips
// Before
interface Root {
val routerState: Value<RouterState<*, Child>>
}
class RootComponent(componentContext: ComponentContext): ComponentContext by componentContext {
private val router = router<Config, Child>(..., childFactory = ::child)
override val routerState = router.state
private fun foo() {
router.push()
router.pop()
}
}
@Composable
fun RootContent(component: Root) {
val routerState by component.routerState.observeAsState()
Children(routerState = routerState, ...) {
// ...
}
}
// After
interface Root {
val childStack: Value<ChildStack<*, Child>>
}
class RootComponent(componentContext: ComponentContext): ComponentContext by componentContext {
private val navigation = StackNavigation<Config>()
private val stack = childStack(source = navigation, ..., childFactory = ::child)
override val childStack = stack
private fun foo() {
navigation.push()
navigation.pop()
}
}
@Composable
fun RootContent(component: Root) {
val stack by component.childStack.observeAsState()
Children(stack = stack, ...) {
// ...
}
}
Breaking changes
There are no breaking changes in this release, it should be both binary and source compatible.
Versions and dependencies
Kotlin: 1.6.10
Essenty: 0.2.2
extensions-compose-jetpack
Jetpack Compose: 1.1.1
Jetpack Compose Compiler: 1.1.1
extensions-compose-jetbrains
JetBrains Compose: 1.1.0
0.8.0-native-compose-02
This is the same release as 0.8.0, but with Compose for iOS support:
Versions and dependencies
Kotlin: 1.7.0
Essenty: 0.4.2
JetBrains Compose: 1.2.0-alpha01-dev745
0.7.0-native-compose-02
- Updated Kotlin to
1.7.0
, Compose to1.2.0-alpha01-dev741
, Essenty to0.4.2
, AGP to7.2.0
, Gradle to7.4.2
(#141)
Versions and dependencies
Kotlin: 1.7.0
Essenty: 0.4.2
JetBrains Compose: 1.2.0-alpha01-dev745
0.7.0-native-compose-01
This is the same release as 0.7.0, but with the following changes:
extensions-compose-jetbrains
supports additional targets:iosX64
,iosArm64
,macosX64
andmacosArm64
(iosSimulatorArm64
is not yet supported, because Compose doesn't support it)extensions-compose-jetpack
module is removed
Versions and dependencies
Kotlin: 1.6.21
Essenty: 0.2.2
JetBrains Compose: 1.2.0-alpha01-dev716
0.7.0
- Added
onComplete
callback toRouter.popWhile(...)
function (#104 by @Tommyten) - Added
onComplete
callback toRouter.push(...)
,Router. replaceCurrent(...)
andRouter. bringToFront(...)
functions (#128) - Added
ensureNeverFrozen
toMutableValue
(#116) - Interfaces
DefaultWebHistoryController.Window
andDefaultWebHistoryController.History
are markedinternal
(#127) - Fixed
DefaultWebHistoryController
not working on Chrome for iOS (#127)
Versions and dependencies
Kotlin: 1.6.10
Essenty: 0.2.2
extensions-compose-jetpack
Jetpack Compose: 1.1.1
Jetpack Compose Compiler: 1.1.1
extensions-compose-jetbrains
JetBrains Compose: 1.1.0
0.6.0-native-compose-01
0.6.0-native-compose
This is the same release as 0.6.0, but with the following changes:
extensions-compose-jetbrains
supports additional targets:iosX64
,iosArm64
,macosX64
andmacosArm64
(iosSimulatorArm64
is not yet supported, because Compose doesn't support it)extensions-compose-jetpack
module is removed
The sample was updated with Compose for iOS - sample/app-darwin-compose.
Versions and dependencies
Kotlin: 1.6.20
Essenty: 0.2.2
extensions-compose-jetbrains
JetBrains Compose: 0.0.0-on-rebase-12-apr-2022-dev668
0.6.0
Changes
- Updated Compose animations API (different animations for different children, combining animators) (#53, #67)
- Added
onComplete
callback toRouter.navigate
andRouter.pop
functions (#66) - Disabled interactions while animating Compose children (#58)
- Tidied deprecated code (#64)
Versions and dependencies
Kotlin: 1.6.10
Essenty: 0.2.2
extensions-compose-jetpack
Jetpack Compose: 1.1.1
Jetpack Compose Compiler: 1.1.1
extensions-compose-jetbrains
JetBrains Compose: 1.1.0
Breaking changes
The Compose animations API is significantly changed. The main idea is to allow different animations for different children. Also it is now possible to combine animators using the +
operator. This is both source and binary incompatible change. Please refer to the updated documentation.
The Router.navigate
function got a second argument - the onComplete
callback. The old Router.navigate
function with one argument is now an extension function, for convenience. The Router.pop
extension function got the onComplete
callback as well. It doesn't throw an exception anymore in case when the back stack is empty. Instead, the onComplete
callback is called with a result. This is both source and binary incompatible change. Please refer to the updated documentation.
All deprecated code with Level.ERROR
is removed. All deprecations with Level.WARNING
are promoted to Level.ERROR
.