3.2.2 (2023-04-25)
- Adds new course to readme (1510680)
3.2.1 (2023-04-12)
- Updates shared version (c0d24d8)
3.2.0 (2023-03-15)
Adds support for the new RouterService which uses Navigator 2.0 a fork from AutoRouter 5.0.4
to generate the generated code.
- Updates
stacked_core
tostacked_shared
. We lost access tostacked_core
😭
- Added fix to extensible classes for ListenableServiceMixin
- Updates promotional banner
- Fixes old doc link
- Updates banner correctly
New CLI 🔥 Check it out in the Docs
- Fixes the listenable and reactive service late initialisation error
- Deprecates
ReactiveServiceMixin
- Deprecates
ViewModelBuilderWidget
in favour ofStackedView
- Deprecates
HookViewModelWidget
in favour ofStackedHookView
- Deprecates
fireOnModelReadyOnce
in favour offireOnViewModelReadyOnce
- Deprecates
onModelReady
in favour ofonViewModelReady
- Adds
listenersCount
toListenableServiceMixin
- Updates ViewModels to use
viewModel
instead ofmodel
- Makes setFormStatus as NOT required override
- Adds a better named
rebuildUi
function to replacenotifyListeners
- Renames ViewModelBuilderWidget to StackedView
- Updates BuilderWidgetExampleView
- Add onDispose method to ViewModelBuilderWidget
- Fix #767
- Replace the old
ReactiveValues
approach withnotifyListeners()
when using theReactiveServiceMixin
in readme
- Passes generic argument to
DataStateHelper
- Uses
FormStateHelper
for theFormViewModel
- Adds
BusyAndErrorStateHelper
to theBaseViewModel
- Refactor
BaseViewModel
by extracting the different functionalities to mixins. - Remove the inconsistency between the
BaseViewModel
andFutureViewModel
,StreamViewModel
when setting the error, data values. - Now we have three mixins that can be mix with any viewmodel and they are:
FutureRunnerHelper
that hasrunBusyFuture
andrunErrorFuture
functions.MessageStateHelper
that adds message property to the viewmodel.DataStateHelper
that adds data property to the viewmodel.FormStateHelper
that gives the flexibility to mixin the form functionality with the any other view model.IndexTrackingStateHelper
that give the flexibility to mixin the index tracking in a bottom navigation bar any other view model.
- Rename
SelectorViewModelBuilderWidget
andSelectorViewModelWidget
similar toViewModelWidget
- Adds
SelectorViewModelBuilder
andSelectorViewModelBuilderWidget
- Adds Message state functionality for view models
- Fix #486
- Fix #546
- Fixes issues on navigation
- Pump stacked_shared version
- Update example app
- Remove duplicate code and Clean up
- Use ambiguate to ensure v3 (and backward) compatibility
- Add move in left route transition
- Reverts 2.3.4
- Use the stacked_shared package to expose the stacked_annotation
- Updates MultipleStreamViewModel to take generic type for key
- Updates Example's kotlin version to 1.4.10
- Updates Example's Android Embedding to Version 2
- Updates Example's CompileSdk to 31
- Returns a null value for catchError handler when using FutureViewModel
- Reverts 2.3.1
- Handles the futureToRun viewmodels with try/catch and not catchError function
-
A setValidationMessage will now be generated for each field for you to set and use similar to the global validation message that was used before
-
Breaking changes on
FormViewModel
showValidation
→showValidationMessage
- Adds
disableReleaseConsoleOutput
to the logger annotation to disable console output in release mode
- Upgraded the dependency on
provider
to 6.0.0
- Fixes non-reactive
ViewModelBuilderWidget
- Optimized skeleton loader to be dynamic
- Added IgnorePointer to Skeleton Loader Widget
- Added Skeleton Loader Widget to show a shimmer when data is loading
- Added skeletonData on viewmodels for busy data values
- Added ability to pass parameter to factories
Add service to
FactoryWithParam
inStackedApp
and annotate paramaters with@factoryParam
which needed to be passed in the Factory constructor - Improved error setting base functionality
- Added view model argument to
ViewModelBuilder
on methodonDispose
callback
- Replaced
dart:io
withuniversal_io
- Fixes nullable type generation issue on
@PathParam
and@QueryParam
- Added ability to pass custom logger outputs to MultiLoggerOutput
- Fixes
ReactiveServiceMixin
in Services to handleChangeNotifier
updates
- updates
get_it
to the latest
Environments
now will be automatically registered which eliminates the need to callregisterEnvironment
manually if generatedsetupLocator
wasn't used
- Added functionality to supply custom
locator
andsetupLocator
names.
- Removes forced nullable type
- Added
Environment
on Dependency Injection
- Added return type for
runBusyFuture
andrunErrorFuture
- Exports Transition builders
- Adds annotations to allow the user to generate a logger for their app
- Updates the extended router functionality to use non null routes
- Exposed
buildAdaptivePageRoute
,misTypedArgsRoute
anddefaultUnknownRoutePage
functions to outer world - Changed
OutlineButton
toOutlinedButton
(removed deprecated code)
- Fixed where anyObjectsBusy was always true in MultipleFutureViewModel.
- Made ViewModel variable naming scheme consistent.
ViewModel viewModel
is now preferred.
- Adds ReactiveValue and ReactiveList for reactive functionality
- Null safety migration complete and ready to be used!
- Fixes annotation to allow for date selection
- Adds back
resolveUsing
function to the annotations
- Migrate to null-safety. We will remove null safety when we iron out all the issues
- Exposes
RouteGuard
through stacked as well
- Adds
resolveUsing
function that can be used for singleton type dependency registrations.
- Exports the
ExtendedNavigator
for nested navigation - Update provider in stacked to 5.0.0
- Revert nonReactive update update for stacked
- Update get_it to 6.0.0
- Will revert fix for issue that came with disposing a nonReactive Viewmodel.
- Adds the asType property into the locator types
- Adds fix for issue #171
- Adds onDispose functionality
- Adds brand new form first party support and form generation functionality
- Fix null error from locator
- Adds export for
StackedLocator
- Adds
StackedLocator
to remove the apps dependency from GetIt. It's a thin wrapper around theGetIt
object implementation
Big Update! This version of stacked aims to reduce the boiler plate required to setup a stacked application. We introduce the annotation that are used by the stacked_generator to generate the router and locator setup functionality.
- Adds
fireOnce
properties to theViewModelBuilderWidget
- Adds rethrow capability to the
FutureViewModel
- 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
- Adds
RxSet
to the reactive list of functionalities.
- Adds
initialiseSpecialViewModelsOnce
to the readme.
- Adds
initialiseSpecialViewModelsOnce
property to set initialise function call to only fire once.
- Adds more migration notes
-
hasError(key) -> error(key) for multiple ViewModel
-
Adds
IndexTrackingViewModel
for help with BottomNavBar -
Adds better error handling for
BaseViewModel
- Adds
fireOnModelReadyOnce
to readme
- Adds
fireOnModelReadyOnce
to be used together withdisposeViewModel
to 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.
- Adds
anyObjectsBusy
toFutureViewModels
to 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
- Added
MultipleStreamViewModel
example 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.
- Added
onData
function intoFutureViewModel
that can be overridden
- Ensure model is busy as soon as runFuture notifyListeners for the first time
- Adds functionality to support
RxList
- Added functionality to save the error thrown by the calling future
- Added
getParentViewModel
functionality for accessing a provided ViewModel above in the widget tree
- Busy for Object bug fix in base viewmodel
- Change log styling updates
- Added the
const
keyword to the following widget constructors:ViewModelBuilder.nonReactive
,ViewModelBuilder.reactive
, andViewModelWidget
- [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
-
onModelReady updates
-
onModelReady
is not called every time the model is constructed -
onModelReady
is called after the current frame is rendered by usingpostFrameCallback
internally.
- Added BuildContext to ViewModelBuilder for WidgetBuilder
- Updated ChangeLog order
- Moved stream subscription to after ViewModel construction
- Description Update 2
- Description Update
- Added ViewModelBuilderWidget
- The
ViewModelBuilderWidget
removes boiler plate code for using aViewModelBuilder
to provide the View->ViewModel rebuild functionality.
- Added FutureViewmodel
- The
FutureViewModel
removes boiler plate code for a ViewModel that depends on data returned from a Future.
- Added StreamViewModel
- The
StreamViewModel
removes 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.