flutter_piper 0.1.1
flutter_piper: ^0.1.1 copied to clipboard
Flutter widgets for Piper State with lifecycle-aware ViewModel scopes, automatic dependency tracking, builders, listeners, and effects.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
0.1.1 - 2026-07-29 #
Added #
- Piper Search Race, a deterministic runnable example that visualizes lifecycle-owned task cancellation preventing stale search results.
Changed #
- Updated the package README and pub.dev metadata to align with Piper's lifecycle-owned cleanup positioning.
- Bumped the
piper_statedependency to^0.1.1.
0.1.0 - 2026-07-23 #
Added #
Watch— rebuilds from whatever state is read inside its builder (automatic dependency tracking); replacesStateBuilder2/StateBuilder3and manual dependency lists for multi-value reads.
Changed #
- Re-export the new
computed(), dependency-tracking, and cooperative task cancellation APIs frompiper_state. - Bumped
piper_statedependency to^0.1.0. - Example ViewModels now use
computed()for derived state and cancellation-aware repository waits.
0.0.3 - 2025-12-09 #
Changed #
- Updated SDK constraint to ^3.6.0
- Updated piper_state dependency to ^0.0.3
- Added explicit platform support for all Flutter platforms
0.0.2 - 2025-12-08 #
Added #
Scoped<T>— new widget for single ViewModel scoping with builder patternScoped.withContext— variant with BuildContext access for dependency injectionViewModelScope.withContext— added BuildContext variant for dependency injection- Named scopes via
nameparameter onViewModelScopeandScoped context.scoped<T>()extension for accessing scoped ViewModels
0.0.1 - 2025-12-08 #
Added #
ViewModelScope— provides ViewModels to widget treeStateBuilder— rebuilds on state changesStateBuilder2— rebuilds when either of two listenables changeStateBuilder3— rebuilds when any of three listenables changeStateListener— side effects without rebuildingStateEffect— post-frame side effects with conditions- Extension methods:
.build(),.buildWithChild(),.listen()on StateHolder - Extension methods:
.displayWhen(),.displayWhenData(),.listenAsync()on AsyncStateHolder context.vm<T>()andcontext.maybeVm<T>()extensions for accessing ViewModels