nonameplum

swift-observation

Apple Observation framework for Swift. Use when modeling observable state with the `@Observable` macro, tracking changes with `withObservationTracking`, integrating with SwiftUI, or working with ObservationRegistrar and Observations async sequences.

nonameplum 17 2 Updated 8mo ago
GitHub

Install

npx skillscat add nonameplum/agent-skills/swift-observation

Install via the SkillsCat registry.

About this skill

The swift-observation skill provides tools for tracking changes in Swift models using the `@Observable` macro and `withObservationTracking`, enabling integration with SwiftUI and async change streams via `Observations`. It solves the problem of efficiently managing observable state and dependencies in reactive applications. Use it when building SwiftUI views that react to model changes or when implementing custom observation logic for non-SwiftUI components.

SKILL.md

Observation

What to open

  • Use swift-observation/observation.md for full API details and examples.
  • Search within it for @Observable, withObservationTracking, ObservationRegistrar, Observations, and ObservationIgnored.
  • Use swift-observation/observations_pre_iOS_26_backport.md for availability notes and backport discussion.
  • Use swift-observation/Observation/ source files to inspect the Observations implementation and any supporting runtime pieces when evaluating backport feasibility.

Workflow

  • Prefer @Observable to make models observable; do not conform to Observable manually.
  • Read properties inside withObservationTracking to define the dependency set.
  • Use ObservationIgnored for properties that should not trigger updates.
  • Use Observations when you need async change streams.

SwiftUI usage

  • For SwiftUI, treat @Observable models as the source of truth and let the view read the properties it needs.
  • Use withObservationTracking for non-SwiftUI rendering or custom observers.

Availability and backport notes

  • Observations is available on iOS 26+; plan for fallbacks on earlier OSes.
  • For pre-iOS 26 support, consider community backports or vendor forks; see swift-observation/observations_pre_iOS_26_backport.md for options and caveats.