乐于分享
好东西不私藏

我用 AI 当联合开发者,把一个记账 App 做到了 App Store

我用 AI 当联合开发者,把一个记账 App 做到了 App Store

过去一年,AI 写代码这件事被讲得太多了。

有人让 AI 写一个按钮,有人让 AI 修一个报错,也有人让 AI 生成一个漂亮页面。

但我一直很好奇一个更现实的问题:

AI 到底能不能参与一款 App 从开发、调试、设计、上架到运营的完整流程?

不是写几段代码,不是做一个玩具 Demo,而是一个真正能装到手机上、能登录、能记账、能识别票据、能同步云端、能订阅会员、能提交 App Store 的产品。

于是,我做了一个实验。

这个实验最后变成了一款 App:

AI 财富记账本 / AI Wealth Tracker

它支持语音记账、拍照识票、文本记账、资产管理、股票持仓、月度报表、AI 财务分析,还做了中英文双模式,并最终上线 App Store。

更特别的是,它的很多开发过程,是我和 AI 一起完成的。

01. 一开始,我想做的不是“记账”,而是“少记账”

传统记账 App 最大的问题不是功能少,而是太麻烦。

每次消费之后,你都要打开 App,选分类,输金额,填备注。

坚持三天很容易,坚持三个月很难。

所以这个 App 的第一个目标很简单:

让记账动作尽可能消失。

我希望它可以做到:

说一句话,就能记账。

拍一张票据,就能识别。

复制一段订单文本,也能自动拆分。

用户不需要理解复杂表单,只需要把信息丢给 AI。

真实首页截图:目标不是做一个更复杂的账本,而是让记账变得更少打扰

02. AI 在这个项目里,不只是“代码生成器”

很多人理解 AI 编程,停留在“帮我写一个函数”。

但真正做一个 App 的时候,问题远不止函数。

你会遇到:

UI 不够高级。

浅色模式太白。

深色模式列表发灰。

OCR 只识别出一条。

模拟器一直弹 Apple 登录。

订阅成功但会员状态没更新。

TestFlight 登录验证码收不到。

App Store 截图尺寸不对。

Apple Ads 跑了两天没有安装。

Gemini 成本突然变高。

macOS 安装后无法滑动。

这些问题单独看都不大,但它们叠在一起,就是一个真实产品的开发现场。

在这个项目里,AI 参与的不是某个孤立任务,而是完整循环:

发现问题 → 定位代码 → 修改实现 → 跑测试 → 装模拟器 → 看效果 → 再修。

这更像一个永远在线的结对开发者。

AI 开发闭环:AI 真正有价值的地方,是进入完整工程循环

03. 第一个难点:单包双模式

这个 App 不是简单做一个中文版,再做一个英文版。

我选择的是:单包双模式。

也就是说,同一个 App 包,根据地区和配置切换不同能力。

中国区:中文界面、手机号登录、百度 OCR、通义千问、人民币资产。

国际版:英文界面、Apple / Google 登录、Google Vision、Gemini、美股行情、多币种。

这听起来只是“多语言”,但实际远不止。

比如:

中文用户习惯手机号验证码登录。

海外用户更习惯 Apple 登录。

中文票据更适合百度 OCR。

英文票据更适合 Google Vision。

中文 AI 解析走 Qwen。

英文 AI 解析走 Gemini。

中国用户关心 A 股、现金、银行卡。

海外用户可能更关心美元、股票、基金、资产组合。

所以底层必须设计成可切换的能力系统,而不是简单翻译文案。

单包双模式架构:真正难的不是翻译,而是让一套 App 支持两套用户习惯

04. AI 记账:从“识别金额”到“理解账单”

最早的 AI 记账很简单:

用户说:“午饭 35,打车 18。”

AI 返回两条账单。

但很快问题就来了。

真实世界的账单,不会这么干净。

一张旅游订单截图里,可能同时有酒店、火车票、推荐景点、入住日期、退票按钮。

