Releases: badoo/Decompose
Releases · badoo/Decompose
0.4.0
- Added
Router.bringToFrontextension function (#208) - Expose
BackPressedHandlerfromComponentContext,ComponentContext.backPressedDispatcheris now deprecated (#212) - Avoid saving configurations in
Childrenfunctions (#213) - Minor API fixes in
extensions-androidmodule (#216) - Update documentation about
extensions-androidmodule (#218) - Added
RouterStateconstructor overload (#220) - Clean-up deprecated code (#241)
- Check configuration uniqueness in
Router(#244) - Enabled Apple silicon targets (#246)
- Removed
RouterFactoryinterface (#251) - Removed
Navigatorinterface (#252) - Moved
Routertoroutersub-package (#253) - Added
lifecycleargument toComponentContext.childContextextension 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:
ComponentContextnow exposesbackPressedHandlerproperty, thebackPressedDispatcherproperty is deprecated (motivation: #205, pull-request: #212)- There were minor API fixes in
extensions-androidmodule (pull-request: #216), please check the updated documentation (pull-request: #218) - All previously deprecated code with
WARNINGlevel now hasERRORlevel, all previously deprecated code withERRORlevel is removed (pull-request #241) - The
Routernow checks that all configurations are unique (as per the documentation), and throws an error if this is not the case (pull-request #244) - The
RouterFactoryinterface is removed and is no longer extended byComponentContext, itsrouter(...): Routermethod is now an extension function (pull-request #251) - The
Navigatorinterface is removed, theRouterinterface is now responsible for navigation - The
Routerand its surroundings are moved fromcom.arkivanov.decomposetocom.arkivanov.decompose.routerpackage (pull-request: #253) - Added
lifecycleargument toComponentContext.childContextextension 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,InstanceKeeperandBackPressedDispatcher(#187, #189) - Update Jetpack Compose to
1.0.0and JetBrains Compose to0.5.0-build253(#195) - Deprecated
rememberRootComponentfunctions (#193) - Added
LifecycleController@Composablefunction 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
watchostargets (#156 by @plusmobileapps) - Added
ensureNeverFrozento mutable classes (#145) - Added
Childrenfunction overloads withRouterStateargument (#146) - Deprecated
@Composable fun Value.asState(): State, introduced@Composable fun Value.subscribeAsState(): State(#134) - Fixed
crossfadedoes 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 wholeRouterStateinstead of justChild.Created) (#94) - Enabled IR compiler for JavaScript (#98)
- Introduced
StateKeeper,InstanceKeeperandBackPressedDispatcherbuilders for AndroidX, deprecated extensionsSavedStateRegistry.toStateKeeper,ViewModelStore.toInstanceKeeperandOnBackPressedDispatcher.toBackPressedDispatcher(#87) - Added
isSavingAllowedpredicate to AndroidXStateKeeperbuilder (#88) - Breaking: extracted inner class
RouterState.Entryas a top-level classChild, argumentChildren(..., content)now acceptsChildinstead of pairComponent, Configuration(#91) - Relaxed
Configurationgeneric types fromParcelabletoAnywhere possible (#92) - Breaking: renamed property
Child.Created.componenttoChild.Created.instance, renamed argumentrouter(..., componentFactory)torouter(..., childFactory)(#93) - Fixed default
InstanceKeepernot being destroyed at the end of lifecycle (#90) - Fixed state not being saved in
ChildStateKeeper(#95)