Streams are no longer needed, which means we no longer need to worry about disposing them.
The model classes now become mutable. This is because the model can change overtime and call notifyListeners() to trigger an update.
The BLoC class has been replaced with a Manager. Manager no longer holds on to the model and modifies it via a StreamController. Instead, changes happen directly in the model.
This experimental PR shows how to modify the email sign in flow to use a ChangeNotifier instead of a BLoC with streams.
It builds upon this talk from Google I/O 2019:
Main differences:
notifyListeners()
to trigger an update.StreamController
. Instead, changes happen directly in the model.