Releases: eliekarouz/FeedbackTree
0.16.0
Drop support of ViewModal
The concept of ViewModal
has been extracted from the core library of FeedbackTree. It's now integrated into the sample application. This arrangement allows developers to draw inspiration from this code and devise their own solutions. As the FeedbackTree core library might not encompass all scenarios for every individual, this approach opens avenues for tailored implementations.
Flow Id
Introduction of FlowId
0.15.0
We are not any more enqueing UI events coming from the bind feedback.
If an event is emitted while rendering, the event will be processed immediately but a new rendering pass will kickstart after the current one ends.
0.14.0
- Upgrade Kotlin 1.7.20
- Modify gradle build scripts, github workflows and publishing
0.11.1 - Kotlin 1.4.10
New changes
Upgrade to Kotlin 1.4.10
Bug Fixes
[#1] Removing the backHandler when unsubscribing from View.backPresses()
0.11 - Kotlin 1.4
Upgrade to Kotlin 1.4
0.10.2 - Bug Fixes...
Fix a bug when trying to render back to back modals with custom content.
0.10.1 - Bug Fixes...
Fix a bug that occurs when you are trying to render multiple flows.
0.10.0 - On the Multiplatform track
You don't inherit from Flow
anymore. The Flow
is now a data class
and you just have to provide the lambdas necessary to run the flow like the initialState
, stepper
, and, render
functions.
We are planning to make this library compatible with Kotlin Native. Step and Stepper Factory were moved to Kotlin-Multiplatform module.
We are currently building a documentation website that you can find here.
0.9.1 - Bug fixes...
Fix a bug in the way we are computing the screen height... The bug appears only on some devices.
0.9 - Goodbye Reducers... Welcome Steppers...
This release includes breaking changes...
Steppers replacing reducers
When the State
is sealed class
, you had to add a completed or terminal state in order to complete the flow. The ugliest part was that in the render
method you had to take care of that terminal state although the render function will never be called when you reach the end state.
Reducers
, i.e. (State, Event) -> State
, are now deprecated and are replaced with the concept of Steppers
, i.e. (State, Event) -> Step<State, Output>
.
A Step
will be either a new State
or the Output
. When a State
is returned, we move forward with the Flow
and when an Output
is returned, the Flow
completes and Output
is passed to the parent Flow
.
Two utility methods are provided to simplify the creation of a Step
:
NewState(...).advance()
endFlowWith(Output)
Check out the StepperFactory.create
to see how to build Steppers
using Kotlin DSL
bind
vs bindWithScheduler
In case you don't need the Scheduler
of the Flow
when creating a Binding
feedback, use bind
as it immediately gives you the stream of States
/ViewModels
. In case, you need the Scheduler
to control the cancelation of effects
, you can usebindWithScheduler
...