做了一年多独立开发,最近上线了第二个 app:Soberly (觉察与改变),一个戒瘾陪伴工具。来分享一下为什么选这个赛道,以及技术上踩过的坑。
**为什么做戒瘾?**
看了英文市场的数据:I Am Sober 在美区 Health & Fitness 长期 Top 100 ,Nomo 、Sober Time 也活得不错。这个赛道有真实需求,但现有产品 90% 只是一个天数计数器——用户看着数字涨,但不理解为什么自己会复发。
我想做的不一样:**教用户成瘾的神经科学原理**。知道多巴胺是怎么被劫持的、戒断反应背后的生理机制、大脑需要多久才能修复——这些知识本身就是对抗复发的武器。
**核心功能**
- 365 天课程(四阶段:觉察 → 理解 → 重建 → 成长),每天 5 分钟
- AI 教练:凌晨 2 点扛不住的时候聊两句,比找朋友方便
- 触发因素记录:帮用户发现自己的行为规律
- 呼吸练习:急性渴望时的应急工具
**技术栈**
- SwiftUI + 自研 UBF 框架(可复用的 app shell 架构,多个 app 共享核心逻辑)
- CloudKit 同步(零成本,Apple 免费额度够用)
- Cloudflare Worker 做 AI 路由层:iOS → Worker → Gemini API 。客户端不存任何 API key ,Worker 内部处理鉴权和 fallback
- 9 语言本地化( en 、zh-Hans 、zh-Hant 、de 、es 、fr 、ja 、pt-BR 、ru ),用 Xcstrings + 脚本半自动化
- Fastlane 自动截图 + ASO 元数据推送
**商业模式**
Freemium 。核心功能免费,Pro 解锁高级课程和无限 AI 对话。主攻英语市场,中文市场付费意愿低(这是做 Zenrain 时的教训)。
**踩过的坑**
1. StoreKit 2 的 Transaction.listener 必须在 app 启动时注册,晚了会漏掉未完成的交易
2. 多语言截图用 Fastlane snapshot ,但 XCUITest 和 SwiftUI 的 accessibility identifier 经常对不上
3. Cloudflare Worker 免费版有 CPU 时间限制( 10ms ),Gemini 的流式响应需要用 ReadableStream 处理
App Store:
https://apps.apple.com/app/id6754551643落地页:
https://soberly.uppervoid.app/欢迎交流,特别是有做健康类 app 经验的 V 友。