The Google I/O 2018 video about Flutter explains how to use Dart streams to manage state in a Flutter application. The speaker talked about using Sink
as input stre
Sink
and Stream
both are parts of the StreamController
. You add a data to the StreamController
using Sink
which can be listened via the Stream
.
Example:
final _user = StreamController();
Sink get updateUser => _user.sink;
Stream get user => _user.stream;
Usage:
updateUser.add(yourUserObject); // This will add data to the stream.
Whenever a data is added to the stream via sink, it will be emitted which can be listened using the listen method.
user.listen((user) => print(user));
You can perform a various number of actions before the stream is emitted. transform
method is an example which can be used to transform the input data before it gets emitted.