一张英文购物小票里,可能有商品明细、税费、小计、总计。

一张中文订单里,可能有原价、优惠、实付款。

如果模型不够聪明,就会把原价和实付识别成两笔。

如果规则太死,又会漏掉真实账单。

如果完全依赖大模型,成本又会越来越高。

真实 AI 记账弹窗截图:开口记账、拍照识票,账单自动进入结构化流程

所以后来我把 OCR 链路改成了三层:

第一层:OCR 先把图片转成文字。

第二层:本地规则先尝试解析高置信度票据。

第三层:本地不确定时,再交给 Gemini 或 Qwen。

这就是后来做的“智能混合解析”。

简单票据,本地就能处理。

复杂票据,交给模型兜底。

既省钱,也减少模型胡乱发挥。

智能混合 OCR 流程:不是所有问题都要交给大模型

05. UI 打磨:从“能用”到“想用”

功能做出来之后,我很快遇到一个经典问题:

App 能用,但不够高级。

尤其是浅色模式。

最开始的界面太白,卡片和背景边界不明显,有一种“视觉贫血”的感觉。

后来我们反复调整了几个方向:

首页顶部改成深色渐变 Hero 卡片。

资产管理改成低对比的雾面透色容器。

快捷记账胶囊降低存在感。

最近账单改成聚合大卡片。

浅色模式使用带一点品牌色的背景,而不是纯白。

深色模式重新处理卡片灰度和边框。

这个阶段很有意思。

AI 不只是写代码,它还能和我一起讨论:

为什么这张卡片显得臃肿?

为什么右侧太空?

为什么白色太多?

为什么按钮背景太抢眼?

为什么账单列表在深色模式下看起来脏?

这些问题没有唯一答案,但 AI 可以快速给出方案,我再用模拟器看效果,一轮一轮收口。

06. 资产管理:记账 App 不应该只看支出

做到账单和报表之后,我发现另一个问题:

用户真正关心的不是“我花了多少钱”,而是:

我的钱现在在哪里?

所以 App 加入了资产管理。

现金、银行卡、基金、股票、其他资产,都可以放在一个地方看。

国际版还接入了股票行情,可以看到持仓市值和盈亏变化。

这让 App 从“记账工具”变成了“财富跟踪工具”。

真实资产页截图:支出只是结果,资产才是全局

07. AI 分析:不是给用户一堆图,而是给判断

做报表很容易,真正难的是让报表有意义。

所以我把 AI 分析页做成了更像“财务体检”的体验。

它不只是告诉你本月花了多少钱,而是尝试回答:

现金流健康吗?

支出有没有异常?

资产变化是否合理?

股票风险是否需要注意?

下个月预算该怎么调?

这个功能对免费用户也开放完整诊断,因为产品的价值应该先被看见。会员限制放在录入条数、同步和更高频使用上,而不是把核心认知体验藏起来。

真实 AI 分析页截图:AI 不只是记账入口,也可以成为财务体检入口

08. 最难的部分,往往不是功能,而是上线

做 App 的人都懂:

真正折磨人的,不一定是写页面。

而是那些上线前必须处理的小问题。

比如订阅。

客户端显示订阅成功,并不代表服务端一定可信。

所以后面接了 App Store Server API 和 Server Notifications,让会员状态不只依赖本地同步。

再比如 TestFlight。

验证码收不到,要查短信服务。

订阅到期日不更新,要查 Apple receipt、云端表、VIP 逻辑。

沙盒账号登录失败,要换模拟器、真机测试。

App Store 截图不合规,要重新生成 6.9 寸 iPhone 和 13 寸 iPad 的中英文预览图。

macOS 兼容异常,还要单独适配触控替代和窗口体验。

这些事情很碎,但它们决定了一个 App 到底是“Demo”,还是“产品”。

上线清单:从 Demo 到产品,中间隔着一百个细节

App Store 预览图合集:真实上架素材也成为产品打磨的一部分

