macos-developer by 404kidwiz/claude-supercode-skills
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill macos-developer提供原生 macOS 应用程序开发专业知识,专精于 AppKit、适用于 Mac 的 SwiftUI 以及系统集成。为苹果生态系统构建具有 XPC 服务、菜单栏应用和深度操作系统能力的原生桌面应用程序。
| 框架 | 最适合 | 优点 | 缺点 |
|---|---|---|---|
| SwiftUI | 现代应用 | 声明式,代码简洁。 | AppKit 功能支持有限。 |
| AppKit | 系统工具 | 完全控制(NSWindow, NSView)。 | 命令式,代码冗长。 |
| Catalyst | iPad 移植 | 从 iPad 代码免费获得 Mac 应用。 | 看起来像 iPad 应用。 |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
危险信号 → 上报给 security-engineer:
目标: 创建一个驻留在菜单栏中的应用。
步骤:
应用设置
@main
struct MenuBarApp: App {
var body: some Scene {
MenuBarExtra("Utility", systemImage: "hammer") {
Button("Action") { doWork() }
Divider()
Button("Quit") { NSApplication.shared.terminate(nil) }
}
}
}
隐藏 Dock 图标
LSUIElement = YES。目标: 监控文件事件。
步骤:
权利
com.apple.developer.endpoint-security.client = YES。实现(C API)
es_client_t *client;
es_new_client(&client, ^(es_client_t *c, const es_message_t *msg) {
if (msg->event_type == ES_EVENT_TYPE_NOTIFY_EXEC) {
// 记录进程执行
}
});
表现:
NavigationView(拆分视图)。Cmd+Q, Cmd+S)。失败原因:
正确做法:
表现:
失败原因:
正确做法:
DispatchQueue.global() 或 Swift Task。场景: 构建一个驻留在 macOS 菜单栏中的系统工具,以便快速访问。
开发方法:
实现:
@main
struct SystemUtilityApp: App {
var body: some Scene {
MenuBarExtra("System Utility", systemImage: "gear") {
VStack(spacing: 12) {
Button("Open Preferences") { openPreferences() }
Button("Check Updates") { checkForUpdates() }
Divider()
Button("Quit") { NSApplication.shared.terminate(nil) }
}
.padding()
.frame(width: 200)
}
}
}
关键特性:
成果:
场景: 构建一个具有后台处理功能的专业文档编辑器。
架构:
XPC 服务实现:
// Service Protocol
@objc protocol ProcessingServiceProtocol {
func processDocument(at url: URL, reply: @escaping (URL?) -> Void)
}
// Service Implementation
class ProcessingService: NSObject, ProcessingServiceProtocol {
func processDocument(at url: URL, reply: @escaping (URL?) -> Void) {
// 在独立进程中进行繁重处理
let result = heavyProcessing(url: url)
reply(result)
}
}
优点:
场景: 使用系统扩展创建网络监控工具。
开发流程:
实现:
// Network extension handler
class NetworkExtensionHandler: NEProvider {
override func startProtocol(options: [String: Any]?, completionHandler: @escaping (Error?) -> Void) {
// 启动网络监控
setupNetworkMonitoring()
completionHandler(nil)
}
override func stopProtocol(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
// 清理资源
stopNetworkMonitoring()
completionHandler()
}
}
要求:
用户体验:
系统:
性能:
每周安装量
103
代码仓库
GitHub 星标数
42
首次出现
2026年1月24日
安全审计
安装于
opencode89
codex84
gemini-cli83
claude-code82
github-copilot74
cursor71
Provides native macOS application development expertise specializing in AppKit, SwiftUI for Mac, and system integration. Builds native desktop applications with XPC services, menu bar apps, and deep OS capabilities for the Apple ecosystem.
| Framework | Best For | Pros | Cons |
|---|---|---|---|
| SwiftUI | Modern Apps | Declarative, simple code. | Limited AppKit feature parity. |
| AppKit | System Tools | Full control (NSWindow, NSView). | Imperative, verbose. |
| Catalyst | iPad Ports | Free Mac app from iPad code. | Looks like an iPad app. |
Red Flags → Escalate tosecurity-engineer:
Goal: Create an app that lives in the menu bar.
Steps:
App Setup
@main
struct MenuBarApp: App {
var body: some Scene {
MenuBarExtra("Utility", systemImage: "hammer") {
Button("Action") { doWork() }
Divider()
Button("Quit") { NSApplication.shared.terminate(nil) }
}
}
}
Hide Dock Icon
LSUIElement = YES.Goal: Monitor file events.
Steps:
Entitlements
com.apple.developer.endpoint-security.client = YES.Implementation (C API)
es_client_t *client;
es_new_client(&client, ^(es_client_t *c, const es_message_t *msg) {
if (msg->event_type == ES_EVENT_TYPE_NOTIFY_EXEC) {
// Log process execution
}
});
What it looks like:
NavigationView (split view) when a simple Window is needed.Cmd+Q, Cmd+S).Why it fails:
Correct approach:
What it looks like:
Why it fails:
Correct approach:
DispatchQueue.global() or Swift Task.Scenario: Build a system utility that lives in the macOS menu bar for quick access.
Development Approach:
Implementation:
@main
struct SystemUtilityApp: App {
var body: some Scene {
MenuBarExtra("System Utility", systemImage: "gear") {
VStack(spacing: 12) {
Button("Open Preferences") { openPreferences() }
Button("Check Updates") { checkForUpdates() }
Divider()
Button("Quit") { NSApplication.shared.terminate(nil) }
}
.padding()
.frame(width: 200)
}
}
}
Key Features:
Results:
Scenario: Build a professional document editor with background processing.
Architecture:
XPC Service Implementation:
// Service Protocol
@objc protocol ProcessingServiceProtocol {
func processDocument(at url: URL, reply: @escaping (URL?) -> Void)
}
// Service Implementation
class ProcessingService: NSObject, ProcessingServiceProtocol {
func processDocument(at url: URL, reply: @escaping (URL?) -> Void) {
// Heavy processing in separate process
let result = heavyProcessing(url: url)
reply(result)
}
}
Benefits:
Scenario: Create a network monitoring tool using System Extension.
Development Process:
Implementation:
// Network extension handler
class NetworkExtensionHandler: NEProvider {
override func startProtocol(options: [String: Any]?, completionHandler: @escaping (Error?) -> Void) {
// Start network monitoring
setupNetworkMonitoring()
completionHandler(nil)
}
override func stopProtocol(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
// Clean up resources
stopNetworkMonitoring()
completionHandler()
}
}
Requirements:
UX:
System:
Performance:
Weekly Installs
103
Repository
GitHub Stars
42
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode89
codex84
gemini-cli83
claude-code82
github-copilot74
cursor71
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
120,000 周安装
Agently TriggerFlow 状态与资源管理:runtime_data、flow_data 和运行时资源详解
1 周安装
Agently Tools 工具系统详解:Python 代理工具注册、循环控制与内置工具使用
1 周安装
Agently Prompt配置文件技能:YAML/JSON提示模板加载、映射与导出指南
1 周安装
Agently多智能体模式指南:架构设计、核心模式与实现方案
1 周安装
Agently MCP集成指南:连接外部MCP服务器工具,扩展AI智能体能力
1 周安装
Agently 知识库与 RAG 技能:基于 Chroma 的向量检索与生成式问答集成指南
1 周安装