NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4958 most downloaded on pub.dev
Support library for the Nylo framework. This library supports routing, widgets, localization, cli, storage and more.
Last release 8 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 55 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
276 releases · first in 2021
One column per quarter.
Add toTimeAgoString extension to DateTime
toTimeAgoString extension to DateTimeonLanguageChange method in NyLanguageSwitcherAdd deleteFromCollectionWhere for NyStorage. E.g. NyStorage.deleteFromCollectionWhere((value) => value == 1, key: "myKey");
deleteFromCollectionWhere for NyStorage. E.g. NyStorage.deleteFromCollectionWhere((value) => value == 1, key: "myKey");Add defaultValue on the match function
defaultValue on the match functionNew StateAction class for handling state actions
StateAction class for handling state actionsAdd NyTextField.emailAddress() widget - This will create an email address text field
NyTextField.emailAddress() widget - This will create an email address text fieldNyTextField.password() widget - This will create a password text fieldpasswordVisible on NyTextField widgetNyTextField.compact() widget - This will create a compact text fieldpassword_v1 validation rule for checking if a password is validpassword_v2 validation rule for checking if a password is valid* Fix NyListView.grid Widget
NyListView.grid WidgetAbility to set a Grid view in NyListView e.g. NyListView.grid()
NyListView e.g. NyListView.grid()NyPullToRefresh e.g. NyPullToRefresh.grid()getRouteHistory to return a list of the route historygetCurrentRouteArguments to return a map of the current route argumentsgetPreviousRouteArguments to return a map of the previous route argumentsflutter_staggered_grid_view to pubspec.yamlFix _initLanguage method in app_localization.dart
_initLanguage method in app_localization.dartAdd check in app_localization.dart to see if an existing language is set
NyLanguageSwitcher widgetNew beforeRefresh method added to NyPullToRefresh widget
beforeRefresh method added to NyPullToRefresh widgetafterRefresh(dynamic data) method added to NyListView widget* Update pubspec.yaml
Add isMorning extension to DateTime
isMorning extension to DateTimeisAfternoon extension to DateTimeisEvening extension to DateTimeisNight extension to DateTimeAdd new updateCollectionByIndex method in NyStorage class
updateCollectionByIndex method in NyStorage classreadJson method in NyStorage classstoreJson method in NyStorage classChange sleep to use seconds instead of milliseconds
sleep to use seconds instead of millisecondstoJson to parseJson on String extensionNew showInitialLoader property added to NyState class
showInitialLoader property added to NyState classAdd new toDateTime extension for Strings
toDateTime extension for StringsAdd new toJson extension for Strings
toJson extension for StringsuseSkeletonizer to NyPullToRefresh widgetuseSkeletonizer to NyListView widgetuseSkeletonizer to NyFutureBuilder widgetSmall refactor to NyRouteGuard class
NyRouteGuard classAdd connectionTimeout to network helper
sleep helperconnectionTimeout to network helperreceiveTimeout to network helpersendTimeout to network helperbaseOptions added to NyApiService constructorSet Intl.defaultLocale in Nylo class
Intl.defaultLocale in Nylo classAdd setRetryIf to DioApiService
setRetryIf to DioApiServiceretryIf to api helperUpdate build method in NyState to Skeletonize the loading(BuildContext context) widget
build method in NyState to Skeletonize the loading(BuildContext context) widgetAdd queryParameters to routeTo helper
queryParameters to routeTo helperqueryParameters to NyState helperqueryParameters to NyRequest classqueryParameters to onTapRoute helperbottomNavFlag to StringsYou can now set an API service as a singleton in your project.
setRetry to api helpersetRetryDelay to api helpersetShouldSetAuthHeaders to api helperimmortal to singleton in NyControllerdate_age_is_younger:18 - This will check if the date is younger than the given age.date_age_is_older:30 - This will check if the date is older than the given age.date_in_past - This will check if the date is in the past.date_in_future - This will check if the date is in the future.apiDecoders and apiControllers in Nylo class to support singletons.MetroService to support singletons.skeletonizer package to pubspec.yamlview(BuildContext context) method added to NyState class - This can be used to create the view for your widget.loading(BuildContext context) method added to NyState class - This can be used to create the loading widget for your widget.max and min validation rules to now validate Strings, Numbers, Lists and Maps.isDebuggingEnabled added to Nylo class - This will check if the app is running in debug mode.isEnvProduction added to Nylo class - This will check if the app is running in production mode.isEnvDeveloping added to Nylo class - This will check if the app is running in development mode.Patch for _loggerPrint function to resolve https://github.com/nylo-core/nylo/issues/96
_loggerPrint function to resolve https://github.com/nylo-core/nylo/issues/96New dump function added for printing out data in a readable format.
dump function added for printing out data in a readable format.Add skipIfExist to makeModel method in MetroService
skipIfExist to makeModel method in MetroServiceChange languageCode to use locale in Nylo class
languageCode to use locale in Nylo classToastMetaFix NyPullToRefresh widget not using the padding parameter
NyPullToRefresh widget not using the padding parameterlocale variable to Nylo class - Use Nylo.locale to get the current locale.Add isAgeYounger(int age) helper to DateTime extension - This will check if the DateTime is younger than the given age.
isAgeYounger(int age) helper to DateTime extension - This will check if the DateTime is younger than the given age.isAgeOlder(int age) helper to DateTime extension - This will check if the DateTime is older than the given age.isAgeBetween(int min, int max) helper to DateTime extension - This will check if the DateTime is between the given ages.isAgeEqualTo(int age) helper to DateTime extension - This will check if the DateTime is equal to the given age.Change toTimeString to accept a withSeconds parameter
toTimeString to accept a withSeconds parameterNew parameter added to network called shouldSetAuthHeaders - This will tell the network method if it should set the auth headers or not. You can also
toShortDate methodnetwork called shouldSetAuthHeaders - This will tell the network method if it should set the auth headers or not. You can also override shouldSetAuthHeaders in your DioApiService class.network method now accepts a retry parameter - Set how many times you want to retry the request if it fails.
DioApiService
network method now accepts a retry parameter - Set how many times you want to retry the request if it fails.network method now accepts a retryIf parameter - A function to check if the request should be retried.network method now accepts a retryDelay parameter - Set how long you want to wait before retrying the request.DioApiService:
refreshToken - Override this method to refresh your token.shouldRefreshToken - Override this method to check if you should refresh the token.setAuthHeaders - Override this method to set your own auth headers.MetroService to allow you to create files in sub folders.creationPath when creating files in the project.validate method inside NyPage to support the latest way of validating data.hasExpired on DateTime object - This will check if the DateTime has expired. It's usage is for checking if a token has expired.get method inside API ServiceNew flexible helper added for Stateless and Stateful widgets, e.g. TextField().flexible()
flexible helper added for Stateless and Stateful widgets, e.g. TextField().flexible()showToastSorry method to NyState classaddRouteGuard helper for routespop helper to controlleris_type, is_true and is_false validation rulesbool immortal = true; this will allow your controller to live forever and not be disposed when the widget is removed from the tree.NyFader widget added, this widget allows you to add a gradient fade from the bottom/top/right/left of a widget.faderBottom, faderTop, faderLeft and faderRight helpers on a widget to add a gradient fade to the bottom/top/left/right of a widget.withGap extension added to Row and Column widgets to add a gap between children.confirmAction, this will show a dialog to confirm an action.You can no longer set appLoader as a variable in your Nylo class. You must now use the addLoader(widget) helper method.
appLoader as a variable in your Nylo class. You must now use the addLoader(widget) helper method.appLogo as a variable in your Nylo class. You must now use the addLogo(widget) helper method.Nylo.appLoader() to get the loading widgetNylo.appLogo() to get the app logoNylo.isCurrentRoute(MyHomePage.path) to check if the current route matches the given routeapiDecoders using Nylo.addApiDecoders(apiDecoders)Nylo.getNavigatorObservers()Nylo.addNavigatorObserver()Nylo.removeNavigatorObserver(observer)Nylo.getRouteHistory()
Nylo.getCurrentRoute()Nylo.getPreviousRoute()Nylo.getCurrentRouteName()Nylo.getPreviousRouteName()Nylo.getCurrentRouteArguments()Nylo.getPreviousRouteArguments()loading parameter to NyPullToRefresh widgetloading parameter to NyListView widgetNyThemeOptions added to store theme colorsNyRouteHistoryObserver class for handling route historytransition on a route e.g. router.route(DashboardPage.path, (_) => DashboardPage()).transition(PageTransitionType.bottomToTop)transitionSettings on a route e.g. router.route(DashboardPage.path, (_) => DashboardPage()).transitionSettings(PageTransitionSettings(duration: Duration(milliseconds: 500)))addRouteGuard on a route e.g. router.route(DashboardPage.path, (_) => DashboardPage()).addRouteGuard(MyRouteGuard())addRouteGuards on a route e.g. router.route(DashboardPage.path, (_) => DashboardPage()).addRouteGuards([MyRouteGuard(), MyRouteGuardTwo()])authRoute on a route e.g. router.route(DashboardPage.path, (_) => DashboardPage()).authRoute() // new auth routeinitialRoute on a route e.g. router.route(DashboardPage.path, (_) => DashboardPage()).initialRoute() // new initial routeNew store() method added to String extension. E.g. await StorageKey.userToken.store("123");
store() method added to String extension. E.g. await StorageKey.userToken.store("123");read method added to String extension. E.g. await StorageKey.userToken.read()addToCollection method added to String extension. E.g. await StorageKey.userToken.addToCollection("10");readCollection method added to String extension. E.g. await StorageKey.userToken.readCollection()fromStorage and fromBackpack method to accept a default value. E.g. await StorageKey.userToken.fromStorage(defaultValue: "123");Add new jsonFlag to metro constants
jsonFlag to metro constantsNew helper in NyState called data() to get data from the state.
NyState called data() to get data from the state.paddingOnly and paddingSymmetric added to the following widgets:
TextRowColumnContainerSingleChildRenderObjectWidgetStatelessWidgetImage extensions added:
localAsset() can be used to load an image from your assets folder. e.g. Image.asset('my-image.png').localAsset() // load from assets foldercircleAvatar can be used to load an image as a circle avatar. e.g. Image.asset('my-image.png').circleAvatar()shadow extension added to Container widget. e.g. Container().shadow() or Container().shadowLg()onTap helper added to StatelessWidget e.g. Text('Hello').onTap(() => print('Hello'))onTapRoute helper added to StatelessWidget e.g. Text('Home Page').onTapRoute(HomePage.path)* Update the pubspec.yaml
New extension toMap on Iterable > to convert a list of MapEntry's to a Map.
toMap on Iterable<MapEntry<String, dynamic>> to convert a list of MapEntry's to a Map.NyStatefulWidget controller is now not nullable. You can call the controller like this widget.controller.myMethod().
NyStatefulWidget controller is now not nullable. You can call the controller like this widget.controller.myMethod().NyState's validate helper.network helper to now always accept new bearerToken passed into the method.data() method to accept a new key parameter. Now you can check for a key using widget.controller.data('my_key').Ability to set routes as the initial page and auth route in MetroService
MetroServiceNyTemplate now contains a new options variable to set more meta data about the templateMetroService not adding api services to the config fileNew makeInterceptor helper added to MetroService.
makeInterceptor helper added to MetroService.NyController.DioApiService class to the package.state to Controller.New runProcess helper added to MetroService.
runProcess helper added to MetroService.New addToTheme helper added to MetroService.
addToTheme helper added to MetroService.Update the look for Toast Notifications
refreshPage to set the state of the Widget.NyPage
Improve regex to auto add classes and routes
NyPage widget - Learn more hereaddControllersupdate validator & updateState docs
Add event_bus_plus to the library
event_bus_plus to the library* Update pubspec.yaml
Add optional builder callback to the route.generator() method. This can be used to override the default Widget returned.
route.generator() method. This can be used to override the default Widget returned.Fix nyColorStyle to use the correct theme color
New helper to check if the device is in dark mode.
Ability to set a default value on NyStorage
NyStorage.readAdd new toast notification helpers to NyState
NyState
New feature - paginate through your List's, you can now call [1,2,3,4,5].paginate(itemsPerPage: 2, page: iteration).toList();
paginate through your List's, you can now call [1,2,3,4,5].paginate(itemsPerPage: 2, page: iteration).toList();NySwitch this widget allows you to provide a List of widgets and index for which should be the child widget.nyApi helper. Now you can pass in a page like api<ApiService>((request) => request.listOfDataExample(), page: 1);. This will add a query parameter on your url like "my-example-site.com/todos?page=1".color helper from NyStatestateInit from NyStatestateData to NyStateloading as the new parameter when you need to override the Loading widget.newItem to item* Update pubspec.yaml
Add event_bus_plus to pubspec.yaml
addEventBus to Nylo classlockRelease on the validate helperNyPullToRefresh this new widget provides a simple way to implement pull to refresh on your list views.NyListView this new widget provides a simple way to implement a list view.child callbackupdateState helper to allow your to update the state of a NyState from anywhere in your projectsyncToBackpack methodfromBackpack on Strings - Allows you to read a model from your Backpack instance. E.g. User user = StorageKey.authUser.fromBackpack().numericNyFutureBuilder to allow null types to be returned in the child(context, data) callbackreboot method added to NyState, it will re-run your boot() methodrouteToAuth() & routeToInitial()afterNotLocked() method added to NyState.New helper added to Nylo class initRoutes()
Nylo class initRoutes()Add generic type to saveCollection() helper.
saveCollection() helper.Your coding agent can read these notes before it upgrades. Set up the MCP server →