~/talk

Your Life With (and Without) Observation

Talkat Swift Connection 2023 · 2023-09-21..09-22· [swift]
speakerdeck:avielg
slides:none on file

Observation replaces ObservableObject for SwiftUI state, ships in Swift 5.9 as part of the stdlib and requires iOS 17+, uses opt-out by default macros that compile into getters/setters calling a per-instance registar and a thread-local access list to record accessed keypaths, then installs observations to call onChange only for actual property changes. It supports nested optionals and collections, forbids lazy/custom property wrappers and no value types, and Xcode 15 can expand the macros so the generated code is debuggable.

AI-written summary · about

  1. 0:00Introduction to observation
  2. 1:22Limitations of ObservableObject
  3. 3:28Observable vs ObservableObject
  4. 5:12Under the hood of Observation
  5. 8:06Registrars and access lists
  6. 11:06Observation tracking
  7. 13:44Tracking implementation
  8. 17:31Summary of tracking workflow
  9. 18:50Migration and pitfalls
  10. 21:57State vs. Identity
  11. 24:06Real world animation examples
  12. 27:13Escaping content closures
  13. 31:11Limitations and takeaways
  14. 33:13Q&A and conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.