神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路 原创

发布于 2025-7-17 12:36
浏览
0收藏

作者 | Indragie Karunaratne

编译 | 沈建苗

审校 | 云昭

出品 | 51CTO技术栈(微信号:blog51cto)

Claude Code 出来之后,很多人都在说“一个人 + AI 就可以独立写应用了”。

但真正有人用它从头到尾打造一个完整的 macOS 原生 App,还详细记录全过程的,几乎没有。

今天要分享的这篇文章,正好填补了这个空白。

最近两天,小编刷到一篇“神文”,直接惊呆!

一位 macOS 老程序员,用 AI 工具 Claude Code,硬是靠一个人之力写出了完整的原生 App,还自动打包上线发布!

全文不仅细节拉满,更重要的是总结了 AI 编程的 14 个关键技巧,可谓句句干货,错过可惜!推荐每一个搞开发的朋友都认真读一遍。

我用 Claude 搞定了一款macOS应用

2万行代码,自己只手敲一千行

我最近发布了一个 macOS 原生应用 Context,用于调试 MCP 服务器。这款应用由 Apple 的 SwiftUI 框架驱动,旨在打造一款贴合平台风格的开发者工具。

虽然我从 2008 年就开始做 macOS 应用,但这次完全不同:Context 几乎是由 Claude Code 独立完成的。在整个 2 万行代码中,我手写的代码不超过 1000 行。过程中当然仍需要技巧和反复调试,但 Claude 的编程能力确实大大提升了效率。

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

接下来,我将详述这段开发之旅,包括工具选择、Claude 的优劣势,以及如何最大化生成代码的质量,特别适合你也想用 AI 构建原生应用的场景。

1. 从 Copilot 到 Claude Code:AI 编码工具的演变

我的第一次 AI 编程体验是使用 GitHub Copilot,那时它刚集成进 VS Code,主要作为智能补全工具。虽然功能相对简单,但已经比传统编辑器智能许多,可以根据上下文补全整个函数。

后来,行业飞速发展:Cursor 的 Agent 模式兴起,Windsurf 等竞争者纷纷跟进,AI 工具从“补全”逐步进化为“代理开发”,可以循环调用工具、分析代码、读取文档、构建项目、跑测试并自动修复。

2025 年 2 月,Claude Code 横空出世。它不是一个 VS Code 插件,而是一个纯终端的 IDE,没有文件树,没有 UI,只有一个文本框供你输入提示词。说它是 IDE,不如说是“AI 开发代理终端”。


它把智能体循环(agentic loop)放在首要位置。这种“没有用 AI 增强 IDE,而是取代 IDE 的做法”足够新颖,虽然一开始我对这种 UX 体验存疑,但值得一试。

2. 又一个 Side Project 的开始

跟许多上班族程序员一样,我有一大堆做了一半就烂尾的 Side Project。通常原型很快能做出来,但最后 20% 的打磨太耗精力,结果我已经 6 年没成功发布过项目。

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

这一次,我想尝试支持 MCP 的原生应用。MCP 是 Anthropic 提出的开放标准,用于让 AI agent 访问工具或上下文。虽然官方有 MCP Inspector 工具,但体验一般,而我一直想做一个像样的 macOS 原生版本。

于是,项目 “Context” 就此启动。

3. Claude Code 真的是会写代码

我必须说,搭载 Sonnet 4 和 Opus 4 的 Claude Code,代码生成能力非常强。虽然称不上顶级工程师,但比平均开发者强不少。

只需描述你想要的功能,它就能:

  • 找出项目中相关的源代码;
  • 理解代码风格和设计模式;
  • 阅读文档或说明;
  • 编写功能代码并生成测试;
  • 编译、运行测试,自动修复编译错误;
  • 甚至可以识别日志、截图中的 Bug,并尝试修复。

而且这一切速度惊人。就像你招了个新员工,零背景,却能几分钟交付一个完整功能。

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

4. Swift 一般,SwiftUI 很行

我用的是 Swift 6.1 和 macOS 15.5,Claude 写 Swift 的表现中规中矩,但对 SwiftUI 的掌握不错。

尤其 Swift Concurrency(并发机制)上线后,语言复杂度暴增,就连人也容易出错。但 Claude 能识别大多数常用语法和 API,虽然有时会混用过时的 Objective-C 或 UIKit,但通过一定指引可以有效避免。

