Production-grade Mac SwiftUI knowledge for Claude Code — sourced from Apple docs, verified against WWDC, multilingual.
Quick Start · Demo · Why? · Reference · Comparison
git clone https://github.com/toankhontech/swiftui-mac-pro-skill.git ~/.claude/skills/swiftui-mac-pro-skillThat's it. Open Claude Code and ask anything about macOS. The skill auto-loads.
Verify:
ls ~/.claude/skills/swiftui-mac-pro-skill/— should showLICENSE README.md SKILL.md references
Three problems hit every developer using LLMs for Mac SwiftUI:
| Problem | Reality | This skill's fix |
|---|---|---|
| 🔒 Apple docs are JS-rendered | LLMs can't WebFetch them — fall back to stale training data |
Pre-extracted, verified content with source URLs |
| 🍎 Mac patterns ≠ iOS patterns | LLMs default to iOS conventions (NavigationStack, no Window scenes, no sandbox) | 18 reference files of Mac-specific guidance |
| 🌏 Non-English queries get worse output | Translation layers lose Mac-specific context | Native triggers in 🇬🇧 EN + 🇻🇳 VI + 🇨🇳 ZH |
Bottom line: Stop wasting tokens making Claude re-research Apple docs every conversation. This skill packages the answers.
|
Always-loaded core
|
Load-on-demand references 20 deep-dive files (~395KB) covering:
|
Verified against:
WWDC 2024 (#10148, #10149, #10144) · WWDC 2025 (#219, #323, #310, #256) · Apple Developer Documentation · Hacking with Swift · Swift with Majid · Use Your Loaf · Sarunw · Antoine van der Lee · mjtsai · Eclectic Light Co
70+ [VERIFIED 2026-05-06] flags mark every claim cross-checked against current docs (not training memory).
| Topic | Without skill (typical Claude output) | With swiftui-mac-pro-skill |
|---|---|---|
| Mac navigation | NavigationStack (iOS pattern) |
NavigationSplitView 3-column (Mac pattern) |
@StateObject migration |
@State, no warning |
Explicit warning about lazy → eager init regression |
ReferenceFileDocument + @Observable |
Suggests it (will crash at runtime) | Warns: still requires ObservableObject conformance |
| Notarization | Mentions deprecated altool |
notarytool; warns against --deep flag |
| macOS 26 Liquid Glass | Hallucinates outdated APIs | Properly gated with if #available(macOS 26.0, *); flags NSVisualEffectView removal |
| Sandbox file access | Generic URL APIs |
Security-scoped bookmarks + entitlement matching |
Reliable triggers across three languages — try any of these in Claude Code:
| 🇬🇧 English |
|
| 🇻🇳 Vietnamese |
|
| 🇨🇳 简体中文 |
|
20 files in references/ — click to expand
| File | Topic |
|---|---|
swift6-concurrency.md |
Swift 6.2 Approachable Concurrency, nonisolated(nonsending), @concurrent |
windows-and-scenes.md |
WindowGroup(for:), multi-window, @FocusedValue, state restoration |
macos15-apis.md |
.windowIdealPlacement, .pushWindow, .windowLevel, all macOS 15 window APIs |
nstoolbar.md |
.toolbar placements, NSToolbar bridge, customization |
commands-and-menus.md |
All CommandGroupPlacement identifiers, CommandMenu, Services menu |
appkit-interop.md |
NSViewRepresentable lifecycle, NSHostingController/NSHostingView |
menu-bar-apps.md |
MenuBarExtra, LSUIElement, NSStatusItem fallback |
settings-scene.md |
Settings scene, @AppStorage, App Group sharing |
nswindow-control.md |
NSWindowController, custom titlebar, NSPanel, WindowAccessor |
nsdocument-documentgroup.md |
FileDocument vs ReferenceFileDocument (with critical ObservableObject warning) |
sandbox-entitlements.md |
Full entitlements catalog (file, network, devices, App Groups, Hardened Runtime) |
signing-notarization.md |
codesign, notarytool, stapler workflow + GitHub Actions YAML |
drag-drop-pasteboard.md |
Transferable, .draggable/.dropDestination, NSPasteboard |
common-patterns.md |
URLSession async, sheet/popover/inspector, .fileImporter, .searchable |
animations.md |
Springs, PhaseAnimator, KeyframeAnimator, Reduce Motion |
performance.md |
View identity, dependency graph, .equatable(), drawingGroup() |
swift-testing.md |
@Test, #expect/#require, @MainActor test methods |
macos26-optin.md |
Liquid Glass, glassEffect, Glass, Observations, gated APIs |
build-settings.md |
pbxproj audit checklist — sandbox, hardened runtime, Swift 6 isolation, privacy manifest |
privacy-manifest.md |
PrivacyInfo.xcprivacy template + the 4 reason codes Mac apps need |
The hero GIF above shows the skill triggering on real queries across three languages. Built programmatically with HyperFrames (HTML+GSAP) — fully reproducible from docs/promotion/hyperframes-demo/.
To regenerate:
cd docs/promotion/hyperframes-demo
npm install && npm run render
ffmpeg -i renders/*.mp4 -vf 'fps=15,scale=800:-1' ../demo.gifThe skill is version-flexible — swiftui-mac-pro-skill, not swiftui-macos15:
- ✅ Now: macOS 15 Sequoia (baseline) + macOS 26 Tahoe (Liquid Glass opt-in)
- 🚀 Next: macOS 27 (post-WWDC 2026)
- 🔄 Forever: APIs gated via
if #available(...)— older targets always work
When Apple ships new macOS, this skill grows with it. The repo name doesn't.
iOS-only patterns · watchOS · tvOS · visionOS · AppIntents-only · Generic Swift tutorials · Server-side Swift (Vapor)
v1.0.0 — community release, MIT-licensed, best-effort maintenance.
| Version | Status | Adds |
|---|---|---|
| v1.0 | ✅ Current | macOS 15 + macOS 26 baseline, EN/VI/ZH triggers |
| v1.1 | Planned | Widgets on Mac, Live Activities |
| v1.2 | Planned | AppIntents integration |
| v2.0 | Future | macOS 27 baseline (post-WWDC 2026) |
Spotted a problem? File an issue — outdated APIs, broken triggers, compile errors all welcome.
Want to contribute? See CONTRIBUTING.md. Quality bar: Apple docs as primary source, [VERIFIED YYYY-MM-DD] flags, compilable snippets, ≥3 source URLs per reference.
If this saves you hours of "wait, is this still the current API?", give it a ⭐
Install · Issues · Discussions · Changelog
MIT License · Copyright © 2026 Toan Le · Apple, macOS, SwiftUI, AppKit, Liquid Glass, Tahoe, and Sequoia are trademarks of Apple Inc.
