Skip to content

toankhontech/swiftui-mac-pro-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍎 swiftui-mac-pro-skill

Stop Claude from inventing macOS APIs.

Production-grade Mac SwiftUI knowledge for Claude Code — sourced from Apple docs, verified against WWDC, multilingual.

License: MIT Version macOS 15+ Swift 6.2 Liquid Glass Languages

Quick Start · Demo · Why? · Reference · Comparison

Demo: skill triggering across English, Vietnamese, and Chinese queries


🚀 Quick Start

git clone https://github.com/toankhontech/swiftui-mac-pro-skill.git ~/.claude/skills/swiftui-mac-pro-skill

That's it. Open Claude Code and ask anything about macOS. The skill auto-loads.

Verify: ls ~/.claude/skills/swiftui-mac-pro-skill/ — should show LICENSE README.md SKILL.md references


🎯 Why This Exists

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.


✨ What's Inside

Always-loaded core

SKILL.md (~35KB, 20 sections):

  • 7 working rules
  • Deprecated patterns to avoid
  • Window scenes decision matrix
  • Common app archetype skeleton
  • AppKit interop primer
  • Distribution awareness (sandbox + signing)

Load-on-demand references

20 deep-dive files (~395KB) covering:

  • Window scenes, NSToolbar, commands & menus
  • AppKit interop, NSWindowController
  • DocumentGroup, MenuBarExtra, Settings
  • Sandbox, entitlements, signing, notarization
  • Drag-drop, animations, performance, testing
  • macOS 26 Liquid Glass opt-in
  • pbxproj build settings audit + privacy manifest

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).


📊 Without Skill vs With Skill

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

🌏 Multilingual Support

Reliable triggers across three languages — try any of these in Claude Code:

🇬🇧 English
Build a document-based Mac app for editing JSON files
Migrate this view model from ObservableObject to @Observable
My sidebar looks weird on macOS Tahoe — was using NSVisualEffectView
How do I notarize my Mac app for Direct distribution?
🇻🇳 Vietnamese
Toi muon them MenuBarExtra cho Mac app, khong co dock icon
Sua loi sandbox khong cho doc file user chon
🇨🇳 简体中文
如何在 Mac 应用中添加菜单栏图标,不要 Dock 图标
macOS 沙盒应用如何持久化用户选择的文件路径?
如何对 Mac 应用进行 Developer ID 公证?

📚 Reference Files

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

🎬 Demo

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.gif

🎓 Versioning

The skill is version-flexibleswiftui-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.


🚫 Out of Scope

iOS-only patterns · watchOS · tvOS · visionOS · AppIntents-only · Generic Swift tutorials · Server-side Swift (Vapor)


🛠 Status & Roadmap

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.

About

Production-grade Claude Code skill for Mac SwiftUI development. macOS 15 Sequoia + macOS 26 Tahoe (Liquid Glass). 18 reference files (~370KB), Apple-docs-grounded. Multilingual: English + Vietnamese + 简体中文. Future macOS added as Apple ships.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors