Welcome to go_router!
The Flutter Router
API as specified by
requires an implementation of the
classes. These two implementations themselves imply the definition of a third
type to hold the app state that drives the creation of the
can read an excellent blog post on these requirements on
This separation of responsibilities allows the Flutter developer to implement a
number of routing and navigation policies, including deep and dynamic linking,
but at the cost of
The purpose of the go_router package is to use declarative routes to reduce complexity, regardless of the platform you're targeting (mobile, web, desktop), handle deep and dynamic linking from Android, iOS and the web, along with a number of other navigation-related scenarios, while still (hopefully) providing an easy-to-use developer experience.