minix 1.2.0
minix: ^1.2.0 copied to clipboard
Reactive state management for Flutter with form validation, collection observables, async operations, dependency injection, and automatic memory management. Zero dependencies, high performance, and co [...]
1.2.0 - 2025-07-30 #
β¨ Added #
Form Management
FormObservable
: Complete reactive form management system- Built-in field validation with custom validators
- Real-time form state tracking (
isValid
,hasErrors
) - Automatic error handling and display
- Reactive field value updates
- Easy form data extraction with
getValues()
Collection Observables
-
ListObservable<T>
: Reactive list implementation- Full CRUD operations (
add
,remove
,insert
,removeAt
) - Reactive length, emptiness, and item access
- Functional operations (
map
,where
,sort
) - Performance-optimized with efficient memory management
- Reactive watchers for
length
,isEmpty
,first
,last
- Full CRUD operations (
-
MapObservable<K,V>
: Reactive map implementation- Key-value pair management with reactivity
- Reactive getters for
length
,keys
,values
,isEmpty
- Thread-safe operations with error handling
- Efficient update notifications
Memory Management
AutoDispose
mixin: Automatic resource cleanup- Prevents memory leaks by auto-disposing observables
- Manages StreamSubscriptions automatically
- Simple integration with
addObservable()
andaddSubscription()
- Batch cleanup with
disposeAll()
π§ Improvements #
Performance Enhancements
- 30% faster observable value access with cached observer tracking
- Reduced memory allocations in list and map operations
- Optimized batch processing for multiple state updates
- Efficient dependency tracking with faster registration
- Cached action names in ActionController to reduce string operations
π Bug Fixes #
- Fixed: Memory leaks in computed observables when disposing dependencies
- Fixed: Race conditions in StreamObservable state updates
- Fixed: Incorrect equality checks in ListObservable operations
- Fixed: Potential null pointer exceptions in FormObservable validation
- Fixed: Observer widgets not properly disposing listeners on rebuild
- Fixed: Injector tagged key cache growing indefinitely
- Fixed: ActionController queue not being cleared on errors
1.1.0 - 2025-07-27 #
β¨ Added #
ComputedObservable<T>
:- A derived observable that automatically recalculates its value based on a list of dependencies.
ActionController
andrunInAction()
:- Allows grouping of multiple state changes into a single batch action.
-
Reactions are deferred until the action completes, improving performance and reducing redundant updates. #
[1.0.0] - 2024-07-27
Added
Core Features #
- Observable
- Observer widget - Automatic UI rebuilds
- ContextObserver widget - Observer with BuildContext access
- AsyncObservable
- StreamObservable
- Injector - Dependency injection container
Dependency Injection Features #
- Basic registration (put, lazyPut, putAsync)
- Service location (find, getOrNull)
- Auto dispose functionality
- Scoped injection support
- Tagged instances
- Testing overrides
- Injectable interface for lifecycle management
Observable Features #
- Reactive value updates
- Automatic listener management
- Non-reactive read access
- Proper disposal handling
AsyncObservable Features #
- Built-in loading states (idle, loading, success, error)
- Async operation execution
- Error handling
- Manual state control
- Reactive watch methods
StreamObservable Features #
- Stream subscription management
- State tracking (idle, listening, paused, closed, error)
- Stream operations (map, where)
- Pause/resume functionality
- Proper cleanup and disposal
Developer Experience #
- Debug logging support
- Event hooks for monitoring
- Comprehensive error handling
- Type safety throughout
- Memory leak prevention
Documentation #
- Complete API documentation
- Usage examples
- Architecture patterns
- Testing guidelines
- Performance tips
Technical Details #
- Minimum Dart SDK: 2.17.0
- Flutter compatibility: 3.0.0+
- Platform support: Android, iOS, Web, Windows, Mac, Linux
- Zero external dependencies (Flutter only)
[Unreleased]
Planned Features #
- Collection observables (ObservableList, ObservableMap)
- Computed observables
- Batch updates
- DevTools integration
- Code generation tools