360 Secure SkillHub
360 安全技能中心

SwiftUI macOS

为 macOS SwiftUI 应用开发提供运行时级指导,覆盖 observation、并发、性能、视图、数据、平台桥接、API 与无障碍等 8 个参考主题,支持按需加载,用于编写、审查、调试和架构决策。

kageroumado
kageroumado
热度 53.08
最近更新 2026-05-11 17:30:43
分类:开发依赖:读写文件应用场景:代码生成 / 代码审查 / 调试排错 / 概念解释

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add swiftui-macos
Metadata
name
swiftui-macos
description
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.
license
MIT
compatibility
Requires macOS 26+ targeting and Swift 6.2 with strict concurrency. Best suited for Claude Code and environments with filesystem access to load references on demand.
metadata
{"author":"kageroumado","version":"1.0.0"}

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, AppKit bridging, window chrome
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 @MainActor default isolation.
  • Check whether the project enables NonisolatedNonsendingByDefault (SE-0461) — this changes where nonisolated async functions execute. See references/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 _modify vs set means 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. See references/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:

  1. File and relevant line(s).
  2. The pattern being violated and why it matters at the runtime level.
  3. Brief before/after code fix.

Skip clean files. End with a prioritized summary of the most impactful changes.