services
Routers

Routers Service

By default Aurora comes with a router service. This service is using the go_router package for navigation. This service is using the riverpod package for state management. This service is using the go_router_builder dev package for type-safe navigation.

├── routers
│   ├── app_router.dart
│   ├── app_router.g.dart
│   ├── router_provider.dart
│   └── router_provider.g.dart

app_router.dart

This file contains the AppRouter class. This class is responsible for providing the navigation service to the app. This class is using the go_router package for navigation.

Here you will add routes for your app.

Instead of using URL strings to navigate, I am using type-safe navigation in this app. For this I am using the go_router_builder dev package. This package is used to generate extended the AppRouter class.

Here is the AppRouter class with the go_router_builder annotations.

services/routers/app_router.dart
part 'app_router.g.dart';
 
@TypedGoRoute<HomeRoute>(
  path: AppRouterPath.home,
  routes: <TypedGoRoute<GoRouteData>>[],
)
class HomeRoute extends GoRouteData {
  const HomeRoute();
 
  @override
  Widget build(BuildContext context, GoRouterState state) => const HomePage();
}
 
// Other routes
 

This file has a part file. This file is generated by the flutter pub run build_runner build command. This file is used to provide the localization service to the app.

services/routers/app_router.g.dart
// GENERATED CODE - DO NOT MODIFY BY HAND

router_provider.dart

This file contains the GoRouter class. This class is responsible for providing the navigation service to the app. This class is using the riverpod package for state management.

services/routers/router_provider.dart
part 'router_provider.g.dart';
 
@Riverpod(keepAlive: true)
// ignore: unsupported_provider_value
GoRouter router(RouterRef ref) {
  final key = GlobalKey<NavigatorState>(debugLabel: 'routerKey');
 
  return GoRouter(
      navigatorKey: key,
      debugLogDiagnostics: true,
      initialLocation: ref.watch(initialRouteProvider),
      routes: $appRoutes,
      errorBuilder: (c, s) => ErrorRoute(error: s.error!).build(c, s));
}
 

This file has a part file. This file is generated by the flutter pub run build_runner build command. This file is used to provide the localization service to the app.

services/routers/router_provider.g.dart
// GENERATED CODE - DO NOT MODIFY BY HAND