Vibe 了 7 个月,我一个人用 AI 写了 67000 行代码,上架了一个 iOS App
先说结果
7 个月,632 次 commit,67,064 行 Swift 代码,一个人完成了一个 iOS App 的从零到上架。
这个 App 叫 WorkValue,利用 iOS 系统的地点感知能力自动记录你每天在公司待了多久,录入工资后算出你的真实时薪。不用手动打卡,不常驻后台,不上传服务器,所有数据留在本地。

为什么做这个
一直想记录自己的上班时间,算算 Work Life Balance 到底怎么样。讽刺的是,一直太忙,没时间做这件事。
去年 8 月接触了 Claude Code,发现 Vibe Coding 搭一个 App 原型的速度远超预期。8 月 16 日,我开了这个坑。
当时的想法很简单:一个人 Vibe 一个月,上架,收工。
蜜月期
前两个月是真的爽。
8 月 152 次 commit,9 月 199 次,两个月 351 次提交,占了整个项目一半以上。每天跟 AI 对话,说几句话就能看到一个新页面、一个新功能。SwiftUI 布局、SwiftData 数据层、定位服务、Widget 小组件,功能像搭积木一样往上堆。
| 月份 | Commits | 状态 |
|---|---|---|
| 8 月 | 152 | 起步,激情满满 |
| 9 月 | 199 | 巅峰,功能井喷 |
| 10 月 | 56 | 减速 |
| 11 月 | 42 | 疲软 |
| 12 月 | 13 | 几乎停滞 |
| 1 月 | 55 | 缓慢回暖 |
| 2 月 | 32 | 低频维护 |
| 3 月 | 83 | 冲刺上架 |
信心满满,觉得 App Store 近在眼前。
整个项目的 commit 热力图,8-9 月那片亮绿色一目了然:

现实的暴击
10 月开始,一切变了。
Vibe Coding 让写代码变得很快,但没有人帮我回答「这个功能到底要不要做」。经常花一整天 Vibe 出一个页面,用了两天觉得不对,全部推翻重来。产品方向不清晰的时候,写代码越快,走弯路也越快。
与此同时,Bug 开始堆积。当时用的 Sonnet 3.5,模型能力有限,写出来的代码质量参差不齐。一个 Bug 修好了,两个新的冒出来。更要命的是,我对整个 App 的架构正在失去掌握。很多代码是 AI 写的,我只看了个大概,出了问题改起来无从下手。
创造性的工作结束了,剩下的全是产品功能的取舍和边界条件的处理。这些事情既不新鲜也不好玩,偏偏还只能自己想。12 月,我只提交了 13 次 commit,项目几乎停摆。
回头看,这大概是 Vibe Coding 最容易被忽略的部分:AI 能帮你把想法变成代码,但不能帮你想清楚你到底要做什么。编码门槛降低了,产品思考的门槛一点没降。
转机
转折点是今年 Opus 4.6 的发布。
我抱着「好歹收个尾」的心态把项目丢给它。结果出乎意料,它能看懂之前那些乱七八糟的代码,而且能系统性地重构。之前 Sonnet 3.5 留下的屎山,Opus 4.6 一个个理清楚了。所以我现在有了一个新的信念:AI 写的屎山,可以让未来更强的 AI 来重构。
功能一点点收敛,该砍的砍,该改的改。3 月冲刺了 83 次 commit,把所有松散的部分收拢到位。
3 月 10 日提交审核,被苹果打回了一次,修了一些隐私描述的问题后重新提交,3 月 16 日正式上架。从第一行代码到 App Store,整整 7 个月。
怎么做到不耗电的
很多人好奇:一个记录工时的 App,怎么做到不用手动打卡、不常驻后台、还几乎不耗电?
答案是苹果的 CLVisit API。
大多数定位 App 的做法是持续获取 GPS 坐标,然后判断你在哪里,这很耗电,需要 App 常驻后台。CLVisit 的思路完全不同:它是苹果系统级的「地点访问」检测服务,综合 GPS、WiFi、蓝牙、蜂窝基站和运动传感器,由系统自己判断「用户到达了某个地点」和「用户离开了某个地点」,然后把事件推送给 App。
WorkValue 要做的就是拿到到达和离开事件后,判断这个地点是不是你设定的工作地点。是的话就自动记一条工时。
最妙的是,就算 App 被系统杀掉了,下次打开时系统会把这段时间里遗漏的事件补发过来。所以你完全不需要让 App 保持后台运行,一天下来打开一次,所有工时就自动补全了。这也是日耗电量低到可以忽略的原因:它根本不做持续定位,只是被动接收系统推送。
当然 CLVisit 不是完美的。它的检测有 5-10 分钟的延迟(系统需要确认你是真的停留而不是路过),偶尔也会把在车里等人误判为一次访问。去重、合并短暂离开、过滤低置信度的记录,这部分代码反而占了整个定位模块的大头。
七个月下来的体会
Vibe Coding 确实让一个人独立完成一个完整 App 成为可能。67000 行代码、16 种语言本地化、Widget、iCloud 同步,如果纯手写,这个体量大概需要一个小团队干几个月。
但真正耗时的从来不是写代码,而是想清楚做什么、怎么取舍、哪些功能该砍掉。AI 帮不了你做这些决定,甚至因为写代码变得太容易了,你会更频繁地走弯路。反正重写也不贵嘛,那就先写了再说吧。然后就掉坑里了。
Vibe Coding 真正省时间的地方,其实是那些重复性的苦力活。16 种语言的翻译,AI 批量生成,我只抽查关键语言的质量。每次改了 UI 要重新截 App Store 的图,每张图截 16 遍,我让 AI 用 Python 写了截图合成脚本,一键全部重新生成。发版提审也是,Fastlane 自动化搞定构建、上传、多语言升级文案填充、提交审核,一条命令跑完。这些流水线式的工作让 AI 搭好之后,省下来的时间可以花在产品本身。
上架两周的成绩单
既然文章都写了,也晒一下真实数据。上架两周,100 次下载,18 次内购,12 个活跃订阅,App Store 页面转化率 13.9%。因为订阅有首月免费,所以目前收入基本为零,苹果后台收入栏显示的是「数据不足」。

成本这边,Apple 开发者账号 99 美元/年是固定的。AI 工具的费用是 Claude 订阅 100 美元/月加上 Codex 20 美元/月,不过这些也同时用在工作上,不算纯粹为这个项目花的钱。没有服务器费用,没有设计师费用,没有任何额外开支。一个人的项目好处就在这里,成本压得很低,不赚钱也不会亏太多。
所以如果你也想 Vibe 一个 App,我的建议是先想清楚你到底要做什么,再动手。Vibe Coding 加速的是落地,不是思考。
WorkValue 现在可以在 App Store 免费下载。如果你也想看看自己的真实时薪是多少,欢迎试试。
现在有个限时活动:打开 App → 会员订阅页 → 选「兑换代码」→ 输入 WORKVALUE,免费领 3 个月会员(领完可以立刻取消订阅,不会扣费)。活动截止到 4 月 15 日。