What is a FutureBuilder vs StreamBuilder?

Updated Apr 28, 2026

Short answer

FutureBuilder builds UI based on the latest snapshot of a Future. StreamBuilder builds UI reacting to multiple events from a Stream.

Deep explanation

Both are widgets that manage asynchronous data. FutureBuilder provides ConnectionState (none, waiting, active, done) for a single operation. StreamBuilder listens to a stream and rebuilds its child every time a new event is emitted, providing AsyncSnapshot data.

Real-world example

FutureBuilder: Showing a loading spinner while fetching an article from a REST API. StreamBuilder: Showing live stock price updates changing every second.

Common mistakes

  • Instantiating the Future directly inside the `build()` method, which causes the Future to re-trigger on every UI rebuild.

Follow-up questions

  • How do you prevent FutureBuilder from recalling the Future on rebuild?

More Flutter interview questions

View all →