用AI代码助手Claude造了个Mac软件!全程几乎没动手写代码!
家人们谁懂啊!我最近用Claude这个AI代码助手整了个Mac软件叫"Context",专门用来调试MCP服务器的。这玩意儿从界面到代码几乎全是AI写的!我这个老程序员从2008年就开始搞Mac开发,但这次真给我整不会了——2万行代码里我自己动手写的不到1000行!
从Copilot到Claude代码助手
最开始用GitHub的Copilot就像有个超级自动补全,但还得自己主导。后来冒出各种AI编程工具,什么Cursor、Windsurf,都能让AI自己干活了。
2025年2月突然杀出个程咬金——Claude Code!这货直接在终端里运行,连代码编辑器都不要了,就一个输入框让你和AI聊天,简直离谱!
又双叒叕开坑副业
打工人谁还没几个烂尾的副业啊!我之前六年都没完整做完一个项目,每次卡在最后20%的细节打磨上。这次玩Claude Code时发现调试MCP服务器特别麻烦,官方工具丑爆了,我就想:要不让AI帮我做个Mac原生应用?
Claude写代码是真滴强!
最新版的Claude(Sonnet 4和Opus 4模型)写代码比普通程序员强多了!你只要描述功能,它就能:
- - 读懂现有代码 , 看懂你的项目代码: 找到和你需求相关的代码,理解你的代码风格和设计模式。
- - 自动写新代码, 学习新知识: 你给它新的文档或者规范,它能自己学习。
- - 顺手把测试也写了 写代码的同时,还能给你写测试代码来验证功能对不对。
- - 自己编译运行
- - 报错了还会自己改!
SwiftUI美容院
你决定用苹果最新的技术Swift 6.1和SwiftUI来开发这个Mac应用。你有点担心,因为网上Swift代码肯定不如Python或JavaScript那么多,AI会不会“水土不服”?
好消息是,Claude写Swift代码还是挺靠谱的,Swift 5.5之前的语法它都能搞定。但Swift 5.5之后引入的并发编程(Swift Concurrency),那可是个“大难点”,连人类程序员都经常搞错,AI也经常在这里“翻车”。而且,它有时候会搞不清苹果的新旧技术,比如明明有更现代的SwiftUI,它却偏偏要去用旧的AppKit/UIKit。
不过,它生成的SwiftUI界面代码,虽然一开始可能有点“丑”,但功能是没问题的。你只要跟它说多“美化美化”,它就能给你搞得像模像样,甚至看起来像是精心设计过的!
Claude在生成界面代码时,有个“通病”是Swift本身的问题:就是界面代码的类型描述太复杂了,编译器经常会报错说“无法在合理时间内检查类型”。不过还好,Claude很擅长把大段代码拆分成小块,这样就能解决这个问题,有时候它看到这个报错,甚至会自己主动去拆分!
用SwiftUI做Mac应用时,Claude偶尔会犯二:
- 有时会用老旧的Objective-C接口
- UI代码写得像直男审美
- 复杂类型经常把编译器搞崩溃
想让AI少犯错?你可以创建一个叫 CLAUDE.md 的文件,在里面写一些简单的规则,告诉它要用最新的API。比如,你给Claude的规则里就写了:
- 尽量用SwiftUI来构建所有功能。
- 界面要符合Mac电脑的风格,看起来就像苹果官方应用。
- 图标用SF Symbols。
- 用最新的macOS API,不用考虑兼容旧版本。
- 用最新的Swift语言特性,比如Swift 6,以及并发编程(async/await, actors)和Swift宏。
截图修BUG黑科技
遇到UI问题不用描述,直接截图拖进聊天框!Claude能看着截图改代码,跟产品经理对着设计图指指点点一样自然。虽然现在还得手动截图,但已经比写几百字需求说明强多了!
如何驯服AI程序员
重点不是怎么提问(现在AI理解力超强),而是怎么管理它的"记忆"。最新Claude有20万token的"脑容量",但用着用着就会记不清之前的事。这时候它会自动把聊天记录压缩成摘要——就跟人类开会记的潦草笔记一样,总会漏掉重点!
AI“读心术”:你得给它“上下文”!
以前,人们觉得用AI写代码,关键在于“提示词工程”,就是要把你的要求写得特别精准、特别完美。但现在,你发现这想法有点过时了。
现在的AI模型越来越聪明,就算你输入的不是很完美,甚至有点“语病”,它也能大概猜到你想干什么,并且把问题分解成一步步来解决。
你现在最大的挑战不是怎么写提示词,而是怎么管理“上下文窗口”。想象一下,AI的大脑一次只能处理这么多信息(目前是20万个“token”,你可以理解成单词或代码片段)。你每问一个问题,每得到一个回答,都会消耗这些“脑容量”。当“脑容量”快满了的时候,AI的表现就会变差。
Claude Code还会很贴心地给你显示“脑容量”还剩多少,当快满了的时候,它就会“压缩”对话,把之前的对话总结一下,然后用这个总结来开启新的“脑容量”,这样就能继续对话了。但“压缩”不总是完美的,它可能会漏掉一些重要细节。
所以,怎么用好有限的“脑容量”,让AI给出最高质量的输出,这才是现在用AI编程工具最大的挑战,你可以把这叫做“上下文工程”!
给AI“开个光”:预先“喂食”很重要!
让AI干活前先让它"预习":
- - 读现有代码文件
- - 看技术文档
- - 然后让它写个摘要
在你让AI直接开始干活之前,你可以先给它“开个光”,也就是让它提前阅读一些背景资料,这样它生成好代码的几率会大大增加。
默认情况下,它会阅读你提前设定好的 CLAUDE.md 文件。但你也可以让它阅读更多的东西,比如一些特定的文档或者源代码。你最近就用过这样的提示词:
“阅读 DXTTransport.swift, DXTManifest.swift 等一堆文件,还有 MANIFEST.md 这个文档,了解一下DXT包是如何添加服务器的。读完之后,总结一下你学到了什么。”
Claude就会用它的“搜索”和“阅读”工具去找到这些文件,然后用“获取”工具去GitHub下载那个Markdown文档。你让它总结,就是逼着它先“消化”一下这些信息,这样它在后面执行任务的时候,表现会更好。
这种“预先喂食”特别重要,如果你的代码用了第三方库,或者是一些AI模型知识截止日期之后才出现的新API,提前让AI学习这些资料,能避免它“抓瞎”。
需求文档不用太正经
写需求时可以像这样放飞自我:
"要有个按钮在这里,点开是个弹窗,左边显示服务器列表,右边显示详情..."
AI完全能get到!比写正规需求文档快多了,而且不用纠结格式错别字。
超级思考,制定计划!
让AI先做计划再动手
Claude有个“坏习惯”,就是它总喜欢一接到任务就直接动手写代码,结果往往写出来的东西质量不高。
另一个让AI表现更好的小技巧就是:让它先进入“扩展思考模式”,然后制定一个计划。 那些“think”、“think hard”、“ultrathink”这些词,可不是随便说说的,它们会激活AI不同级别的“思考模式”。“ultrathink”消耗的“脑容量”最多,但效果也最好。如果你想修改计划,可以明确告诉它,在计划被你接受之前,不要动手写代码。
发现AI急着写代码时,就喊"给我好好想想!"(字面意思:用"ultrathink"指令)。这时候它会先列个详细计划给你过目,比直接莽代码强十倍!
强烈推荐你阅读Anthropic官方的《Claude Code:代理编程最佳实践》这篇文章,里面有很多你在这里学到的技巧,是使用Claude Code或者其他编程AI的“葵花宝典”。
自动化测试大法好
给AI搭个“反馈回路”:让它自己“学乖”!
教会AI这几招就能躺平:
- - 自动编译(虽然Xcode命令它经常懵)
- - 自动跑测试
- - 看日志修BUG
Claude最厉害的地方在于,它能自己形成一个“反馈回路”:改代码,然后测试代码,如果失败了,就分析失败原因,再改代码,再测试,如此循环。关键的“反馈回路”包括:
- 编译: Claude应该知道怎么编译你的应用。它自己就能编译Swift包,但对于Mac应用,它经常搞不定Xcode的编译命令。幸好有个工具叫XcodeBuildMCP,它能给AI提供一套简化的编译和运行工具。
- 测试: Claude应该能运行你的测试,并且看到测试结果。Swift包的测试它也能搞定。至于应用的界面测试,你还没试过,但估计也需要XcodeBuildMCP。
- 修复Bug: Claude知道怎么通过添加调试日志来找问题。但它不能像用户一样操作应用,所以你得手动操作应用,然后把控制台的日志复制粘贴给它。虽然这样也行,但如果你没有提前写好单元测试或界面测试来封装这些行为,它就无法完全自动修复bug。
- 修复界面问题: 你前面提到了,你可以把截图粘贴给Claude让它修改界面。虽然有一些工具可以自动截图,但你仍然需要手动操作应用来让它进入到正确的界面状态。
AI还能当美工/文案/测试数据生成器
AI不只写代码:还能帮你“操心”!除了写代码,Claude还能:
- - 给界面文案提建议
- - 生成逼真的测试数据
- - 甚至帮忙规划版本功能!
发布自动化真香
高质量的自动化脚本:现在几乎是“免费”的了!
以前最头疼的打包发布流程,现在让AI写个Python脚本就搞定:
- - 自动生成更新日志
- - 打包签名一条龙
- - 发布到GitHub
- - 还能美化命令行输出!
发布应用最后那20%的“痛苦”,很大一部分在于自动化发布流程,特别是在macOS上,你得搞定复杂的代码签名、公证和打包。以前,你每次都要花大量时间折腾fastlane,或者自己写点简单的Python脚本。但这次,你有了AI!
只用了几个小时,Claude就帮你写好了一个发布脚本,它能做到这些:
- 检查环境: 看看你的电脑上有没有安装好需要的工具。
- 生成发布日志: 从Git提交记录里生成更新日志,再和手写的更新日志结合起来,生成HTML格式的发布说明。
- 构建、签名、公证、打包: 把你的应用构建好,签名,然后通过苹果的公证,最后打包成一个DMG安装文件。
- 生成Sparkle更新文件: 为现有用户生成Sparkle更新文件,让他们能自动更新。
- 发布到GitHub: 给发布版本打上标签,然后发布到GitHub上。
- 上传调试符号: 把调试符号上传到Sentry,方便分析崩溃报告。
(这里应该插入那张有漂亮命令行输出的图片)
这个脚本有2000行Python代码,如果让你自己手动写,你可能只会自动化最重要的几步,肯定不会花心思让输出变得这么好看!这个脚本每次发布都能为你节省几十份钟的手动操作时间,而你只用了几段话来描述需求,然后让Claude帮你调试和修复了一些问题。
未来IDE会长啥样?
做这个项目时我基本只用Claude Code和GitHub Desktop。传统代码编辑器那些功能根本用不上!现在的IDE都是给人类程序员设计的,未来的IDE可能是专门帮AI理解项目和自动测试的,代码编辑器反而成配角了!
副业第二春!
最让我激动的不是做了个新APP,而是终于能完整做完副业项目了!AI就像每天多给我5小时,每月只要200刀,比咖啡因管用多了!
(查看完整源代码请戳github链接)