macOS Development
You MUST use this skill for ANY macOS-specific development including windows, menus, sandboxing, distribution, AppKit bridging, and macOS SwiftUI differences.
Quick Reference
| Symptom / Task |
Reference |
| Window management (WindowGroup, Window, MenuBarExtra, DocumentGroup) |
See skills/windows.md |
| Menu bar, commands, keyboard shortcuts |
See skills/menus-and-commands.md |
| Table, Inspector, NavigationSplitView, focus |
See skills/swiftui-differences.md |
| App Sandbox, file access, security-scoped bookmarks |
See skills/sandbox-and-file-access.md |
Another team's app or app group container access denied without a prompt (OS27) |
See skills/sandbox-and-file-access.md |
| Developer ID, notarization, Sparkle auto-updates |
See skills/direct-distribution.md |
| NSViewRepresentable, NSHostingController, AppKit bridging, @Observable in AppKit, NSHostingMenu, SwiftUI scenes from AppKit |
See skills/appkit-interop.md |
Modernizing AppKit: mouseDown replacement, control events, status-item sessions, state restoration, concentric corners, touch (OS27) |
See skills/appkit-modernization.md |
| Screen recording, sharing, or capture (ScreenCaptureKit) |
See skills/screencapturekit.md |
SCStream / SCContentFilter / screenshots / file recording API, clip buffering, recording editor (OS27) |
See skills/screencapturekit-ref.md |
| Bring an iOS app to Mac: Catalyst adoption, Designed for iPad, Mac availability opt-out |
See skills/ios-apps-on-mac.md |
| Apple Pay on Mac / Catalyst |
See axiom-payments/skills/apple-pay.md (Catalyst section) |
Cross-Suite Routes
These topics overlap with macOS development but live in separate suites:
SwiftUI (shared iOS/macOS)
- View state, data flow, @Observable → See axiom-swiftui
- Navigation (NavigationStack basics) → See axiom-swiftui (skills/nav.md)
- Layout (ViewThatFits, AnyLayout) → See axiom-swiftui (skills/layout.md)
- Animations → See axiom-swiftui (skills/animation-ref.md)
Data & persistence
- SwiftData, Core Data, GRDB → See axiom-data
- CloudKit sync → See axiom-data
Concurrency
- Swift 6 concurrency, actors, Sendable → See axiom-concurrency
Other
- Accessibility (VoiceOver, Dynamic Type) → See axiom-accessibility
- Networking (URLSession, Network.framework) → See axiom-networking
- Security (Keychain, passkeys, encryption) → See axiom-security
Conflict Resolution
axiom-macos vs axiom-swiftui: When working on a macOS SwiftUI app:
- Use axiom-macos for macOS-only concerns: windows, menus, commands, sandboxing, distribution, Table, Inspector, AppKit bridging
- Use axiom-swiftui for cross-platform SwiftUI: navigation, layout, state management, animations
- Both may apply: A macOS app using NavigationSplitView with Table needs axiom-macos for Table specifics and axiom-swiftui for NavigationSplitView basics
axiom-macos vs axiom-security: For sandbox and code signing:
- Use axiom-macos for macOS App Sandbox, security-scoped bookmarks, file access entitlements, Developer ID signing
- Use axiom-security for Keychain storage, encryption, passkeys, certificate management
Decision Tree
digraph macos {
start [label="macOS development task" shape=ellipse];
what [label="What area?" shape=diamond];
start -> what;
what -> "skills/windows.md" [label="windows/scenes"];
what -> "skills/menus-and-commands.md" [label="menus/commands/shortcuts"];
what -> "skills/swiftui-differences.md" [label="Table/Inspector/focus/macOS SwiftUI"];
what -> "skills/sandbox-and-file-access.md" [label="sandbox/file access"];
what -> "skills/direct-distribution.md" [label="distribution/notarization/updates"];
what -> "skills/appkit-interop.md" [label="AppKit bridging"];
what -> "skills/appkit-modernization.md" [label="modernize AppKit\n(input/restoration/27 look)"];
what -> "skills/ios-apps-on-mac.md" [label="iOS app to Mac\n(Catalyst / Designed for iPad)"];
what -> "skills/screencapturekit.md" [label="screen capture/\nrecording/sharing"];
what -> "axiom-swiftui" [label="cross-platform SwiftUI"];
what -> "axiom-security" [label="Keychain/encryption"];
}
iOS screen capture? ScreenCaptureKit is macOS-only. For iOS screen recording, use ReplayKit — see axiom-media.
Resources
WWDC: 2021-10062, 2022-10061, 2022-10075, 2023-10148, 2024-10149, 2026-272, 2026-289
Docs: /security/app-sandbox, /swiftui/windowgroup, /swiftui/table
Skills: axiom-swiftui, axiom-security, axiom-concurrency, axiom-uikit
1---2name: axiom-macos-23description: Use when building ANY macOS app — windows, menus, sandboxing, distribution, AppKit bridging or modernization (control events, state restoration, concentric corners), or macOS-specific SwiftUI patterns.4---567# macOS Development89**You MUST use this skill for ANY macOS-specific development including windows, menus, sandboxing, distribution, AppKit bridging, and macOS SwiftUI differences.**1011## Quick Reference1213| Symptom / Task | Reference |14|----------------|-----------|15| Window management (WindowGroup, Window, MenuBarExtra, DocumentGroup) | See `skills/windows.md` |16| Menu bar, commands, keyboard shortcuts | See `skills/menus-and-commands.md` |17| Table, Inspector, NavigationSplitView, focus | See `skills/swiftui-differences.md` |18| App Sandbox, file access, security-scoped bookmarks | See `skills/sandbox-and-file-access.md` |19| Another team's app or app group container access denied without a prompt (`OS27`) | See `skills/sandbox-and-file-access.md` |20| Developer ID, notarization, Sparkle auto-updates | See `skills/direct-distribution.md` |21| NSViewRepresentable, NSHostingController, AppKit bridging, @Observable in AppKit, NSHostingMenu, SwiftUI scenes from AppKit | See `skills/appkit-interop.md` |22| Modernizing AppKit: mouseDown replacement, control events, status-item sessions, state restoration, concentric corners, touch (`OS27`) | See `skills/appkit-modernization.md` |23| Screen recording, sharing, or capture (ScreenCaptureKit) | See `skills/screencapturekit.md` |24| SCStream / SCContentFilter / screenshots / file recording API, clip buffering, recording editor (`OS27`) | See `skills/screencapturekit-ref.md` |25| Bring an iOS app to Mac: Catalyst adoption, Designed for iPad, Mac availability opt-out | See `skills/ios-apps-on-mac.md` |26| Apple Pay on Mac / Catalyst | See `axiom-payments/skills/apple-pay.md` (Catalyst section) |2728## Cross-Suite Routes2930These topics overlap with macOS development but live in separate suites:3132#### SwiftUI (shared iOS/macOS)33- View state, data flow, @Observable → See axiom-swiftui34- Navigation (NavigationStack basics) → See axiom-swiftui (skills/nav.md)35- Layout (ViewThatFits, AnyLayout) → See axiom-swiftui (skills/layout.md)36- Animations → See axiom-swiftui (skills/animation-ref.md)3738#### Data & persistence39- SwiftData, Core Data, GRDB → See axiom-data40- CloudKit sync → See axiom-data4142#### Concurrency43- Swift 6 concurrency, actors, Sendable → See axiom-concurrency4445#### Other46- Accessibility (VoiceOver, Dynamic Type) → See axiom-accessibility47- Networking (URLSession, Network.framework) → See axiom-networking48- Security (Keychain, passkeys, encryption) → See axiom-security4950## Conflict Resolution5152**axiom-macos vs axiom-swiftui**: When working on a macOS SwiftUI app:531. **Use axiom-macos** for macOS-only concerns: windows, menus, commands, sandboxing, distribution, Table, Inspector, AppKit bridging542. **Use axiom-swiftui** for cross-platform SwiftUI: navigation, layout, state management, animations553. **Both may apply**: A macOS app using NavigationSplitView with Table needs axiom-macos for Table specifics and axiom-swiftui for NavigationSplitView basics5657**axiom-macos vs axiom-security**: For sandbox and code signing:581. **Use axiom-macos** for macOS App Sandbox, security-scoped bookmarks, file access entitlements, Developer ID signing592. **Use axiom-security** for Keychain storage, encryption, passkeys, certificate management6061## Decision Tree6263```dot64digraph macos {65 start [label="macOS development task" shape=ellipse];66 what [label="What area?" shape=diamond];6768 start -> what;69 what -> "skills/windows.md" [label="windows/scenes"];70 what -> "skills/menus-and-commands.md" [label="menus/commands/shortcuts"];71 what -> "skills/swiftui-differences.md" [label="Table/Inspector/focus/macOS SwiftUI"];72 what -> "skills/sandbox-and-file-access.md" [label="sandbox/file access"];73 what -> "skills/direct-distribution.md" [label="distribution/notarization/updates"];74 what -> "skills/appkit-interop.md" [label="AppKit bridging"];75 what -> "skills/appkit-modernization.md" [label="modernize AppKit\n(input/restoration/27 look)"];76 what -> "skills/ios-apps-on-mac.md" [label="iOS app to Mac\n(Catalyst / Designed for iPad)"];77 what -> "skills/screencapturekit.md" [label="screen capture/\nrecording/sharing"];78 what -> "axiom-swiftui" [label="cross-platform SwiftUI"];79 what -> "axiom-security" [label="Keychain/encryption"];80}81```8283> **iOS screen capture?** ScreenCaptureKit is macOS-only. For iOS screen recording, use ReplayKit — see axiom-media.8485## Resources8687**WWDC**: 2021-10062, 2022-10061, 2022-10075, 2023-10148, 2024-10149, 2026-272, 2026-2898889**Docs**: /security/app-sandbox, /swiftui/windowgroup, /swiftui/table9091**Skills**: axiom-swiftui, axiom-security, axiom-concurrency, axiom-uikit