Skip to content

3.2.0

Latest

Choose a tag to compare

@dotaeva dotaeva released this 17 Jun 14:41

Simplification: one tracking rule

Destination tracking is now governed by a single rule — auto-track by return type, opt out with @ScaffoldingIgnored.

Breaking

  • Removed @ScaffoldingTracked. There is no longer an explicit opt-in mode; destinations are always derived from a function's return type.
  • Concrete coordinator return types are no longer auto-tracked. A child-coordinator route must return any Coordinatable; a bare -> LoginCoordinator is now skipped like any other unrecognised type.

Model

A function is a destination if its return type is in the auto-tracked table (some View, any Coordinatable, or a tab tuple). Everything else — properties, Void helpers, closures, generics, arrays — is ignored automatically. @ScaffoldingIgnored is only for a function that returns a tracked type but isn't a route (e.g. customize(_:)).

Migration

Source-compatible if you already returned any Coordinatable for child coordinators and never used @ScaffoldingTracked. Otherwise: switch concrete-typed coordinator routes to any Coordinatable, and delete any @ScaffoldingTracked annotations.