Advanced Topics

Patterns that build on the core concepts.

  • Results — NavigationKey.WithResult<R>, complete(value), and registerForNavigationResult. With two sub-pages on chaining multi-step flows: embedded flows for short callback chains, managed flows for longer or branching sequences.
  • View Models — by navigationHandle<MyKey>() inside a ViewModel, createEnroViewModel { } from a Composable, and shared state across destinations.
  • Animations — NavigationAnimations, per-element animation primitives, predictive back, and shared elements.
  • Testing — runEnroTest, EnroTestRule, TestNavigationHandle, and the assertion surface.
  • Plugins — observe every destination’s lifecycle (open, active, close) for cross-cutting concerns like analytics, telemetry, and instance-metadata tagging.
  • Synthetic Destinations — NavigationKeys whose “destination” is a block of code instead of a screen. Bridges to non-Enro side effects, conditional redirects, and runtime “decider” patterns that pick between several implementations of a single result-bearing contract.

Table of contents


This site uses Just the Docs, a documentation theme for Jekyll.