(#195): Updated Kotlin to 1.9.23
(#193): Updated Kotlin to 1.8.10
(#179):
Introduced the ability to specify observation scheduler within the Binder
class (see the observeOn
DSL below), as well as the observeOn
infix operator for Connection
class (related to Binder
).
An example of how you might use this is as follows:
// mvicore-android example
testLifecycleOwner.lifecycle.createDestroy {
observeOn(mainScheduler) {
bind(events to uiConsumer1)
bind(events to uiConsumer2)
}
observeOn(backgroundScheduler) {
bind(events to backgroundConsumer1)
bind(events to backgroundConsumer2)
}
bind(events to uiConsumer3 observeOn mainScheduler)
bind(events to backgroundConsumer3 observeOn backgroundScheduler)
}
// binder example
binder.observeOn(mainScheduler) {
bind(events to uiConsumer1)
bind(events to uiConsumer2)
}
See more details in advanced binder section.
(#177): Updated AndroidX appcompat to 1.4.1 and lifecycle to 2.5.1. Also updated Compile and Target SDK to API 33.
(#176): Updated RxJava to 2.2.21 and RxKotlin to 2.4.0
(#173): Updated Kotlin to 1.7.10
(#162): Updated Kotlin to 1.6.21 (the plan is to update to 1.7.x fairly soon)
(#138): Fixed regression related to BaseFeature actor.
The Actor subject was made serializable, and was also using a flatMap. Both of these changes caused a change in behaviour relating to the ordering of news (in features that have a PostProcessor which triggers extra actions).
This change was made as part of introducing the optional FeatureScheduler
to BaseFeature
.
If you provide a FeatureScheduler
and use a PostProcessor, please be aware that the ordering of your news could change.
The previous news ordering behaviour is actually a bug in BaseFeature caused by recursion, and will hopefully be addressed (as an opt in change) in a future release.
(#147):
Introduced 'async' feature which is moves work to a dedicated single-threaded feature scheduler
, while being observable on the observation scheduler
(#148): Updated mockito-kotlin library.
(#150): Fixed Bootstrapper variance.
(#150): Minor improvements to the new 'async' feature.
(#158):
Introduced an optional FeatureScheduler
which can be used with non-async features.
This is useful when a feature is instantiated on a thread other than the thread it should be bound to (for example the UI thread).
When providing a FeatureScheduler
, the feature is able to correctly switch to its desired thread rather than throwing an exception.
(#160): Changed to Java 8 compatibility
(#161):
Improved the error message thrown by SameThreadVerifier
. It now includes the feature's class name and the thread names.
(#138): Generated templates plugin to be able to work on AndroidStudio 4.1. Fixes (#135).
(#134): Migrated project to AndroidX.
(#129):
Extracted binder from mvicore module. To continue using it, please add this additional dependancy: com.github.badoo.mvicore:binder:x.x.x
.
(#112): Update model watcher dsl to support sealed classes.
(#113): Updated inspector plugin Android Studio version to 2019.2.
(#106):
Improve type signatures for ModelWatcher
. This does not impact the existing API.
(#102):
Changed the gradle artifact group id from com.github.badoo
to com.github.badoo.mvicore
Ensure that you update your gradle build files (i.e. com.github.badoo.mvicore:binder:x.x.x
)
(#98): Fix issues with inspector plugin
(#100): Fix 1.2.0 debug drawer build
(#66):
Connection
is updated to provide information about both ObservableSource
and Consumer
types.
ConsumerMiddleware<In>
is replaced by Middleware<Out, In>
to provide access to both input and output types of the Connection
.
(#73):
Allows transformer to access to the stream between Source
and Consumer
. See more details in
advanced binder section.
(#76):
MemoFeature
which keeps latest accepted state.
(#82): Organized way of diffing fields in model to provide more efficient view updates. More information here.
(#77): Idea plugin to observe elements of connections based on middlewares. Read about it here.