This part is going to be different, but just a bit. So far in this book, you’ve learned how to build beautiful, functional apps with Flutter. But that’s only part of the battle. In this part, I’m going to continue to explain core aspects of the Flutter SDK, like routing, but I’m also going to start covering some subjects that aren’t Flutter-specific. Namely: state management.
Flutter isn’t opinionated about state management. It’s up to you to weigh the pros and cons of different state management patterns. That said, I’ve decided to make a choice and teach the bloc pattern. After the routing chapter, I’ll explain what the bloc pattern is, as well as cover Flutter-specific tools that help with implementing this pattern. Finally, using the bloc pattern, we’ll look at a Dart-specific feature, streams, and how they’re used in concert with Flutter to make asynchronous programming easier.