最近用 Codex 做了一个小项目——Pawtick,一只会陪你倒计时的宠物 App。 起因很简单:煮面条等 3 分钟的时候,觉得手机自带的倒计时太无聊了。如果有一只毛茸茸的小家伙在屏幕上陪你一起等,会不会更有意思? 于是从一句需求开始,和 Codex 一起走完了整个开发流程:PRD 沟通 → Figma 设计 → SwiftUI 开发 → Siri / 灵动岛接入 → 真机验收 → GitHub 交付。 几个我觉得值得分享的设计决策: 砍掉番茄钟,只做倒计时。 一开始想做番茄钟 + 倒计时,后来觉得不如把一件事做到极致。下面条等 3 分钟,也值得有一只宠物陪你。 首页直接编辑分和秒。 不弹底部设置框,点哪里就从哪里输入。任务名默认隐藏,只有你主动编辑时才出现。最近使用的时间优先排列,不够 4 个就用 3m / 5m / 10m / 25m 补齐。 让宠物真的"活"起来。 Teddy 不是一张静态图,它有等待、挥手、完成和失败四种状态。导入一张照片,自动生成动作 GIF,App / Web / Native 多端都能用。 接入 iOS 系统全家桶。 Siri 可以说"Pawtick 设置 5 分钟倒计时";灵动岛和锁屏实时显示倒计时状态和宠物头像;WidgetKit 支持紧凑、最小、展开、锁屏四种布局。 当然也踩了不少坑: App 进后台超过 35 秒会被挂起,本地 Timer 没法保证准时更新灵动岛;Siri 短语里的动态参数不能直接用 Int,得换成 AppEnum 真机才能过;自定义提示音必须打包进 .app 资源里并确认文件真的存在…… 模拟器能 build,不代表 Siri、锁屏和通知声音真的跑通了。真机验收这一步绝对不能省。 最后把所有踩过的坑和判断依据都沉淀成了项目 Skill,下次再开发类似的 iOS 应用就能直接复用。 一次完整的 AI 协作开发:沟通 → 设计 → 代码 → 验收 → 复盘。不是只交付代码,也把判断、边界和验证流程留了下来。 如果你也想用 AI 做点有意思的小工具,欢迎评论区聊聊你的想法 #vibecoding #vibecoding大赏 #codex #独立开发 #宠物app