beamer
A routing package built on top of Router and Navigator's pages API, supporting arbitrary nested navigation, guards and more.
1.7.0
67K downloads/mo
#1300 most downloaded on pub.dev
slovnicki/beamer
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 8 months
Nearly every release is documented
notes for 69 of 69 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
91 releases · first in 2021
0 releases in the last 12 months
see the full history below
Release timeline
91 releases · Jan 2021 to Oct 2024Releases
latest 60 of 91-
2.0.0-dev.109 Mar 2024 pre-releaseNothing published for this version
-
2.0.0-dev.029 Jun 2023 pre-releaseRelease notes
Open source →DISCLAIMER
This is in no way a big fancy release, just a push of all the important and breaking changes that have been sitting in
masterfor too long, hoping for a major release that didn't come yet. Now we can continue towardsv2...
- BREAKING: bump lower SDK constraint to 2.14
- BREAKING:
BeamPage.keyis now required (#443) - BREAKING:
BeamGuardfunction now have 1 additional parameter which is a persistent deep link set by the platform or developer (#567) - Fixed: rebuild of nested
Beamerupon deep link (MarkRunWu, #557) - Fixed:
BeamParameters1-off in history (themartorana, #562)
Examples
- Added bottom_navigation_riverpod (vduseev, #601)
- Added bottom_rail_navigation_multiple_beamers (Protoss78, #539)
- Fixed logout behavior in authentication_bloc (fallouh, #590)
-
1.7.008 Oct 2024Release notes
Open source →- Added: Optional
pathtoBeamPageto offer more natural pop control thanpopToNamed. This will most likely become required in v2
Release notes
Open source →- Added: Optional
pathtoBeamPageto offer more natural pop control thanpopToNamed. This will most likely become required in v2
- Added: Optional
-
1.6.218 Sep 2024Release notes
Open source →Release notes
Open source → -
1.6.109 Mar 2024 -
1.6.006 Jan 2024Release notes
Open source →- Fixed: Usage of deprecated
RouteInformation.location - Improved: Package metadata
Release notes
Open source →- Fixed: Usage of deprecated
RouteInformation.location - Improved: Package metadata
- Fixed: Usage of deprecated
-
1.5.629 Jun 2023Release notes
Open source →Release notes
Open source → -
1.5.522 May 2023 -
1.5.416 May 2023 -
1.5.305 Sep 2022 -
1.5.216 Aug 2022Release notes
Open source →Release notes
Open source → -
1.5.114 Aug 2022 -
1.5.011 Jun 2022Release notes
Open source →- Added:
onUpdatemethod toBeamLocationwhich is called afterinitStateand on everyupdate. (#507, #88c8537). See this example that demonstrates its possible usage. - Added:
isEqualToextension method toRouteInformation(intentionally not overriding the equality operator) - Fixed: Possible wrong URL after global rebuild with multiple child Beamers (#523)
- Fixed: Consistency of calls to
BeamLocation.updateState(#484) - Fixed: Resetting
popConfigurationafterpopToNamedparameter has been used in abeamToNamedcall (#521)
Documentation
- Added explanation of some specific parameters at Nested Navigation section in README (#514)
Examples
- Improved books_blos example with usage of new
BeamLocation.onUpdate
Ecosystem
- Added a beam_location brick
- Various improvements on website (devj3ns)
- Added:
-
1.4.111 Apr 2022Release notes
Open source →- Fixed: Initial guarding browser URL (#501, b2a9f0b)
- Fixed: Deeper routes matching with asterisk (cgaisl, #494, #502)
- Fixed: Nested navigation crash with guards (svsk417, #490)
- Fixed: Breaking out of
popToNamedloop (Goddchen, #500)
Documentation
- Added website app; a starting point for extensive, self-explanatory Beamer documentation at beamer.dev
- Fixed typos and added doc comment for accessing root Beamer (gazialankus)
-
1.4.1+113 Apr 2022 -
1.4.024 Feb 2022Release notes
Open source →- Added: Relative beaming, i.e. being able to call
beamToNamed('path')instead ofbeamToNamed('/my/path')if we're already at/my. Important note: This will affect all beaming that is not using the leading/, i.e. it will treat it as relative and append it to current path. - Added: New
BeamPageTypes;slideRightTransition,slideLeftTransitionandslideTopTransition(Shiba-Kar, #477) - Improved: Interactions between nested and sibling Beamers by having children automatically take priority and more carefully handle locally not found cases
- Fixed: Unnecessary update of
ChangeNotifiercustom state (jmysliv, #475) - Fixed:: Target
BeamLocationinitialization duringbeamBack - Fixed: Insufficiently detailed automatic
BeamPage.keyin someRoutesLocationBuilder.routesusage of*
Examples
- Added a new example: multiple_beamers
- Improved and simplified bottom_navigation_multiple_beamers example
- Fixed updating Beamer in authentication_riverpod example
- Added: Relative beaming, i.e. being able to call
-
1.4.0+126 Feb 2022 -
1.3.006 Feb 2022Release notes
Open source →- Added:
strictPathPatternstoBeamLocationwhich will do only exact matches of URI and path pattern (5810c9c) - Added:
updateListenabletoBeamerDelegatewhich will triggerupdatewhen it notifies (f0ccfd7) - Added: Support for replacing the browser history entry when using
beamToReplacement*or specifyingreplaceRouteInformation: true - Added: Support for setting
opaqueproperty onBeamPage(ggirotto, #446) - Added:
initializeFromParentproperty toBeamerDelegateto overcome the limitation ofupdateFromParentand give finer control over parent interaction (340b474) - Fixed: Browser back/forward buttons behavior, i.e. browser history
- Fixed: Initialization of target
BeamLocationwhen beaming back (#463) - Updated: Return values for
beamBackandpopBeamLocationcontext extensions (marcguilera, #461, 1045ab3) - Updated: The entire guarding flow (thanks mat100payette for important feedback and contribution)
Examples
- Fixed some edge cases in advanced_books example (jpangburn, #451)
- Updated authentication_bloc example guard usage (df194e8)
- Added:
-
1.2.005 Jan 2022Release notes
Open source →- Fixed: Using the
initialPathinstead of parent's path on nestedBeamerDelegateduring initialization from parent when theupdateFromParentis set tofalse(samdogg7)
Documentation
- Added a section about Page Keys to README (Goddchen)
- Added a sentence about browser's back button to README
- Fixed and improved grammar in doc comments (ggirotto)
Examples
- Fixed analyzer warnings (Goddchen)
- Updated authentication_bloc example to bloc v8 (Lorenzohidalgo)
- Fixed: Using the
-
1.1.013 Dec 2021Release notes
Open source →Most of this release is matuella's directly and indirectly contributions. Many thanks!
- Add: a link to Medium article for "Migrating" section in README
- Add: lint rules
prefer_single_quotes,always_use_package_imports,omit_local_variable_types,prefer_final_localsandcomment_references. - Fix: disposing histories on
beamBack(#417) - Fix: updating history when setting
statemanually (#420) - Deprecate: unused
BeamerDelegate.preferUpdate - Improve: tests setup (Thanks cedvdb)
-
1.0.003 Dec 2021Release notes
Open source →- BREAKING: "top-level state", the one in
BeamerDelegateis nowRouteInformationinstead ofBeamStateBeamerDelegate.statedoesn't exist anymore and is replaced withBeamerDelegate.configurationwhich isRouteInformationand notBeamStatelocationBuildernow works withRouteInformationandBeamConfigurationinstead ofBeamStatesuper()constructor onBeamLocationnow takes optionalRouteInformationinstead ofBeamState- in order to continue using custom
BeamLocations withBeamStatestate, generic type has to be specified;class MyBeamLocation extends BeamLocation<BeamState>
- BREAKING:
pathBlueprintsis renamed topathPatternsBeamLocation.pathPatternsisList<Pattern>BeamState.pathBlueprintSegmentsrenamed toBeamState.pathPatternSegmentsBeamGuard.pathBlueprintsrenamed toBeamGuard.pathPatterns
- BREAKING:
SimpleLocationBuilderis renamed toRoutesLocationBuilder- also the
SimpleBeamLocationis renamed toRoutesBeamLocation routesvalues now additionally receivedata
- also the
- BREAKING:
beamStateHistoryandbeamLocationHistoryhave been replaced withbeamingHistorythat is aList<BeamLocation>and eachBeamLocationhashistorythat isList<HistoryElement>whereHistoryElementholdsRouteInformationandBeamParameters.clearBeamStateHistoryandclearBeamLocationHistoryhave been removed.
- BREAKING:
BeamerDelegate.listenerhas been renamed toBeamerDelegate.routeListener. - BREAKING: The property
pageRouteBuilderinBeamPageis replaced with a new propertyrouteBuilderwhich works with anyRouteBuildernot justPageRouteBuilder. - BREAKING:
BeamGuardbeamToreceives the origin and targetBeamLocations alongsideBuildContext.replaceCurrentwas removed in favor ofbeamToReplacement.
- BREAKING:
BeamGuardbeamToNamedis now a function that receives the origin and targetBeamLocations and returns aString.replaceCurrentwas removed in favor ofbeamToNamedReplacement.
- Add: guard_riverpod example
- Add: firebase_core example
- Add: firebase_auth example
- Add: change_notifier_custom_state example
- Add:
BeamerBackButtonDispatcher.alwaysBeamBackto make Android back button always go to previous route, even if it canpop. - Add:
BeamPage.routePopthat can be used foronPopPageinstead of defaultpathsegmentPop - Add:
BeamerDelegate.buildListener, which is called after the pages are built. - Add:
fullScreenDialogproperty toBeamPage - Add: flutter_lints
- Add: a presentation resource about beamer
- Fix: clearing history range when using
popToNamed - Fix: passing
BeamPage.titletoCupertinoPageRoutes
- BREAKING: "top-level state", the one in
-
1.0.0-pre.15.018 Oct 2021 pre-releaseNothing published for this version
-
1.0.0-pre.5.018 Jul 2021 pre-releaseNothing published for this version
-
1.0.0-pre.4.006 Jun 2021 pre-releaseNothing published for this version
-
1.0.0-pre.3.016 May 2021 pre-releaseNothing published for this version
-
1.0.0-pre.2.114 Apr 2021 pre-releaseNothing published for this version
-
1.0.0-pre.2.011 Apr 2021 pre-releaseNothing published for this version
-
1.0.0-pre.1.009 Apr 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.925 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.824 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.724 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.622 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.521 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.421 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.316 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.210 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.109 Mar 2021 pre-releaseNothing published for this version
-
1.0.0-nullsafety.027 Feb 2021 pre-releaseNothing published for this version
-
1.0.0-dev.1006 Apr 2021 pre-releaseNothing published for this version
-
1.0.0-dev.006 Apr 2021 pre-releaseNothing published for this version
-
1.0.0-1.0.pre09 Apr 2021 pre-releaseNothing published for this version
-
0.14.121 Jun 2021Release notes
Open source →- Add:
updateParent(defaulttrue) toBeamerDelegate - Fix: ignoring query on initial path
- Add:
-
0.14.008 Jun 2021Release notes
Open source →- BREAKING:
routesinSimpleLocationBuildernow also bring thestate - Add: support for
RegExpinpathBlueprints(in bothBeamGuards andBeamLocations) - Add: updating nested
Beamers on parent navigation - Add:
onBacktoBeamerbackButtonDispatcher - Add:
navigatorgetter toBeamerDelegate - Add:
beamStateHistoryandBeamLocationHistorytocontextextension methods - Add:
dataparameter tobeamBack - Change:
BeamPage.pageRouteBuilderreturn type to be a superclass - Fix: removing last
BeamStatefrom history on defaultpop - Fix:
BeamGuardbehavior on query parameters - Fix: ignoring trailing
/in URIs - Fix: keeping
dataas long as possible when beaming - Improved Android back button behavior
- Improved bottom navigation examples
- Improved README
- BREAKING:
-
0.13.322 May 2021Release notes
Open source →- Add: authentication_riverpod example
- Add: "Tips and Common Issues" to README
- Fix: Drawer pop
- Fix:
beamBackOnPop:truewhile beaming - Make
beamStateHistoryandbeamLocationHistorypublic
-
0.13.218 May 2021Release notes
Open source →- Add:
BeamerDelegate.notFoundRedirectNamed - Add: public static
BeamPage.defaultOnPopPage - Fix: top-level guard updating URL
- Improved guards example
- Improved README Quick Start
- Add:
-
0.13.117 May 2021 -
0.13.016 May 2021Release notes
Open source →- BREAKING: renamed
BeamerRouterDelegatetoBeamerDelegate - BREAKING: renamed
BeamerRouteInformationParsertoBeamerParser - BREAKING: renamed
pagesBuildertobuildPages - BREAKING: renamed
Beamer.of(context).currentLocationtoBeamer.of(context).currentBeamLocation - Add:
BeamPage.popToNamedandBeamPage.onPopPagefor fine control of popping - Add:
BeamPage.titlefor setting the browser tab title - Add:
SimpleLocationBuildercan now mixBeamPages andWidgets - Add:
BeamerParser.onParsefor intercepting the parsed state on app load - Add: encoding the
datainto browser history - Add: blocking capability to
BeamGuards - Add: slide and scale transitions to
BeamPageType - Add: optional
transitionDelegatefor beaming - Fix: cascade guarding
- Fix: delegate listener not being called always
- All examples improved and migrated to null-safety
- Improved documentation
- BREAKING: renamed
-
0.12.427 Apr 2021Release notes
Open source →- Add
Beamer.setPathUrlStrategy()for removing#from URL - Add persistent auth state on browser refresh in authentication_bloc example
- Fix detection of
NotFoundwhen usingSimpleLocationBuilder - Fix updating route on guard actions
- Fix not pushing
BeamStatein history if it's on top - Fix taking
currentLocationon setting initial path
- Add
-
0.12.324 Apr 2021Release notes
Open source →- Add authentication_bloc example
- Fix
SimpleBeamLocationignoring query - Fix updating delegate state on location state change
-
0.12.223 Apr 2021Release notes
Open source →- Add
listenerattribute toBeamerRouterDelegate - Add
rootattribute toBeamerRouterDelegateand{bool root = false}attribute toBeamer.of - Add
canHandle(Uri uri)method toBeamLocation - Fix Updating parent on nested navigation
- Fix README typos
- Add
-
0.12.119 Apr 2021 -
0.12.018 Apr 2021Release notes
Open source →- BREAKING: There's no
RootRouterDelegateany more. Just rename it toBeamerRouterDelegate. If you were using itshomeBuilder, useSimpleLocationBuilderand thenroutes: {'/': (context) => HomeScreen()} - BREAKING: Behavior of
beamBack()was changed to go to previousBeamState, notBeamLocation. If this is not what you want, usepopBeamLocation()that has the same behavior as oldbeamback() - Fix: Important bug while using multiple sibling
Beamers
- BREAKING: There's no
-
0.11.414 Apr 2021 -
0.11.311 Apr 2021Release notes
Open source →- Add
beamBackTransitionDelegatetoBeamerRouterDelegate - Add
transition_delegates.dartwith some useful transition delegates - Tweak deep_location example to show this more clearly
- Add
-
0.11.207 Apr 2021 -
0.11.106 Apr 2021 -
0.11.005 Apr 2021Release notes
Open source →- migrated to null safety
- BREAKING:
Beamernow takesrouterDelegate, notbeamLocationsdirectly - BREAKING:
BeamerRouterDelegate.beamLocationsis nowlocationBuilder - BREAKING:
pagesBuildernow also bringsstate - Add
beamToNamedtoBeamGuard - Add various
LocationBuilders - Add
transitionDelegatetoBeamLocationandBeamerRouterDelegate - Add
typeandpageRouteBuildertoBeamPage, for transition control - Add
initialPathtoBeamerRouterDelegate - Add
popTo/popToNamedoptions for beaming - Add
onPopPagetoBeamLocation
-
0.11.0+105 Apr 2021 -
0.10.525 Mar 2021 -
0.10.425 Mar 2021