09. AI 也会犯错,所以必须建立验证习惯

这个项目里,AI 帮了很多忙,也踩过不少坑。

比如有一次,OCR 新策略为了省 Gemini 成本,加入了本地优先解析。

结果英文小票被本地规则误判成“单笔总额”,没有交给 Gemini,导致只识别出一条账单。

问题不是 AI 不能做,而是:

AI 改代码之后,必须验证。

后来我形成了一个习惯:

改完先跑 `flutter analyze`。

再跑测试。

再装到 iPhone 17 Pro Max 模拟器。

再看日志确认走的是本地还是 Gemini。

必要时重装 App。

关键功能再拿真机测。

这也是我对 AI 开发最大的感受:

AI 能极大提高速度,但它不能替代工程纪律。

你越依赖 AI,越需要测试、日志、回归用例和清晰的边界。

验证日志:验证不是形式感,而是 AI 开发里的安全带

10. 成本也要算:不是所有 AI 都一样贵

刚开始我更多关注功能能不能跑。

后来开始看成本。

英文版使用 Gemini,中文版使用 Qwen。

实际对比后发现,中文场景下 Qwen 的成本非常低;Gemini Flash-Lite 也已经比之前便宜很多,但大规模调用时仍然要控制。

所以 App 做了两件事:

第一,AI 分析页加缓存,同一个用户、同一个月份、账单没变化时,不重复请求。

第二,OCR 解析走智能混合,本地能确定就不请求模型。

这其实是 AI 应用很现实的一课:

模型能力重要,成本结构同样重要。

如果不做缓存、不做路由、不做本地兜底,用户量一上来,账单就会变成压力。

AI 成本优化:把模型用在最值得的地方

11. 这次开发之后,我对 AI 编程的看法变了

以前我觉得 AI 编程像一把更快的锤子。

现在我觉得它更像一个随叫随到的团队:

它可以当初级工程师,帮你写样板代码。

可以当测试工程师,帮你补回归用例。

可以当 UI 顾问,帮你拆解视觉层级。

可以当后端助手,帮你查接口链路。

可以当发行助理,帮你整理截图和版本说明。

可以当运营参谋,帮你分析广告组和关键词。

但它也需要你做产品负责人。

你要决定方向。

你要判断审美。

你要知道什么时候该省钱,什么时候该保准确率。

你要知道什么能自动化,什么必须真机验证。

你要知道哪些东西不能碰,比如密钥和用户数据安全。

AI 不是替代你,而是放大你。

如果你本来就有产品判断,它会让你跑得更快。

如果你没有判断,它也会让你更快地跑偏。

真实报表页截图:产品最终要回到用户能理解、能使用、能坚持的价值

结尾:未来的软件,可能会越来越像这样被做出来

这款 AI 财富记账本,还远远不是终点。

它还可以继续优化 OCR、继续提升 AI 分析质量、继续做资产诊断、继续改善订阅体验、继续扩展更多国家和币种。

但这次开发让我非常确定一件事:

AI 开发不是未来,它已经是现在。

真正的变化不只是“代码写得更快”。

而是一个普通开发者、一个独立产品人、一个小团队,可以用过去远远做不到的速度,把想法推到真实用户面前。

以前做一个完整 App,需要很多角色:

产品经理、设计师、前端、后端、测试、运维、增长。

现在 AI 不能完全替代这些角色,但它可以让一个人暂时拥有这些角色的影子。

这很令人兴奋,也很危险。

因为门槛降低之后,真正稀缺的东西会变成:

你有没有好问题。

你有没有判断力。

你有没有耐心把一个 Demo 打磨成产品。

而这一次,我做的就是这个实验:

把 AI 当作联合开发者,认真做完一款 App。

不是玩具。

不是截图。

不是一次性 Demo。

而是一款真的上线、真的能用、还能继续进化的 AI 财富账本。

AI 不只是写代码,它正在改变产品诞生的方式。