turbo_mvvm 1.1.0
turbo_mvvm: ^1.1.0 copied to clipboard
A lightweight MVVM state management solution inspired by the FilledStacks Stacked package.
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.
1.1.0 - 2026-01-20 #
Added #
TurboMvvmDefaultsclass centralizing all default constants (isReactive, shouldDispose, timeout, minBusy)
Changed #
- BREAKING: Renamed
BaseViewModel<A>→TurboViewModel<A>for consistency with package naming - BREAKING: Renamed
ViewModelBuilder<T>→TurboViewModelBuilder<T>for consistency with package naming - BREAKING: Renamed
ViewModelBuilderState<T>→TurboViewModelBuilderState<T>for consistency with package naming - Updated all documentation, examples, and tests to use new class names
TViewModelBuildernow usesTurboMvvmDefaultsfor default parameter valuesTBusyServiceandTBusyServiceManagementnow useTurboMvvmDefaultsfor timeout and minBusy defaults
Removed #
TMvvmDurationsclass (consolidated intoTurboMvvmDefaults)
Migration Guide #
To migrate from v1.0.0 to v1.1.0:
- Replace
BaseViewModelwithTurboViewModelin all class declarations - Replace
ViewModelBuilderwithTurboViewModelBuilderin all widget usage - Update imports if using direct file imports (barrel imports remain the same)
1.0.0 - 2025-01-06 #
Added #
TurboViewModel(formerlyBaseViewModel) for MVVM pattern implementationTurboViewModelBuilder(formerlyViewModelBuilder) widget for reactive UI updates- Automatic lifecycle management (
initialiseanddispose) BusyManagementmixin for local busy statesErrorManagementmixin for error handlingViewModelHelpersmixin for utility methodsBusyServiceManagementmixin for global busy stateBusyServicesingleton for application-wide busy indicatorsBusyModelwith support for title, message, type, and payloadBusyTypeenum for different busy indicator styles- Timeout functionality for busy states
AkeBaseViewModelandAkeViewModelBuilderfor automatic keep-alive- Safe
BuildContextaccess viacontextgetter isMountedcheck for widget tree presence- Argument passing to ViewModels
isInitialisednotifier for initialization tracking- Reactive and non-reactive ViewModel support
- Custom dispose callbacks
- All features from previous versions (0.0.1 - 0.0.15)
Changed #
- Package renamed from
vetototurbo_mvvm - Updated import paths to use
package:turbo_mvvm/turbo_mvvm.dart - Integrated Provider package for efficient state propagation
- Made
TurboViewModel(formerlyBaseViewModel) aChangeNotifier - Enhanced busy state management with timeouts
- Improved error handling
- Better context access safety
- Enhanced documentation and examples
- Generic arguments of payload changed to dynamic
isBusyrenamed toisBusyListenable, newisBusybool getter added
Fixed #
- Fixed non-reactive ViewModel disposal
- Fixed
Akeclasses naming and functionality - Fixed missing payload in BusyServiceManagement
- Fixed duration bugs
- Fixed reactive ViewModel rebuild issues
- Fixed argument nullability
Removed #
- Various deprecated APIs from previous versions