- Router V1: added
pushReplacementNamedhelper - Router V1 and V2: added navigator-based helper alternatives so apps can resolve
Navigator.of(context)once and chain navigation calls - Router V2: navigation helpers aligned to
go_routerURL-first usage with named route location generation (pathParameters,queryParameters,fragment) - Router V2: extended
RoutingArgumentsV2withpath(String key)for path parameters andfragmentsupport
- Warning: Minimum SDK version bumped to
>=3.10.0and Flutter to>=3.38.0 - Preferences: lazy initialization of
SharedPreferences— getters now safely handle uninitialized state, setters/removers lazily initialize instance on first use
- Code improvements to avoid issues under certain conditions
- Pub.dev score improvements: fixed all
example/analysis issues —file_names(renamed all PascalCase files tosnake_case),constant_identifier_names(renamedROUTE,METHOD,STORE,TABLE,COL_*constants tolowerCamelCase),overridden_fields(movedoptionsinitialization toinitState()),prefer_const_constructors_in_immutables(addedconstto screen and body widget constructors), andundefined_enum_constanterrors (updated enum references to match renamedlowerCamelCasevalues)
- Pub.dev score improvements: fixed lint issues across core and provider files —
@overrideannotations added, router constructors usesuperparameters,ImagesDirectoryImageWidgetconstructor corrected,translator.dartmounted-check log added,_HTTPSourceResponsemade private,AppDataStatesnapshot positioning corrected
- Warning: Breaking changes —
StatefulWidgetState,ResponsiveScreen, andMainDataProviderSourceStateenum values renamed tolowerCamelCase(e.g.NotInitialized→notInitialized,UnDetermined→unDetermined,UnAvailable→unAvailable) - Warning:
pull_to_refreshdependency removed;ListDataWidgetpull-to-refresh now uses Flutter's built-inRefreshIndicator—PullToRefreshOptions.headerfield removed - Replaced
sqflitewithsqflite_common_ffienabling Windows and Linux platform support; FFI initialization is handled automatically insideSQLiteSource AbstractResponsiveScreenStateandAbstractResponsiveWidgetState: replaced crash on null snapshot with safe fallback tosmallPhoneScreensuper.keysyntax adopted across all widget constructors (AbstractDataWidget,AbstractResponsiveWidget,ScreenMessengerWidget,ResponsiveWidget,ListDataWidget)Containerreplaced withSizedBox/Paddingwhere only sizing or padding was neededLoadingItemWidget: replacedSliverList(SliverChildListDelegate([...]))withSliverToBoxAdapterfor single-child case- Added
go_routerdependency and Router V2 support CoreApp:onGenerateRouteis now optional; newrouterparameter accepts aGoRouterfor V2 mode — exactly one must be providedCoreAppV2 mode usesMaterialApp.router; initialization overlay handled internally, navigates toinitialScreenRouteviaGoRouter.go()after init completes- New
router_v2.dart:RoutingArgumentsV2,pushNamedV2,goNamedV2,popNotDisposedV2,createGoPage,createGoPageFade,createGoPageNoAnimation;BuildContextextensionscontext.routingArguments(V1) andcontext.routingArgumentsV2(V2) - V1 (
router_v1.dart,onGenerateRoute,RoutingArguments,pushNamed,pushNamedNewStack,popNotDisposed) fully preserved — zero breaking changes for existing projects - Warning:
DarkModeenum values renamed tolowerCamelCase(Automatic→automatic,Enabled→enabled,Disabled→disabled) super.keyadded to remaining widget/provider constructors (AppDataState,ScreenDataState,RestApiProvider,SembastApiProvider,LoadingItemWidget,LoadingItemFullScreenWidget).forEachlambdas replaced withforloops throughoutRestApiClientandSembastApiClientScreenMessageinitializer list: removed redundantthis.prefixCoreAppV2 mode: fixedTranslatornot initialized before first screen build — initialization overlay now renders without GoRouter child, preventing routeStatecreation until aftertranslator.init()completes
- Warning: Breaking changes —
Translator.changeLanguageis now async and reloads translations internally (remove separateinitTranslationscall);initTranslationsno longer takes aBuildContext; Preferences in-memory cache maps are now private (direct access to globalintPrefs/stringPrefs/doublePrefs/boolPrefsremoved) - Warning: Removed
flutter_hooksdependency andAbstractHooksWidget; removed redundant utilities (form.dart,AsyncVoidCallback,firstWhereOrNull/lastWhereOrNull— usepackage:collectioninstead) - CoreApp: added missing MaterialApp parameters (
scrollBehavior,color,themeAnimationDuration,themeAnimationCurve,shortcuts,actions,localeResolutionCallback,restorationScopeId) - CoreApp: fixed
AppDataState.updateShouldNotifyto returntruesoconstwidgets correctly rebuild on snapshot changes - Translator: fixed
changeLanguage— now reloads translations and notifies locale change in one async call - Translator: fixed
initTranslationsnot updatingcurrentLanguagewhen language param was provided - Preferences: added
boolsupport (prefsBool,prefsSetBool,prefsRemoveBool) - Router:
FadeAnimationPageRoutenow correctly fades out viasecondaryAnimationwhen another route is pushed on top - Router:
BoundaryPageRoutefixed race condition between overlay insertion and route push; fixed overlay removal happening insideAnimatedBuilderbuilder - DataModel: simplified to pure interface, removed stored
jsonfield
- Updates to latest Flutter and dependencies
- Additional utils for working with DateTime, Jiffy
- Improvements to AbstractStatefulWidgetState for some common patterns
- Updates to dependencies
- Tweaks
- Updates to dependencies
- Body extendBodyBehindAppBar
- Updates for latest Flutter SDK
- Change hooks invalidate to int
- Get first day of week for 1-7 range
- Translator improvements and tweaks
- Replace deprecated use of global window for numbers
- Upgrade UUID package
- Add missing return type
- Improve setStateNotDisposed
- Improve compatibility with latest Flutter
- Fix concurrent list access issue
- Add onGenerateInitialRoute callback to customize initial Route
- Dependecies update
- Fix missing export for ResponsiveWidget
- SembastApiClient improvements
- Newly improved and dedicated SembastApiClient/Provider, it is replacement for using general MainDataProvider
- Warning: Replaced deprecated use of Theme.of(context).backgroundColor
- Warning: Code refactor to support better current Flutter
- ResponsiveWidget as alternative to ResponsiveScreenState
- Useful date utils as extension for DateTime
- Generic Debouncer utility
- Additional typedefs
- Improve truncateText util
- Change routes generation for V1
- RouterV1 tweaks
- RouterV1 tweaks
- Warning: Dependecies upgrade, some may have breaking changes
- Update Translator to support country code
- Change intl to any to avoid issues with Flutter sdk
- Change CoreApp initialization
- List mapUnique util
- Warning: AbstractHooksWidget removed firstBuildOnly to avoid breaking code patterns
- Set custom backgroundColor for each screen
- Upgrade dependencies with some breaking changes
- Increase SDK versions
- Utils for typedefs
- AbstractScreenOptions added canPop var for use with AppBar
- Warning: AbstractScreen safeArea option changed
- Tweaks
- Listen to AppLifecycleState changes
- Improvements to screen state options
- Fix wrong addScreenMessage typedef
- Warning: ScreenMessagner changed to object from string
- Form & Widget utils
- AbstractScreenState improvements
- ScreenMessenger refactor for better logic/usage
- Hotfix
- Support for flutter_hooks, AbstractHooksWidget as Stateless widget with hooks
- Warning: AbstractScreenStateOptions are now called AbstractScreenOptions
- Improvements to screen options
- Improvements to Preferences
- Improvements to Translator and AppBarOption
- Update all able dependencies
- Fix wrong DataRequests identification when pagination in use
- Fix bad pagination behaviour under certain conditions
- Warning: pagination is enabled by default
- SQLite and HTTP sources support pagination
- Automatic pagination is integrated with ListDataWidget
- Update packages
- Updates, make sure working with Flutter 2.10
- Fix post Dio requests not sending data
- Update dependencies
- Http communication prefers Dio instead of Http client
- Update ListDataWidget to include error state and flow
- Update packages to latest versions
- ListDataWidget expose optional controller
- CoreApp add banner for debug
- Fix wrong theme use when DarkMode and no DarkTheme
- Improve usage of Translator by providing String extensions
- HTTPSource have consistent endpoint usage
- HTTP DataTask for POST enable sending as json
- BoundaryPageRoute optional action before push
- Translator support for dynamic parameters in translations
- Use dynamic headers instead of update of MainDataProvider options
- CoreApp now updated MainDataProvider options & sources
- BoundaryPageRoute improve transition smoothness & add failsafes
- BoundaryPageRoute improve transition layout structure
- BoundaryPageRoute fix BorderRadius behaviour
- BoundaryPageRoute transition support optional BorderRadius
- BoundaryPageRoute transition & widget
- ListDataWidget support for initial full screen loading
- ListDataWidget support pullToRefresh
- Fix DarkMode automatic startup
- Improve DarkMode automatic startup
- Improve DarkMode handling/switching
- CoreApp Dark theme detection and support
- Utils improvements
- ScreenDataState supports also optional Tag/s for isLoading pairing
- MDP SQLiteSource and SembastSource deleteWhere DataTask type for multiple records batch deletion
- ScreenDataState with isLoading, executeAsyncTask and extensibility
- Fix variable typo
- Fix missing code
- MDP MockupSource better comform to other sources
- MDP sources now sent optionally SourceException instead of crashing
- Mockup data by optional param in Requests & Tasks
- Removed CoreAppState invalidateApp as it does not do what it used to
- MockUpSource support for query Task
- Partially implement MockUpSource, works for DataWidgets
- Invalidate CoreApp when init done
- Add Color utils
- Builder param for CoreApp
- SembastSource options add DB migration parameters
- Update dependencies
- CoreApp push after initialization optional arguments
- Warning: changes to exports from package, may require updated imports and dependencies
- Finished HTTPSource implementation
- SembastSource implementation
- Warning: changed the way ScreenState options are overriden/initialized
- ScreenState options build preProcessor
- Drawer permanently visible support
- bugfixes
- Previous dispose of ValueNotifiers of MainDataSource caused issues, different resolution implemented
- Add options for floating action button
- Add support for floating action button of screens
- Change AppBar, BottomBar & Drawer to be more loosely defined
- Handle situation with RouterV1 when wrong type cast
- Sound null-safety achieved
- SQLiteSource add onUpgrade & onDowngrade to the options
- HTTPSource do not crash app on no network error
- Translator get initial language fun
- DataTask for HTTPSource give option to override used url
- Dispose of ValueNotifiers used by MainDataSources
- Update dependencies which were possible to update without conflicts
- Add useful text utils
- SQLiteSource allow DataTasks with raw queries
- ReFetch data for any initialized source from app
- DataTask processResult allow nullable result
- SQLiteSource execute DataTask supports one time queries
- Reorganize code into private/public for better autoImport experience
- DataRequest processResult allow nullable result
- More CoreApp initialization options
- Initial release
- Working CoreApp with Widgets & Screens
- Router
- Translator
- Preferences
- MainDataProvider partially working (SQLite done, HTTPClient partial, others todo)