The goal of the go_router package is to
simplify use of the Router in
Flutter
as specified
by the MaterialApp.router
constructor
.
By default, it requires an implementation of the
RouterDelegate
and
RouteInformationParser
classes. These two implementations themselves imply the definition of a third
type to hold the app state that drives the creation of the
Navigator. You
can read an excellent blog post on these requirements on
Medium
.
This separation of responsibilities allows the Flutter developer to implement a
number of routing and navigation policies at the cost of
complexity.