This is not production ready. Please wait for the first release.
This project is an experimental state management library for Flutter. You can find a roadmap here.
Develop state and UI separately and wire them up declaratively.
Router also has a state and is reactive to the state. Flutter provides declarative routing via Router API, but it's cumbersome to implement.
- Simple injection
- Simple selector
- Simple alternator
- Simple widget builder
- Async selector
- Async action
- State from the selector
- Family
- Error/Loading widget builder
- Auto dispose
- Observer - "Side-effect" (state lifecycle)
- before init
- after init
- before action
- after action
- before dispose
- after dispose
- Isolate-based
- Since v3.7, flutter supports background isolate platform channels. This is a good opportunity to make fstate isolate-based.
- Error/Loading Boundary Widget
- Testability
- Overridable state
- State only test
- Widget test
- Reset state
- Enhance DX
- Multi step generation for better DX - reduce the number of annotations
- Static State Inspector
- Live State Inspector
- VScode extension
- File-based routing
dart pub global activate coverage
dart pub global activate full_coverage
and install lcov
and genhtml
for coverage report.
Each package has scripts/run_test.sh
to run tests.