mu_state 1.0.0
mu_state: ^1.0.0 copied to clipboard
Minimal Cubit-inspired state management using Flutter's built-in primitives. No external dependencies.
1.0.0 #
MAJOR RELEASE: Complete refactor towards a more pragmatic, minimalist approach.
New Features #
MuLogic<T>- Main class for managing state and logic (alias forValueNotifier)MuProvider<L, S>- Provides logic instances to widget tree usingInheritedNotifiercontext.logic<T>()extension - Easy access to logic from contextMuComparablemixin - Lightweight alternative to Equatable for state equality
Breaking Changes #
- REMOVED:
MuState,MuEvent,MuLoading,MuError,MuDataclasses - Users must define their own immutable state classes per page/feature
- Use
MuLogicinstead ofMuState - Use custom state classes instead of
MuEventsubclasses
Philosophy Changes #
- One logic class per page/feature (similar to Cubit pattern)
- Custom immutable state classes with
MuComparableorEquatable - Direct value assignment (
value = ...) instead ofemit() - Minimal Flutter dependencies only (
flutter/foundation.dart,flutter/widgets.dart)
Unchanged #
MuBuilder<T>- Still an alias forValueListenableBuilderMuMultiBuilder- Listen to multipleValueNotifierobjects
Migration Guide #
- Replace
MuStatewithMuLogic<T> - Replace
MuEvent<T>usage with custom state classes - Use
MuProviderandcontext.logic<T>()for dependency injection - Add
MuComparablemixin to state classes for equality comparison
0.5.0 #
- let's keep the old names to avoid breaking changes (except for events!)
- note
MuStateis just an alias forValueNotifierand can take any type - note
MuBuilderis just an alias forValueListenableBuilder - note
MuEventis optional
0.4.0 #
- renamed
MuStatetoMuLogic!BREAKING! - renamed
MuEventtoMuState!BREAKING! MuLogicis now just an alias forValueNotifierand can take any type (MuStateis optional)MuBuilderis now just an alias forValueListenableBuilder
0.3.0 #
- use explicit type for MuEvent
0.2.0 #
- replace complex mu_event type with 4 sealed types (BREAKING)
- use switch expression / patterns to handle mu_event types
- bump sdk version to 3.0.0
0.1.1 #
- update CHANGELOG
0.1.0 #
- user super in constructors
- update lints -> 3.0.1
- sdk env 2.18.0 < 4.0.0
- add vscode example launcher
0.0.4 #
- replace AnimatedBuilder -> ListenableBuilder
- Set min SDK version to 3.0.0 and Flutter to 3.10.0
0.0.3+1 #
- Add widget tests and improve unit tests
- Improve example in README
0.0.3 #
- Remove duplicate MuBuilder declaration
0.0.2 #
- Split classes into separate files under lib/src
0.0.1 #
- Initial release