Releases: etiennelenhart/Eiffel
5.0.0
Complete rewrite to a more Redux-like approach with a ton of new features.
Major new features
- #51 New
EiffelViewModel
similar to Redux stores with completely thread-safe state updates and action dispatching - #52 Dedicated support for adapting actions and triggering side effects with built-in and custom
Interceptions
- #53 Specialized
Command
interceptions with first-class support for Coroutines and Kotlin Flow - #104 Easy-to-use DSL for creating a chain of interceptions
- #58
observeProperty
function to only react to changes to specific state properties - #70 Support for state restoration after process death
- #98 New
BindableState
with support for up to three state sources for Data binding - #60 Extensive debug mode
- #111 JUnit rule for testing async behavior of
EiffelViewModel
- #113 Helper function for testing
Interception
chains in isolation
4.1.0
This release improves the initState
function and fixes some small bugs and inconsistencies.
Notable Changes
4.0.1
4.0.0
This release is about reducing boilerplate code, improving ViewEvent
handling and deprecating all result-related functionality.
Changes
- #15 Overload for
updateState
inStateViewModel
to allow setting a newViewState
from a background thread - #19 New "peek" style of handling a
ViewEvent
- #20 Result-related functionality is now deprecated
- #21 New
observeState
function forStateViewModel
replacing publicstate
property - #24 Overload of
observeState
that automatically refreshes a givenBindingState
Migration
Coming from 3.x.x? Check out the Migration guide for updating to 4.0.0.
3.2.0
Changes
This release switches all dependencies and packages to the AndroidX namespaces an therefore now depends on Lifecycle Extensions 2.0. It contains no new features.
Using the Data binding features like notifyBinding
for BaseObservable
requires Android Studio 3.2, since they depend on the new Data binding compiler that supports AndroidX.
3.1.0
Changes
Result
and LiveResult
extensions like isSuccess
and isFailure
now return the result they are being called on to allow further processing.
They basically now work a bit like apply {}
or also {}
.
3.0.1
Small patch for notifyBinding
. It now checks for structural inequality before notifying a change.
3.0.0
This release is about the simplification of commands and events.
Changes
Result
no longer provides a "pending" variant (now available withLiveResult
)- Removed internal
Status
enum
Notes
- Simplified
ViewEvent
handling - New
LiveResult
that replaces the previousResult
implementation attempt()
function to map atry catch
to aResult
fold()
function to easily processResult
types
Migration
Coming from 2.0.0? Check out the Migration guide for updating to 3.0.0.
2.0.0
This release is all about convenience and ease-of-use.
Changes
Result
andResultWithData
merged into a singleResult
class
Notes
- Convenience functions to create a
Result
variant with and without data - Extension functions to react to a result depending on its status
- Extension functions to chain commands and transform result data and error types
- Convenience functions to create a
Resource
variant - Extension functions to react to a resource depending on its status
1.2.2
Notes
- Now includes proper GitHub Readme
- Adds extension functions for scoped access to
NotifyBinding
andContentViewBinding
delegates