Nine single pages that go all the way into one subject. Each collects what the course says about it, from every lesson that touches it, and goes further than any one lesson can.
What a view becomes once SwiftUI has it: a handful of numbered nodes, edges made by reads, and one zero-byte node per @State — every number on these pages read out of a running app
8 pages: the code beside its graph, a debugger you tap through, and every number taken from AttributeGraph's own dump.
await, in fullWhat one await does to a function, how a loop with an await in it is built, what waiting really is, how for await and AsyncStream are made of those, and what an await does to an actor — each with a program that compiles and runs
9 sections, each built on the one before: one await cut into two functions, a loop with an await in it, the machine code, a continuation parking a task, for await as the compiler writes it, a stream by hand and then AsyncStream, a cancelled task, and await on an actor — the main one, one of your own, and one with a queue of its own.
await is a new function · lesson 37await in it · lesson 40for await: the loop the compiler writes for you · lesson 40AsyncStream · lesson 40Task, and when the task is cancelled · lesson 40await on an actor: the main actor, and one of your own · lesson 38Binding, @Binding and @BindableFrom one Binding you make by hand, up to the two property wrappers that write it for you, with a small implementation of each that compiles and runs
9 sections, each adding one thing to the last: a Binding made by hand, a small implementation of it, @Binding, a Binding to part of a value, and @Bindable, all compiled and run, and then what the real ones add.
Binding yourself · lesson 17@Binding: the same thing, with nicer syntax · lesson 17$value.property: a Binding to part of a value · lesson 17Binding to a property of an object · lesson 18@Bindable: that, for any property · lesson 18What it keeps, when it makes its rows, and how it tells them apart — the loop SwiftUI has instead of a for
6 sections, run on the simulator: a thousand-row List, and a list identified by position and by name.
Every kind and what decides it, every step a path can take, and how one is built and used — in SIL, in LLVM IR, and in the source of the standard library, the optimizer and SwiftUI
12 sections, every piece of code run on the simulator.
[keyPath:] compiles to · lesson 13@dynamicMemberLookup, in full · lesson 13@Observable, in fullHow one plain read in a body registers the view to be told when the property changes — the list on the thread, observableObject's registrar, and the closure that holds the view's node — with a model of the whole path that compiles and runs
10 sections: what an observable is, the question, its answer as a sequence diagram, a model of the path with Apple's type names, compiled and run — and Observations, the loop built on the same path, written small and run beside the real one.
observableObject's registrar: where the closures wait · lesson 16Observations: every change of what a closure reads, as a sequence · lesson 18Observations works · lesson 18~Copyable, borrowing, inout, consuming, consume, copy, deinit and discard self — and what the compiler does underneath
11 sections, every piece run on the simulator, down to the SIL.
~Copyable · lesson 40consume and copy: ownership you can write in an expression · lesson 40deinit and discard self · lesson 40Continuation · lesson 40~Copyable widens what is accepted · lesson 40Array refuses, InlineArray accepts · lesson 40switch over a noncopyable enum · lesson 40~Escapable: values that cannot outlive their scope · lesson 40Every method a builder can have — the statement that calls it, what it receives, the call written out — and what SwiftUI's own builder leaves out
15 sections, every piece of code run on the simulator.
buildExpression — every value, first · lesson 4buildBlock — one call per block · lesson 4buildPartialBlock — the same job, two at a time · lesson 4buildOptional — if without else, and if let · lesson 4buildEither — if/else and switch · lesson 4buildArray — for … in · lesson 4for loop is taken apart · lesson 4buildLimitedAvailability — if #available · lesson 4buildFinalResult — once, at the end · lesson 4ViewBuilder has no buildArray · lesson 4When an @Observable model is never freed, and when it is. A SwiftUI view is a struct whose body is a getter, and SwiftUI keeps the closures it writes, so a screen that only names its model never traps it; the model it owns can, through a closure it stores, a task or timer that never ends, or a reference that leads back. Every case is run — the screens in a real window, shown and popped — and shown freed or still alive
7 sections: the one rule and why the screen is exempt, a model that holds a closure, a task or timer that never ends, cycles with no closure of yours, weak against unowned and deinit, how to find one, and a project of twelve leaks to open.