Learn

Runtime, lifecycle, and restoration

Own one Session per Flutter View, preserve restorable state, and update shared Graphs without orphaning entries.

v0.1.0-dev.2Advanced

Runtime, lifecycle, and restoration

Create one NavigationSession for one Flutter View and dispose it with that view. Multiple windows may share an immutable Graph through NavigationRuntime, but each Session retains independent stacks, history, and route information.

Restorable routes require a bidirectional URI codec. Use NavigationRestorationPolicy.sessionOnly only for process-local values that cannot survive restart. Prefer stable identifiers in Destination values; resolve current entities through application services after restoration.

NavigationRuntime.updateGraph changes the shared definition transactionally. The caller chooses how active entries affected by removed routes are handled:

  • reject the update;
  • remove orphaned entries;
  • migrate each entry to a compatible typed Target.

Migration preserves entry lifecycle and outstanding tickets, so the replacement route must retain the same result type.

Separate Flutter Engine isolates cannot share objects. NavigationSessionBridge defines a serializable route-configuration boundary; the application still owns transport, authentication, ordering, and retry behavior.

ARKTELOS

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