An architecture and widgets for an MVVM inspired architecture in Flutter. It provides common functionalities required to build a large application in a understandable manner.
fireOnceproperties to the
- Adds rethrow capability to the
- Makes index tracking viewmodel a reactive viewmodel so it can react to services
- REVERT: Use hascode for hasErrorForObject function instead of value directly
- Use hascode for hasErrorForObject function instead of value directly
- Removes old error handling code for specialty viewmodels
RxSetto the reactive list of functionalities.
initialiseSpecialViewModelsOnceto the readme.
initialiseSpecialViewModelsOnceproperty to set initialise function call to only fire once.
fireOnModelReadyOnceto be used together with
disposeViewModelto ensure a viewmodel that's already been constructed doesn't call onModelReady every time it's shown on screen.
- Adds onCancel call for the MultiStreamViewModel
- Adds dispose protection when calling notifyListeners.
FutureViewModelsto report if there are any futures's that are still running
- fixed busy state hash code problem
- Exposes notifyListeners to the service for rebuilding ViewModels that are listening
- added back busy to false state when busy future is complete without an error
- runBusyFuture now sets itself to not busy when exception is thrown
- runBusyFuture has parameter throwException which will rethrow the caught exception to the caller
- Reverted commit below
- Added fix to set busy back to false when the future throws an exception
MultipleStreamViewModelexample into the readme
- Made specialty viewmodels reactive as well so you can supply reactive services as an override
- Expose subscription for single stream viewmodel and getSubscriptionForKey for multiple stream viewmodel.
FutureViewModelthat can be overridden
- Ensure model is busy as soon as runFuture notifyListeners for the first time
- Adds functionality to support
- Added functionality to save the error thrown by the calling future
getParentViewModelfunctionality for accessing a provided ViewModel above in the widget tree
- Busy for Object bug fix in base viewmodel
- Change log styling updates
- Added the
constkeyword to the following widget constructors:
- [Breaking] Moved private files into src folder
- Breaking Moved private files into src folder
- Fix imports, import visibility and changed file names.
- Added DynamicDataSource funtionality to swap streams at runtime
- Removed the hooks dependency and moved code to stacked_hooks package
- Fixed StreamViewModel functionality
- Added the HookViewModelWidget to use the ViewModelWidget with flutter_hooks
- Pass type to the base models of ViewModel
- ReadMe updates
- onModelReady taken out of post frame callback
- Adds Mulitple streams ViewModel Builder
onModelReadyis not called every time the model is constructed
onModelReadyis called after the current frame is rendered by using
- Added BuildContext to ViewModelBuilder for WidgetBuilder
- Updated ChangeLog order
- Moved stream subscription to after ViewModel construction
- Description Update 2
- Description Update
- Added ViewModelBuilderWidget
ViewModelBuilderWidgetremoves boiler plate code for using a
ViewModelBuilderto provide the View->ViewModel rebuild functionality.
- Added FutureViewmodel
FutureViewModelremoves boiler plate code for a ViewModel that depends on data returned from a Future.
- Added StreamViewModel
StreamViewModelremoves boiler plate code for listening to a Stream and notifying listeners as the data comes in.
- Added isBusy to BaseViewModel
- Added Migration from provider_architecture to stacked
- Updated Readme
- Adds back setBusy call to BaseViewModel
- Reactive Viewmodel updates
- Instead of depending on the user to call set reactive services we require an override to provide a list of services
- Readme instruction updates
- First release of the architecture containing all the initial required parts to build a full application.