Skip to content

Releases: etiennelenhart/Eiffel

5.0.0

11 Jun 16:28
3baa205
Compare
Choose a tag to compare

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

03 Jan 11:09
06a5134
Compare
Choose a tag to compare

This release improves the initState function and fixes some small bugs and inconsistencies.

Notable Changes

  • #41 initState now takes a lambda expression to only construct a state when necessary
  • #45 Fixed successValue and pendingValue not available in a LiveData with Resource
  • #46 Decreased minSdkVersion to 14, which was unnecessarily bound to 19

4.0.1

08 Oct 08:24
1856695
Compare
Choose a tag to compare

Small update that introduces an event parameter to the handled lambda expression in the peek() function of a ViewEvent. (#34)
To preserve specific typing peek() has been changed to an extension function.

4.0.0

27 Sep 10:48
4253d1e
Compare
Choose a tag to compare

This release is about reducing boilerplate code, improving ViewEvent handling and deprecating all result-related functionality.

Changes

  • #15 Overload for updateState in StateViewModel to allow setting a new ViewState from a background thread
  • #19 New "peek" style of handling a ViewEvent
  • #20 Result-related functionality is now deprecated
  • #21 New observeState function for StateViewModel replacing public state property
  • #24 Overload of observeState that automatically refreshes a given BindingState

Migration

Coming from 3.x.x? Check out the Migration guide for updating to 4.0.0.

3.2.0

22 Sep 14:17
3fb6801
Compare
Choose a tag to compare

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

29 Jun 11:56
5409cbb
Compare
Choose a tag to compare

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

21 Jun 14:36
f504515
Compare
Choose a tag to compare

Small patch for notifyBinding. It now checks for structural inequality before notifying a change.

3.0.0

27 Apr 10:18
2f60ce5
Compare
Choose a tag to compare

This release is about the simplification of commands and events.

Changes

  • Result no longer provides a "pending" variant (now available with LiveResult)
  • Removed internal Status enum

Notes

  • Simplified ViewEvent handling
  • New LiveResult that replaces the previous Result implementation
  • attempt() function to map a try catch to a Result
  • fold() function to easily process Result types

Migration

Coming from 2.0.0? Check out the Migration guide for updating to 3.0.0.

2.0.0

12 Mar 13:38
01fdab1
Compare
Choose a tag to compare

This release is all about convenience and ease-of-use.

Changes

  • Result and ResultWithData merged into a single Result 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

26 Jan 12:04
3ef712d
Compare
Choose a tag to compare

Notes

  • Now includes proper GitHub Readme
  • Adds extension functions for scoped access to NotifyBinding and ContentViewBinding delegates