site

用 AI Vibe Coding 第一次开发 App 的经验

引言

我是一个拥有 10 年开发经验的 Web 开发工程师,主要专注于后端开发。虽然我也曾两次尝试学习开发 App,但都因为门槛太高没能入门就放弃了。

这次借助 AI Vibe Coding 模式,我成功开发并上架了一款 App —— PATimer。这是一款倒计时提醒应用,目前已经发布了 Mac OS 版本。

在这篇文章中,即使你像我一样对 Xcode 充满恐惧,也能了解到如何利用 AI 克服这些障碍。

开发工具的选择

在开发过程中,我使用了多种 AI 工具,主要包括 Codex、Claude Code 以及 Google 的 Antigravity。

直面 Xcode 的恐惧

作为一个 Web 开发者,我必须坦白:我非常讨厌,甚至惧怕和 Xcode 打交道。

它的功能实在太多、太复杂了。但是现在有了 AI,情况完全不同了。你只需要按照 AI 给出的步骤一步步操作即可。对于一些复杂的流程,我在询问完 AI 后,会特意让它总结生成一份 Markdown 文档,保存在项目的 docs 文件夹中,以备后用。

从 macOS 到 iOS

我还把这个 App 扩展到了 iOS 平台,开发起来也非常快。

我认为跨平台语言或者工具在 Vibe Coding 时代完全毫无意义了。以前我们为了节省开发成本使用 Flutter 或 React Native,但在 AI 能够快速生成原生代码的今天,直接使用 Swift/SwiftUI 开发原生应用,不仅体验最好,开发效率也被 AI 极大抹平了。

上架与资料填写

开发 App 比较麻烦的另一个环节是上架,因为需要填写一大堆资料,这是我很头疼的事情。

避坑指南

在这次开发过程中,我也踩了不少坑,总结下来希望大家能少走弯路:

  1. 付费模式要提前规划

我的 App 第一个版本是付费下载版,审核通过后也有用户购买了。但在第二个版本中,我决定改成“免费下载 + 内购”的模式。

我想做一个功能:把之前已经付费购买的用户自动转换为已内购的高级版用户。我让 AI 帮我实现了这个逻辑,结果提审被拒,改了几次都失败了,浪费了好多天的时间。苹果审核人员说功能有问题,而我自己测试起来也非常麻烦,因为无法完美模拟之前的付费环境。

在几次提审失利后,我索性删掉了这个“自动迁移”的功能。反正当时只有一个付费用户,我打算到时候直接发一个兑换码给他作为补偿。

教训:一开始就应该规划好是做 付费版 还是 内购版。后期改动不仅代码逻辑麻烦,审核也是个大坑。

  1. 内购测试小技巧

说到内购,很多新手(包括我)一开始不知道怎么在本地测试。其实 Xcode 提供了很方便的本地测试功能:

  1. 在 Xcode 中新建一个 StoreKit Configuration File。
  2. 点击顶部菜单栏的 Product -> Scheme -> Edit Scheme…。
  3. 在 Run -> Options 中,找到 StoreKit Configuration 选项,选择你刚才创建的文件。

这样你就可以在模拟器中完美模拟内购流程了。切记:测试完准备打包上架时,记得把这个选项改回 None,否则提交审核会出问题。

  1. 本地通知 vs 远程推送

我的 App 需要通知功能,但我需要的是 本地通知(Local Notification),而不是 远程推送(Remote Push)。这两个功能要求的权限不同,配置也完全不一样。

但 AI 默认以为我需要的是远程推送,不仅代码写错了,还导致我提交审核时上传失败报错。这个问题我很困惑,直到让 AI 查了很久日志才发现是配置错了。

关键是这个问题我犯了两次!就像我在 X 上看到 yetone 的帖子所说,我们确实需要一个“尸检报告”。我们要把之前犯错以及修复的过程,让 AI 总结到一个专属的文件夹中,每次开始新任务前让 AI 先读一下,不要再次犯错,以免浪费 Token 和时间。

  1. 其他小建议
  1. 时间成本

开发这个 App,我觉得自己花的最多的时间其实是 模拟和真机的体验与调试。AI 很快就能把功能写出来,但 UI 的细节调整、交互的流畅度,都需要在设备上反复体验和打磨。

最后

有了 AI Vibe Coding,像我这样对 App 开发一窍不通的后端工程师,也能独立完成从开发到上架的全过程。如果你也有想法,不妨现在就开始动手吧。