Learn
Migration from other routers
Move from Navigator, go_router, or auto_route by replacing hidden behavior with typed contracts and exact operations.
v0.1.0-dev.2Intermediate
Migration from other routers
Migration should preserve user-visible behavior while making contracts explicit.
| Existing concept | Ark Navigation replacement |
|---|---|
| String route or generated class | Handwritten NavigationDestination<R> |
extra or query map in feature code | Typed fields plus one NavigationUriCodec |
Generic go() | Exact stack operation |
| Redirect performing access checks | Redirect plus enter or leave Guard |
| Nested router configuration | Scope tree and explicit Outlet |
| Static Navigator keys | Session-owned keys and typed IDs |
Start with one vertical flow, not the whole application. Define Destination types and observed stack behavior, mount one Module, then replace call sites with NavigationPort. Add URI codecs only for routes that must restore or receive links.
Code generation is not required before calling a route. The handwritten Destination is the stable interface, so features can compile independently before the application chooses Mounts and URI prefixes.