Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aleksanderwozniak/deer

Minimalist Flutter Todo App, built using BLoC pattern
https://github.com/aleksanderwozniak/deer

bloc bloc-pattern dart deer flutter flutter-bloc-pattern minimalist task todo

Last synced: about 2 months ago
JSON representation

Minimalist Flutter Todo App, built using BLoC pattern

Awesome Lists containing this project

README

        

Deer




Minimalist Todo Planner app built around the idea of efficiency and clean aesthetic.



Awesome Flutter

## Showcase















Get it on Google Play

## Development

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 `StreamBuilder` widget.

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, `Sink` is used for input Stream, and `BehaviorSubject` for output Stream.

Check those resources for more details on the pattern:
- https://youtu.be/PLHln7wHgPE
- https://youtu.be/RS36gBEp8OI

#### Using built_value
```
flutter packages pub run build_runner build --delete-conflicting-outputs
```