Learn

Modules and nested navigation

Compose feature-owned Modules into application-owned Mounts and independent Navigator Scopes.

v0.1.0-dev.2Intermediate

Modules and nested navigation

A feature exports a NavigationModule containing Route Definitions. The application decides where it appears by creating NavigationMount values. This allows the same catalog module to be mounted in authenticated and guest applications without subclassing generated routers.

Each NavigationScopeDefinition owns an independent Navigator stack. Parent-child relationships describe nested navigation structurally; NavigationOutlet renders a known child while NavigationActiveOutlet renders the active branch of a shell.

Switching branches preserves sibling stacks. Reset is explicit:

dart
await navigation.activateBranch(const NavigationScopeId('catalog-tab'));
await navigation.resetBranch(const NavigationScopeId('profile-tab'));

If the same Destination type is reachable through several mounts, automatic placement would be ambiguous. The caller selects a NavigationMountId or complete NavigationTarget instead. Ark Navigation fails the operation rather than choosing the first matching route.

Navigator keys remain internal to the Session. Application identity uses typed Scope, Mount, Route, and Entry IDs, avoiding static-key collisions between structurally similar routes.

ARKTELOS

Purpose-built engineering systems for software that has to hold.