Releases: badoo/Decompose
Releases · badoo/Decompose
0.4.0
- Added
Router.bringToFront
extension function (#208) - Expose
BackPressedHandler
fromComponentContext
,ComponentContext.backPressedDispatcher
is now deprecated (#212) - Avoid saving configurations in
Children
functions (#213) - Minor API fixes in
extensions-android
module (#216) - Update documentation about
extensions-android
module (#218) - Added
RouterState
constructor overload (#220) - Clean-up deprecated code (#241)
- Check configuration uniqueness in
Router
(#244) - Enabled Apple silicon targets (#246)
- Removed
RouterFactory
interface (#251) - Removed
Navigator
interface (#252) - Moved
Router
torouter
sub-package (#253) - Added
lifecycle
argument toComponentContext.childContext
extension function (#254) - Updated Kotlin to 1.5.30, Jetpack and JetBrains Compose to 1.0.3 and 1.0.0-alpha4-build348 (#234)
- Fixed a memory leak in
MergedLifecycle
(#238) - Add documentation for navigation, extension functions, and hierarchy (#219 by @plusmobileapps)
- Additional documentation updates (#215, #218, #222 by @moffpage, #233 by @Morfly)
Breaking changes
This release brings various API changes:
ComponentContext
now exposesbackPressedHandler
property, thebackPressedDispatcher
property is deprecated (motivation: #205, pull-request: #212)- There were minor API fixes in
extensions-android
module (pull-request: #216), please check the updated documentation (pull-request: #218) - All previously deprecated code with
WARNING
level now hasERROR
level, all previously deprecated code withERROR
level is removed (pull-request #241) - The
Router
now checks that all configurations are unique (as per the documentation), and throws an error if this is not the case (pull-request #244) - The
RouterFactory
interface is removed and is no longer extended byComponentContext
, itsrouter(...): Router
method is now an extension function (pull-request #251) - The
Navigator
interface is removed, theRouter
interface is now responsible for navigation - The
Router
and its surroundings are moved fromcom.arkivanov.decompose
tocom.arkivanov.decompose.router
package (pull-request: #253) - Added
lifecycle
argument toComponentContext.childContext
extension function, with default value beingnull
(motivation: #227, pull-request: #254)
The documentation is updated to reflect all the changes.
Migration
You can use the attached script in the "Assets" section of this release, which updates imports in Kotlin files recursively, due to Router
moved to the router
sub-package.
0.3.1
0.3.0
- Used Essenty library, removed
Parcelable
,@Parcelize
,Lifecycle
,StateKeeper
,InstanceKeeper
andBackPressedDispatcher
(#187, #189) - Update Jetpack Compose to
1.0.0
and JetBrains Compose to0.5.0-build253
(#195) - Deprecated
rememberRootComponent
functions (#193) - Added
LifecycleController
@Composable
function toextensions-compose-jetbrains
(#197) - Updated documentation (#191)
Breaking changes
Please familiarise yourself with the updated documentation.
Essenty library
Parcelable
, @Parcelize
, Lifecycle
, StateKeeper
, InstanceKeeper
, BackPressedDispatcher
and related things were extracted to the Essenty library, and so Decompose now depends on Essenty. This change makes Decompose and MVIKotlin compatible. It also allows developers to use Essenty library without any extra dependencies.
0.2.6
0.2.5
- Updated Kotlin to
1.5.10
, Jetpack Compose to1.0.0-beta08
, JetBrains Compose to4.0.0
(#160) - Added
watchos
targets (#156 by @plusmobileapps) - Added
ensureNeverFrozen
to mutable classes (#145) - Added
Children
function overloads withRouterState
argument (#146) - Deprecated
@Composable fun Value.asState(): State
, introduced@Composable fun Value.subscribeAsState(): State
(#134) - Fixed
crossfade
does not preserve state (#137)
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
- Starting from this release Decompose is published to Maven Central
- Added experimental animations API (Breaking: the
Children(..., animation, ...)
argument's signature is changed, the callback now accepts the wholeRouterState
instead of justChild.Created
) (#94) - Enabled IR compiler for JavaScript (#98)
- Introduced
StateKeeper
,InstanceKeeper
andBackPressedDispatcher
builders for AndroidX, deprecated extensionsSavedStateRegistry.toStateKeeper
,ViewModelStore.toInstanceKeeper
andOnBackPressedDispatcher.toBackPressedDispatcher
(#87) - Added
isSavingAllowed
predicate to AndroidXStateKeeper
builder (#88) - Breaking: extracted inner class
RouterState.Entry
as a top-level classChild
, argumentChildren(..., content)
now acceptsChild
instead of pairComponent, Configuration
(#91) - Relaxed
Configuration
generic types fromParcelable
toAny
where possible (#92) - Breaking: renamed property
Child.Created.component
toChild.Created.instance
, renamed argumentrouter(..., componentFactory)
torouter(..., childFactory)
(#93) - Fixed default
InstanceKeeper
not being destroyed at the end of lifecycle (#90) - Fixed state not being saved in
ChildStateKeeper
(#95)