文章摘要
作者成功发布了一款名为Context的macOS应用,用于调试MCP服务器,该应用几乎完全由Claude Code生成,作者仅手动编写了不到1000行代码。文章详细介绍了开发过程中的工具选择、优缺点分析,以及如何利用这些工具提高生成代码的质量,特别是针对原生应用开发。
文章总结
文章《我发布了一款完全由Claude Code构建的macOS应用》详细介绍了作者使用Claude Code(一款基于AI的代码生成工具)开发并发布了一款名为Context的macOS应用的过程。以下是文章的主要内容总结:
项目背景:Context是一款用于调试MCP(Model Context Protocol)服务器的原生macOS应用,基于Apple的SwiftUI框架开发。作者自2008年以来一直在开发macOS软件,但这次不同之处在于,Context几乎完全由Claude Code生成,作者手动编写的代码不到1000行,而整个项目有20,000行代码。
Claude Code简介:Claude Code是一款基于终端的IDE,专注于通过AI代理生成代码。与传统的IDE不同,Claude Code没有复杂的UI,而是通过简单的文本框输入提示来生成代码。作者从GitHub Copilot开始接触AI代码生成工具,但Claude Code的“代理模式”让开发过程更加高效。
开发过程:作者详细描述了如何使用Claude Code进行开发,包括如何选择工具、工具的优缺点以及如何最大化生成代码的质量。Claude Code在编写代码方面表现出色,能够理解代码风格、生成测试、修复bug等。作者还分享了如何通过Claude Code优化UI设计,只需简单提示如“让它更美观”即可生成更好的设计。
Swift和SwiftUI的支持:Claude Code在编写Swift代码方面表现尚可,但在处理Swift Concurrency时存在困难。对于SwiftUI,Claude Code生成的代码虽然初始较为粗糙,但通过迭代可以生成设计良好的UI。
上下文工程:作者强调了“上下文工程”的重要性,即如何有效利用有限的上下文窗口来生成高质量的代码。Claude Code的上下文窗口为200k tokens,但随着上下文窗口的消耗,模型性能会下降。作者通过“压缩”对话来管理上下文窗口。
代理的启动:在让Claude Code执行任务之前,作者会先让模型阅读相关文档或代码,以增加生成高质量输出的概率。这一过程称为“启动代理”。
详细规格说明:Claude Code无法读取开发者的思维,因此提供详细的规格说明是生成复杂功能的关键。作者通过提供详细的规格说明,指导Claude Code生成所需的功能。
未来IDE的展望:作者认为未来的IDE将不再以源代码编辑器为核心,而是专注于帮助开发者启动代理的上下文并设置反馈循环,以帮助代理更高效地完成任务。
自动化发布:Claude Code不仅能够生成代码,还能帮助自动化发布流程。作者通过Claude Code生成了一个2000行的Python脚本,用于自动化应用的构建、签名、打包和发布。
总结:作者通过Claude Code成功发布了一款macOS应用,并认为AI代码生成工具极大地提高了开发效率,使得他能够再次发布高质量的业余项目。
文章中包含多张图片,展示了Claude Code生成的ASCII艺术、Swift代码编写过程、应用界面以及自动化发布脚本的运行情况。

通过这篇文章,作者展示了AI代码生成工具在软件开发中的巨大潜力,并分享了许多实用的技巧和最佳实践。
评论总结
LLM作为开发工具的积极影响
提高效率:多位评论者提到LLM(如Claude Code)极大地提高了他们的开发效率,帮助他们快速完成项目,甚至处理复杂的配置文件和代码重构。
- 引用:
- "I too use Claude Code for more then just generating code. Whenever I need to rewrite a config file... it will do the changes and even refactor my settings file in a few minute."
- "It’s like I found an extra 5 hours every day, and all it cost me was $200 a month."
- 引用:
多领域应用:LLM不仅限于代码生成,还可以用于文档编写、代码审查和问题解答。
- 引用:
- "Lastly, I use it to ask questions about my codebase, refactor code, let it document my code, even make meaningful commits."
- 引用:
LLM的局限性
上下文窗口限制:当项目规模较大时,LLM的上下文窗口可能成为瓶颈,导致建议不一致或遗忘之前的决策。
- 引用:
- "When it gets to that point, the LLM can start making suggestions that don’t make sense; it’s starts forgetting what you had already done."
- "So if you follow them, you end up in this weird state mired in conflicting decisions."
- 引用:
对新手开发者的潜在风险:LLM可能成为无经验开发者的“危险助手”,导致他们无法理解代码中的问题,甚至引入潜在的错误。
- 引用:
- "It’s pretty much inevitable that this will introduce problems that make it through the process of creation not only unnoticed, but problems that the developer is incapable of understanding."
- 引用:
对开发者职业的影响
- 职业焦虑:一些开发者表达了对LLM可能取代传统开发技能的担忧,认为他们的专业知识和努力可能被机器取代。
- 引用:
- "My profession, my passion, all the things I worked so hard to learn, all the time and sacrifices, a machine can now do most of it."
- "What does this mean for the next generation of engineers? Where’s it all heading?"
- 引用:
- 职业焦虑:一些开发者表达了对LLM可能取代传统开发技能的担忧,认为他们的专业知识和努力可能被机器取代。
开发工具的未来
- 轻量化工具趋势:部分开发者倾向于使用轻量化的工具(如终端、NeoVim)结合LLM,而不是传统的IDE,认为这种组合更高效。
- 引用:
- "Terminal + Claude Code + a project folder it’s all you need! Who knew?!"
- "I too started with Cursor and similar VS Code enhanced IDEs. And ended up using Claude Code. And realised my terminal is more important for me now."
- 引用:
- 轻量化工具趋势:部分开发者倾向于使用轻量化的工具(如终端、NeoVim)结合LLM,而不是传统的IDE,认为这种组合更高效。
总结:LLM在开发中展现出巨大的潜力,能够显著提高效率和扩展开发者的能力,但也存在上下文限制和对新手开发者的风险。开发者对其职业未来的担忧和对轻量化工具的偏好,反映了技术变革带来的复杂影响。