我在未阅读代码的情况下发布了生产 iOS 应用:“Vibe Coding”的现实
Source: Dev.to
“AI 代理时代”让人筋疲力尽——我打造 dumppp,原生 iOS Notion 客户端的旅程
2025 年底,日本开发者社区里一场关于“AI 代理时代实际上让人感到疲惫”的讨论走红。我深有同感。虽然本文标题看似相反,但读到最后,你会明白我为何觉得这个新纪元如此耗费精力。
作为指挥者的“痛苦”
“AI 会为你构建应用。”
几年前,我们会梦想这样一个科幻世界并欢呼。现在,这个世界已经到来——感觉如何?
说实话:真的很累。
当 AI 代理充当“开发者”,以闪电般的速度生成代码时,人类被迫承担 指挥者 的角色,承担 100% 的责任。 “是 AI 写的,我不知道” 这种说法行不通。即使你不阅读代码,行为表现、规格冲突以及用户体验的质量都要由你负责。保持“决策纯粹性”需要的精神耐力远超我的想象。
“自我设限”:推动实验
我不想放弃科幻梦。我相信通过完成一个高难度项目——发布 iOS 应用——可以真正体会这种疲惫的本质,并看到其背后有什么。因此,在 dumppp 项目中,我设定了一个宏大的约束:
“不阅读代码。”
我可能会瞄一眼编译错误,但我根本放弃了理解实现细节的尝试。为什么?因为我想实验 AI 能在多大程度上被视为 “自主实现者”,而不仅仅是一个完成工具。
在进行 Vibe Coding 时,我把所有资源倾注到:
- 需求定义 – 我们要解决什么问题?
- 营销 – 我们如何传播?
- 变现策略 – 我们如何实现可持续?
- 用户体验验证 – 使用起来真的舒服吗?
我还决定使用 Swift 开发原生 iOS 应用。虽然可以选跨平台框架,但我坚持使用原生 API,以最大化用户体验。原生开发的难度提升正是乐趣的一部分。
完全 Vibe Coding 的好处
我发现的收益令人惊叹:
- 一人“团队” – 我充当产品负责人/指挥者,AI 则是开发团队。这种明确的分工实现了大规模并行。
- 使用未知技术 – OAuth、Notion API、StoreKit 2(订阅)、AppIntents、SwiftUI。全部通过与 AI 对话实现,未翻开任何参考手册。
- 超高速全球化 – 支持六种语言(日、英、中文、法、德)。让 AI 完成从翻译到实现的全部工作只用了几分钟。沐浴时加入三种新语言,简直像魔法。
缺点:疲惫的根源
真正的“痛点”在这里:
- “够好”之外的地狱 – AI 能以惊人速度让你达到约 60% 的完成度。要突破到 80%+ 的“可投产”质量——修复仅在特定条件下出现的微小 UI 问题或解决离线同步不一致——就是不阅读代码的债务到期的时刻。
- 4,000 行“肥大文件”问题 – 没有严格规则,让 AI 处理所有事务会导致文件划分混乱。我最终得到的文件有的超过 4 000 行。AI 本身也开始失去全局视野,每一次修复都会引发一连串回归。
- 质量保证的陷阱 – “它能跑!” 很快会演变成一连串边缘案例 bug。一次又一次地让 AI 重试,却因为我的意图没有传达清楚而让它重复同样的错误,这种精神疲劳与写代码时的疲劳截然不同。
解决方案:规范驱动开发 (SDD)
为在混乱中生存,我提出了 SDD,并使用 SpecKit:
- AI
Source: …
Generates Specs** – 在编写任何代码之前,我让 AI 生成详细的 Markdown 规范。
2. Human Reviews / Approves – 我审查规范,和另一位 AI 讨论,最后给出“OK”。
3. Implementation via Claude Code – 获批的规范成为 AI 实现的 唯一真相来源。
这几乎彻底解决了 AI “幻觉”其自身逻辑的问题。只要人类掌握规范,Vibe Coding 的波动就会大幅降低。
移动端优化的开发体验
- GitHub Issues & Actions – 在 iPhone 上创建 Issue 会触发 GitHub Actions 上的 Claude Code 自动为规范和代码创建 PR。我可以在完全不触碰终端的情况下进行开发。
- 随处开发 – 这个环境让我可以在公交车上、洗澡时或床上完善规范和实现。
- 背包部署机器 – 为了在实体设备上部署,我把一台 MacBook 放进背包,通过 tethering 连接,并使用 Tailscale 进行远程访问。我用 Termius 通过暴力方式解决了构建流程。
将 AI 用于代码之外
我把 AI 用在所有事情上,包括营销。最有趣的技巧是使用 NotebookLM 把我的规范转换成播客。边洗碗或洗衣服时听 AI 生成的关于我自己策略的讨论,我可以从“第三方”视角发现逻辑漏洞或错误的变现计划。有时我甚至会让它“把这个项目吹上天”,以恢复我的动力(笑)。
结论
在开发 iOS 应用 Vibe Coding 的过程中,我了解到了 AI 驱动开发的惊人潜力——但它也揭示了一项隐藏的代价:协调一个自主代码生成伙伴所带来的精神疲惫。通过以精心制定的规范(SDD)为基础,并构建移动优先的开发工作流,这种疲劳变得可控,AI 代理时代的前景也显得不那么令人筋疲力尽。
“这并不意味着‘生活会变得轻松’。”
阅读和编写代码的痛苦已经转移到审查规范并不断做决定的痛苦上。
然而,生产力已经超越了单纯的效率。我现在可以把更多时间花在开发之外的事务上。虽然我仍然喜欢写代码,但我相信 AI 驱动的开发预示着一种全新的乐趣。对打破自身角色感到“过敏”是自然的,我也有无数次想亲自编写代码的冲动。
通过这次经历,我意识到前进的道路是把 AI 看作不仅是工具,而是一个**“伙伴”,而人类则保持“指挥家”**的纪律性。
- 首先,仔细编写你的 AI 代理规则和规范。
- 此外,一个你单独无法到达的全新领域正等待着你。
在此查看本实验的结果: