2.5.0-alpha02
Pre-release
Pre-release
New Features:
- Remote Debugging! A new module family
debugger-*
allows to debug your stores remotely, with a dedicated app provided for Linux, MacOS, Windows. Also, the debugger app is implemented usingFlowMVI
and can be used as a sample app. Debugger setup explained in docs. - Essenty Integration! Two new modules:
essenty
andessenty-compose
provide integration with Decompose and Essenty libraries. Essenty setup explained in docs - New Lifecycle Implementation for store subscription in Compose. The Compose module now provides an interface
SubscriberLifecycle
that has to be provided to thesubscribe
function to subscribe to the store. It also allows integration with Platform lifecycle (when it is made multiplatform) and Essenty lifecycle. - Refactoring of StoreLogging allowed to provide a more robust logging code on all supported platforms. You can now provide your own
StoreLogger
implementation or use the platform one as before. - Wasm support for core, test and compose modules! Also enables missing
js
support for compose module. - Compose 1.6.3
- New flag
atomicStateUpdates
in store builders allows disabling serialization / atomicity of state updates if that is not needed, improving performance.true
by default - Project Icon, banner, and star history
- New overload of
store.subscribe()
that does not require a scope ( awith()
call)
Bug Fixes:
- Fixed file name for
serializeState
function using store name - Fix
Saver
s handling cancellation exceptions - Added a missing overload of
timeTravel
that would create and return the object for the user
Breaking Changes:
- Compose's
subscribe
function now requires the consumer to pass a lifecycle to it as a parameter on all platforms where lifecycle is not supported to prevent the user from mistakenly subscribing to the store without using a properlifecycle
. Lifecycle implementations can be custom, provided via a composition local, or used from an integration module. To maintain a previous behavior on non-Android platforms, pass aDefaultLifecycle
as a parameter to thesubscribe
function. Android users don't have this breaking change. - Store implementations now require a hashcode/equals contract
- When store has actions disabled, it will now throw an
UnrecoverableException
to fail faster and avoid recover plugins - Deprecated
parentStorePlugin
in favor of a simplestore.collect
suspending function. It's much more flexible and allows to merge the incoming state with other data sources - Deprecated
platformLoggingPlugin
as a defaultloggingPlugin
now uses a platform logger by default
What's Changed
- 2.5.0 by @Nek-12 in #40
- 2.5.0-alpha02 by @Nek-12 in #41
Full Changelog: 2.4.1...2.5.0-alpha02