8.13 · What a ViewBuilder produces, and saving and restoring a navigation path

Two things that look like magic: how a pile of statements becomes one view type, and how a stack’s path survives a relaunch. Both can be inspected directly.

Mental model. The compiler turns body into a nested generic type that SwiftUI diffs; the navigation path is a list of Hashable values, and saving it saves type names and values.

Types and paths

The type a builder creates, and persisting a NavigationPath.

  1. What type does a ViewBuilder body actually produce for modifiers, if, several views and AnyView, and why does it matter? 8.13.1 · L3
    Printing the type of body shows what the compiler built (SDK 27, macOS check). Modifiers nest: ModifiedContent<ModifiedContent<Text, _PaddingLayout>…
  2. How do you save and restore a NavigationPath, and what can go wrong? 8.13.2 · L3
    A NavigationPath is a type-erased stack of Hashable values. It can produce a CodableRepresentation through path.codable, which is nil unless every element is…

More in SwiftUI