![]()
在我多年的软件开发生涯中,我主要使用两种基本技术来构建软件。第一种技术是自己逐行编写代码。我很享受这个过程,尽管它可能非常耗时。如果你进入心流状态,你真的可以沉浸在这个过程中。
第二种技术是管理其他程序员。这通常是一个力量倍增器,因为那些开发人员在逐行编码方面往往比我更好、更快。我可以管理几个开发人员,让项目进展得更快。
但我并不那么享受这种做法。从来没有心流状态。更像是持续不断的规划、说服、哄劝、纠正,还有一点混乱。人就是人,如果你是经理,这就是你会遇到的情况。
使用Claude Code和AI构建Mac应用不会带来心流状态。如果你曾经管理过程序员,你就知道使用Claude Code的感觉。它是一个巨大的力量倍增器,但你将花费大部分时间去哄劝和纠正,还要花一些时间试图摆脱AI生成的混乱。
与管理人类程序员一样,如果你知道如何编码并且理解底层技术,你使用Claude Code会更加成功。这样,你可以在架构和设计决策以及简单的功能定义方面指导AI。
我的ZDNET同事Tiernan Ray最近尝试了vibe编程。他形容自己是"编程知识有限的新手"。他的结论是:"我会说使用这些工具让我对程序员有了更大的敬意。"
我告诉你这些是为了设定期望。我从木船铁程序员的时代就开始编程了。我以及任何有经验的开发人员从Claude Code这样的工具中获得的好处,也可能对那些渴望学习的非程序员有用。但不要指望仅仅因为使用AI就能挥舞魔法棒获得适合市场的应用。
话说回来,让我们深入我的Mac项目。
项目起始点和需求分析
我从之前使用Claude Code构建的iPhone应用开始。这个应用的目的是动态管理3D打印耗材卷。我有120个卷材,存放在四个存储架上,每个架子有五层。这些卷材不断在架子和八台3D打印机之间移动,其中五台可以同时使用四个卷材,一台可以使用八个卷材,两台仅限于一个卷材。
iPhone应用使用NFC标签,使跟踪这些卷材的移动变得非常容易,并使用内置摄像头抓取每个卷材的参考图像。我已经每天使用这个应用大约两个月了,它对我的工作流程来说是一个巨大的胜利。
但现在,我想让它在Mac上工作。我也想让它在Apple Watch上工作,但那是另一篇文章的故事。
我通过网络从Mac启动大部分打印作业,所以能够清楚地看到我有什么材料和颜色可用,以及已经分配了什么,会很有帮助。当然,我可以使用手机。但我希望能够在桌面上打开Mac应用程序并查看库存。
iPhone应用是在苹果的Xcode开发环境中使用Swift和SwiftUI构建的。我在终端中使用Claude Code,它与Xcode配合编写代码。
Mac的UI和iPhone UI之间有很多交叉,特别是在使用Swift时。幸运的是,移植到Mac不需要完全重写。但确实需要大量返工。
首先,有Mac限制的问题。我的Mac Studio没有摄像头,Mac不支持NFC扫描。所以虽然我想保留iPhone应用收集的NFC和照片数据,但Mac无法扫描或管理它。
我还希望Mac与iPhone应用即时完全同步。iPhone上存在的任何卷材数据都应该从Mac上可见。幸运的是,苹果已经构建了一个相当广泛的库来通过iCloud共享数据。
开发过程中的挑战与解决
当我开始iPhone应用时,我知道我要共享数据,所以从一开始就在iPhone应用中构建了iCloud架构。当我开始Mac应用时,只需要接入那些数据并将其带到计算机以及手机上。
这是我的起点。我确保对应用目录进行完整备份。我还将所有内容检入GitHub进行源代码控制和管理。
然后我启动Claude Code,告诉它我希望它分支我的本地Git仓库,并解释我想基于iPhone应用的工作构建Mac应用。作为第一个提示的一部分,我解释说NFC和摄像头功能不需要移植,但iCloud架构需要。
十分钟后,我有了一个Mac应用。它很糟糕。看起来很可怕。每次卷材列表出现时,填充都需要很长时间。但从零到第一次运行十分钟的时间,比我逐行完成要少用大约十天。
经过几轮运行Xcode的构建工具,等待不可避免的错误和警告,与Claude分享这些错误和警告,然后重复。但过了一段时间,应用功能正常了,尽管与我最终想要的结果相去甚远。
Claude最初有些困难的一个领域是协调Mac有可调整大小的窗口这一事实。因此,UI元素必须相应地缩放和调整大小。这就是构建Claude知识库变得极其重要的地方。
就像我对iPhone应用所做的那样,我指示Claude Code构建关于它工作的所有内容以及我们学到的经验教训的注释和状态更新。所以一旦Claude最终理解窗口会调整大小,这就成为嵌入在项目指令中的规则。
在iPhone上,你在屏幕之间转换,都是垂直方向的。但在Mac上,我选择制作三面板屏幕。左面板包含主要选项按钮,中间面板包含卷材列表,最右面板包含卷材数据。
让它工作并没有花太长时间,但需要大量来回提示才能让它看起来不错。我没有任何特别突出的提示可以与你分享,但我可以告诉你,我描述了我想看到的内容,让它移动和重新排列项目,并为显示部分添加样式。我经常与Claude这样做。
不幸的是,在Mac实现中添加三面板显示somehow破坏了iPhone应用。这就是作为程序员有帮助的地方,因为我最终发现Claude可能试图在应用之间共享屏幕。当我明确告诉它为Mac创建新的界面屏幕然后修复iPhone的屏幕时,事情运行得更好。
在架构上,我们必须处理速度问题。卷材列表很慢,因为它为每一行加载全分辨率照片。解决方案是缩略图缓存系统,它创建照片的128像素小版本,将它们存储在磁盘上,并在后台生成它们,这样即使有数百个卷材,列表也能平滑滚动。
我们还必须探索如何刷新该列表,减少图像创建的等待时间,并添加清除功能。
管理AI的体验感受
在本文开头,我提到了我的两种软件创建模式:编码和管理。在使用Claude Code时,我花费了大部分时间进行管理。
事实上,我能找到的最佳心态是将AI视为远程人类程序员。我给它分配任务。我问问题。我征求它的意见。我指出错误。我测试、测试、再测试。然后我再次测试。
Claude在产生这个项目方面做得与我过去分配工作的任何程序员一样好。有时Claude很迟钝和固执,但我的人类程序员也有类似的不配合时刻。
毫无疑问,管理AI的体验远不如自己编码那么愉快。另一方面,我们在大约一个月的实际时间内,用大约8小时的项目时间创建了一个完全符合我要求的Mac应用。
如果你正在考虑使用Claude Code或任何AI制作Mac应用,我的建议是慢慢工作,逐个添加功能,并进行完善。然后,一旦项目达到某种功能状态,将90%的注意力转向测试。不要假设任何东西都会按照你的要求构建。Claude遗漏了一些关键功能,直到我指出才实现它们。
但毫无疑问,生产力的好处是巨大的。现在我的iPhone和Mac上都有一个专门为我的工作流程设计的特殊定制应用。而且它有效。我仍然没有决定是否要把它变成产品,但即使我永远不卖它,在过去三个月里我在Claude Code Max上花费的几百美元绝对是值得的。
敬请期待。我的下一个项目是将我的应用移到Apple Watch上。
Q&A
Q1:使用Claude Code开发应用的体验如何?
A:使用Claude Code开发应用更像是管理程序员而不是编程。它是一个巨大的力量倍增器,能在8小时内创建功能完整的Mac应用,但需要花费大部分时间去指导、纠正AI的错误,处理AI生成的混乱。整个过程没有编程的心流状态,更多是持续的管理工作。
Q2:Claude Code适合什么样的人使用?
A:Claude Code更适合有编程经验的开发者使用。如果你知道如何编码并理解底层技术,就能更成功地使用Claude Code,可以在架构和设计决策方面指导AI。对于编程新手来说,不要指望仅仅因为使用AI就能轻松获得市场级的应用。
Q3:使用Claude Code开发应用需要注意什么?
A:建议慢慢工作,逐个添加功能并完善。一旦项目达到基本功能状态,要将90%注意力转向测试。不要假设AI会完全按要求构建,Claude可能会遗漏关键功能或产生意外错误。同时要做好备份和版本控制,像管理人类程序员一样给AI分配具体任务。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.