observable 0.17.0 observable: ^0.17.0 copied to clipboard
Support for marking objects as observable
0.17.0 #
This is a larger change with a goal of no runtime changes for current
customers, but in the future Observable
will become a very
lightweight interface, i.e.:
abstract class Observable<C extends ChangeRecord> {
Stream<List<C>> get changes;
}
- Started deprecating the wide
Observable
interfaceChangeNotifier
should be used as a base class for these methods:Observable.observed
Observable.unobserved
Observable.hasObservers
Observable.deliverChanges
Observable.notifyChange
PropertyChangeNotifier
should be used for these methods:Observable.notifyPropertyChange
- Temporarily,
Observable
usesChangeNotifier
- Existing users of anything but
implements Observable
should move to implementing or extendingChangeNotifier
. In a future releaseObservable
will reduce API surface down to an abstractStream<List<C>> get changes
.
- Existing users of anything but
- Added the
ChangeNotifier
andPropertyChangeNotifier
classes- Can be used to implement
Observable
in a generic manner
- Can be used to implement
- Observable is now
Observable<C extends ChangeRecord>
- When passing a generic type
C
,notifyPropertyChange
is illegal
- When passing a generic type
0.16.0 #
- Refactored
MapChangeRecord
- Added equality and hashCode checks
- Added
MapChangeRecord.apply
to apply a change record
- Added
MapDiffer
, which implementsDiffer
for aMap
0.15.0+2 #
- Fix a bug in
ListDiffer
that caused aRangeError
0.15.0+1 #
- Fix analysis errors caused via missing
/*<E>*/
syntax in0.15.0
0.15.0 #
- Added the
Differ
interface, as well asEqualityDiffer
- Refactored list diffing into a
ListDiffer
- Added concept of
ChangeRecord.ANY
andChangeRecord.NONE
- Low-GC ways to expression "something/nothing" changed
- Refactored
ListChangeRecord
- Added named constructors for common use cases
- Added equality and hashCode checks
- Added
ListChangeRecord.apply
to apply a change record
- Added missing
@override
annotations to satisfyannotate_overrides
0.14.0+1 #
- Add a missing dependency on
pkg/meta
.