Minimalist Flutter Todo App, built using BLoC pattern
Deer uses BLoC (Business Logic Component) pattern to manage app state. If you want to use Streams in your Flutter project, then I think this is the way to go. BLoC plays exceptionally well with Flutter's reactive nature, especially since Flutter has built-in
Each screen is splitted into 4 files: - actions - bloc - screen (UI itself) - state
Instead of calling
setState()in screen file, an action is pushed to bloc's input
Stream. Then, bloc resolves that action and updates the output
Stream. Every state update is listened to inside screen with
StreamBuilder, which updates the UI when needed. This way we achieve clear separation of concerns.
Usually with BLoC,
Sinkis used for input Stream, and
BehaviorSubjectfor output Stream.
Check those resources for more details on the pattern: - https://youtu.be/PLHln7wHgPE - https://youtu.be/RS36gBEp8OI
flutter packages pub run build_runner build --delete-conflicting-outputs