swiftui-macos
Expert SwiftUI guidance for macOS apps — covers writing and reviewing code with runtime-level understanding of observation, concurrency, performance, and platform integration. Use when user asks to "build a SwiftUI view", "review my SwiftUI code", "fix observation issues", "bridge AppKit", "architect state management", "debug view updates", or works on any macOS SwiftUI project — building features, reviewing existing code, debugging view updates or performance, fixing concurrency issues, architecting state management, bridging AppKit, or making design decisions. Do NOT use for iOS/iPadOS-only SwiftUI, UIKit bridging, or basic Swift language questions. Focuses on non-obvious traps and deep patterns, not basics.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기포함된 파일(10)
- SKILL.md5.0 KB
- references/accessibility.md6.4 KB
- references/api.md8.1 KB
- references/concurrency.md14.2 KB
- references/data.md5.1 KB
- references/observation.md11.7 KB
- references/performance.md8.8 KB
- references/platform.md6.9 KB
- references/scenes.md5.8 KB
- references/views.md7.1 KB
SKILL.md(원문)
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Guide SwiftUI development for macOS apps. Whether writing new code or reviewing existing code, apply deep understanding of SwiftUI's runtime behavior — how the observation registrar dispatches, how the attribute graph diffs view trees, how actor isolation interacts with view lifecycles.
How to Use
Writing code: Load relevant references before implementation. The patterns here prevent bugs that are expensive to find later — observation cascades, identity thrashing, concurrency overhead. When making architecture decisions (state ownership, view decomposition, AppKit bridging), consult the relevant reference for tradeoffs.
Reviewing code: Check each reference area systematically. Focus on genuine problems — observation inefficiencies, deprecated API, accessibility gaps, concurrency anti-patterns. Don't flag obvious issues or invent problems.
Partial scope: Load only what the task needs. Not every change requires all eight references.
References
| Reference | Load when |
|---|---|
references/observation.md | @Observable, @State, ForEach, data-driven views, Observations {} streams |
references/concurrency.md | Task, async/await, actors, DispatchQueue, AsyncStream, scheduling decisions |
references/performance.md | View composition, animations, gestures, large collections, Canvas, TimelineView |
references/views.md | View decomposition, navigation, .task(id:), preference keys, custom Layout |
references/data.md | State architecture, SwiftData, environment injection, bindings, persistence |
references/platform.md | NSViewRepresentable, NSHostingView, multi-window state, AppKit bridging |
references/scenes.md | Scene and window API catalog — UtilityWindow, MenuBarExtra styles, Settings, window sizing/chrome, Commands, file dialogs, Table/PasteButton. Load to check what exists and its availability. |
references/api.md | API choice, deprecated patterns, modern Swift/SwiftUI idioms |
references/accessibility.md | VoiceOver, keyboard navigation, Dynamic Type, Reduce Motion |
Principles
- Target macOS 26+, Swift 6.2 with strict concurrency and
@MainActordefault isolation. - Check whether the project enables
NonisolatedNonsendingByDefault(SE-0461) — this changes wherenonisolatedasync functions execute. Seereferences/concurrency.md. - Prefer SwiftUI-native solutions. Use AppKit (
NSViewRepresentable,NSHostingView,NSWindow) only when SwiftUI has no equivalent. - Understand the mechanism. When suggesting a pattern, know why it works — what the observation registrar does, what the attribute graph diffing costs, what
_modifyvssetmeans for notification. Rules without understanding produce cargo-culted code. - Do not introduce third-party frameworks without asking. Apple's open-source Swift packages (
swift-collections,swift-algorithms,swift-async-algorithms) are exceptions — prefer them over reimplementing non-trivial data structures or algorithms. Seereferences/api.md.
Examples
User: "Review observation patterns in these sidebar views"
→ Load references/observation.md. Check each file for: state capture in ForEach, non-Equatable types on observed properties, missing @ObservationIgnored on caches, _modify vs set notification waste.
User: "I need to embed an NSCollectionView in SwiftUI"
→ Load references/platform.md. Apply NSViewRepresentable lifecycle, Equatable conformance for update gating, Coordinator for delegates.
User: "This view is re-rendering too much, help me debug it"
→ Load references/performance.md and references/observation.md. Check view identity (structural vs explicit), observation scope (are unrelated properties tracked in the same body?), @State vs @Observable for gesture-driven values.
Review Output
Organize findings by file. For each issue:
- File and relevant line(s).
- The pattern being violated and why it matters at the runtime level.
- Brief before/after code fix.
Skip clean files. End with a prioritized summary of the most impactful changes.
리뷰
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
댓글
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.