比如,你可以写一个 ​​CLAUDE.md​​ 文件作为项目规范,告诉 Claude:

  • 尽量用 SwiftUI,只有必要时才用 AppKit;
  • 遵循 Apple 人机交互指南;
  • 使用 SF Symbols 图标;
  • 使用最新 Swift 特性,包括 async/await、actors 和宏。

* Aim to build all functionality using SwiftUI unless there is a feature that is only supported in AppKit.
* Design UI in a way that is idiomatic for the macOS platform and follows Apple Human Interface Guidelines.
* Use SF Symbols for iconography.
* Use the most modern macOS APIs. Since there is no backward compatibility constraint, this app can target the latest macOS version with the newest APIs.
* Use the most modern Swift language features and conventions. Target Swift 6 and use Swift concurrency (async/await, actors) and Swift macros where applicable.

仅这些简单规则,就能极大提升代码质量。

而且,你还可以更进一步:例如,Peter Steinberger 的代理规则库包含可以添加到代理中的规则,既可以作为一般编码指南,也可以更具体地编写更好的 Swift 代码。

地址:​​https://github.com/steipete/agent-rules​

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

5. “把 UI 做得更漂亮”——Claude 真的能听懂

Claude 生成的 UI 首版可能有点粗糙,但你只需说一句“请让它更漂亮一些”,它就能自动优化。

更稳妥的方式是先让它“列出提升 UI 美感的建议”,再逐项调整。甚至你可以直接把截图粘贴到 Claude 中,它就能据此优化 UI,平台无关、方法通用。

6. 真正关键的是:上下文工程,而非提示工程

过去我们讲 Prompt Engineering,但现在我更看重的是 Context Engineering(上下文工程)。

因为 Claude 的上下文窗口是有限的(目前 Opus 4 和 Sonnet 4 是 200k tokens),一旦对话过长,Claude 就需要“压缩”上下文,即用总结代替原始细节。这一步很容易丢失关键信息。

Claude Code 会提示你当前的上下文使用情况,超过限制后会自动触发压缩。要保证输出质量,就必须学会如何合理安排上下文,让 AI 读懂足够的信息再动手。

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

7. Priming:让 Claude 吃透文档再开始

我通常会在 Claude 开工前,让它先读相关源代码和在线文档,并生成一份总结:

Read DXTTransport.swift, DXTManifest.swift, DXTManifestView.swift, DXTConfigurationView.swift, DXTUserConfiguration.swift, AddServerFeature.swift, and AddServerView.swift to learn how adding servers from DXT packages is implemented.

Then read the documentation for the manifest.json format here: https://raw.githubusercontent.com/anthropics/dxt/refs/heads/main/MANIFEST.md

After reading these sources, summarize what you've learned.

Claude 会自动调用 Search 和 Fetch 工具,抓取源码和 Markdown 文档,然后生成总结供后续任务使用。

这种“预热”方式特别适合你用的是新 API、三方库或模型不知道的内容。

8. AI 不是读心术,它需要规范说明

要让 Claude 构建新功能,你必须提供清晰的需求说明(spec)。

它并不会凭一句“做个登录页面”就写出完整功能。你可以随意写,哪怕语气像你自言自语,Claude 都能理解。

我给 Claude 的某个功能 spec:

请为 Context 添加对 DXT 包格式的支持。用户可以点击“Add Server”,然后选择本地的 manifest.json 文件……

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

虽然看起来很多,但比自己写代码快多了。

9. “Ultrathink”:魔法词汇让 Claude 深度思考

Claude 很容易“太快动手”,写出低质量代码。你可以在提示词中使用“think harder”或“ultrathink”等关键字来激活,让它先思考再动手。

这些词不是简单的形容,而是触发模型不同程度“延迟思考模式”的触发器。

用法示例:

请 ultrathink 并制定一个详细的计划,在我确认之前不要开始实现。

推荐阅读:Anthropic 官方发布的 《Claude Code 最佳实践指南》。

10. 建立 Feedback Loop,Claude 才能自主迭代

