StreamBuilder<
    Creates a new StreamBuilder that builds itself based on the latest
snapshot of interaction with the specified stream and whose build
strategy is given by builder.
The initialData is used to create the initial snapshot.
The builder must not be null.
Implementation
const StreamBuilder({
  Key key,
  this.initialData,
  Stream<T> stream,
  @required this.builder
}) : assert(builder != null),
     super(key: key, stream: stream);