I've been struggling to understand when ChangeNotifier is preferred over Rxdart's Observable, or streams in general.
According to Flutter's docs:
A class that can be extended or mixed in that provides a change notification API using VoidCallback for notifications.
ChangeNotifier is optimized for small numbers (one or two) of listeners. It is O(N) for adding and removing listeners and O(N²) for dispatching notifications (where N is the number of listeners).
Still, I'm not sure what ChangeNotifier can offer that an Observable or Stream cannot.