Claude 最强的地方是能“自己犯错自己修”。要做到这一点,必须帮它建立如下几个循环:

  • 构建循环:告诉它如何编译项目,Claude 原生支持​​swift build​​,但对​​xcodebuild​​ 不了解,可以使用 XcodeBuildMCP;
  • 测试循环:使用​​swift test​​ 跑单测;UI 测试目前支持有限;
  • Bug 修复循环:你得提供运行日志或控制台输出,它才能判断出错位置;
  • UI 优化循环:贴图+优化提示词,Claude 就能迭代视觉效果。

注意:目前还无法让它“像人一样”使用 App,需要你提供交互状态。

11. 不只是写代码,更有趣的应用:模拟数据

由于Claude Code是封装通用模型的智能体,因此在迭代应用程序本身时,你仍可以用它来帮助完成非编程任务,比如编辑文案,甚至通过向模型征求改进应用程序功能方面的建议来规划功能版本。

我发现一个很有用的方面是,在将真实数据导入应用程序之前,它能够生成模拟数据(mock data)。在构建Context时,我部分构建了实现Swift MCP 客户端库的方法,但想改弦易辙,做一些 UI原型设计。

毕竟,生成逼真的模拟数据的过程通常太繁琐了,我永远不会去尝试,但Claude在几秒钟内生成了非常棒的模拟数据。

结果非常 nice,我引入UI时与朋友们分享的应用程序的首批截图基于模拟数据,但它看起来足够逼真,你可以很好地了解应用程序在从真实的MCP服务器渲染数据时的样子。

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

对于MCP来说,模拟数据尤为重要,因为当时大多数MCP服务器除了工具之外并不使用规范中的大多数功能,但我仍然需要一种方法为这些功能验证 UI。

12. 自动化发布现在几乎免费

macOS 应用发布流程复杂(签名、notarization、DMG 打包、Sparkle 更新等),过去我都会写 Python 脚本慢慢配。

这次,我用了几小时就让 Claude 自动写了个完整脚本,功能包括:

  • 检查环境依赖;
  • 生成 changelog 和发布日志;
  • 编译、签名、打包;
  • 生成 Sparkle 更新 feed;
  • 打标签并发布到 GitHub;
  • 上传 Sentry 的调试符号。

而这些,只花了我几段自然语言提示。

神作!我用Claude Code一人打造了一款macOS原生App!句句干货,未来的IDE会截然不同:构建上下文+反馈回路-AI.x社区

13. 未来的 IDE 会截然不同

我突然意识到,整个项目我几乎只用了两个工具:

  • Claude Code:主要开发环境;
  • GitHub Desktop:查看 diff。

绝大多数时候,我几乎没用 VS Code/Xcode 这些传统 IDE 编辑器功能:文件树、源代码编辑器、扩展程序等等。我偶尔会用 Xcode 手动编辑,但这种情况很少见,而且我也没有用到大多数 Xcode 特有的功能(SwiftUI 预览、View Debugger 等等)。

我不得不想象,未来的 IDE 可能和现在完全不一样。

我现在相信:

未来的 IDE,核心是让开发者“构建上下文 + 搭建反馈回路”,而不是手写代码本身。

这对于帮助代理成功完成任务至关重要。这方面的用户体验将会非常不同——我无法准确预测,但我认为源代码编辑器不会成为核心。

Cursor、Windsurf 和 Copilot 都是从 VS Code 起步的,并在各个方面有所差异,但它们都将人工智能融入到了一个人工智能尚未出现的编辑器中。

从根本上来说,VS Code 与 20 年前的 JetBrains IDE 看起来并没有什么不同。我也看到像 Warp 这样的项目试图从现代化的终端仿真器转型为代理式开发环境,但我也不认为终端一定是理想的用户体验。

虽然我喜欢 Claude Code ,但终端式体验不一定是最优解,但传统 IDE 的形态一定会被彻底颠覆。

14. 我终于又能发项目了!

最让我兴奋的不是这个 App,而是我终于又能把 Side Project 做完并发布了!

这种感觉就像是:自己可以每天多出 5 小时,而每个月只是多花了 200 美元。

注:我与 Anthropic 无任何利益关系,此文也非推广内容。只是实话实说,我真的很喜欢 Claude Code。

参考链接:

​https://www.indragie.com/blog/i-shipped-a-macos-app-built-entirely-by-claude-code​

本文转载自51CTO技术栈

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