我如何建立一套 Vibe Coding 工作流,把 Tiqlo 从 Idea 真正做到 App Store
我如何建立一套 Vibe Coding 工作流,把 Tiqlo 从 Idea 真正做到 App Store

分享我如何使用 Codex 和 Flutter,通过 Vibe Coding 从一个想法开始,设计并开发 Tiqlo 像素风时钟 App,包含产品设计、Flutter 架构、Pixel UI、Focus 专注模式和真实 AI 编程实践。
视频
https://www.bilibili.com/video/BV19iY56SEzi/
01 为什么我要做 Tiqlo
时钟几乎是我每天都会用到的工具。我喜欢把电子时钟摆在桌面上,手里又有几台闲置的旧手机,正好让它们发挥一下余热。
为了找一个顺手的时钟 App,我在商店里试了不少产品。有的广告太多,有的主要在卖皮肤,还有的功能没问题,但样式始终不是我想要的。
既然都到了 Vibe Coding 的时代,那就自己做一个吧。
于是有了 Tiqlo:从一个自己想用的桌面时钟出发,用 Flutter 开发,配合 GPT、Codex 和自己的 Skills,一步步做到上架 App Store。
我想要的东西很简单:界面干净、交互简洁,再加上一点自己喜欢的像素风。
下面是 Tiqlo 的两种视觉风格。
像素风

常规风格

- 开源代码:flutter_tiqlo_clock
- 苹果商店:Tiqlo — Pixel Flip Clock
- 产品页:tiqlo.link
这篇文章就聊聊我的开发过程,希望给想用 AI 做一个完整产品的朋友一些参考。
02 我的 Vibe Coding 工作流
先把整个流程放出来:

这套流程里,AI 会参与研究、设计和编码,而我负责判断:做什么、先做什么,以及做出来的东西是否符合预期。
前面的定位和原型,是为了让方向更清楚;中间的任务拆分和工程规则,是为了让开发过程可控;后面的真机体验和发布,则是把代码变成真正能用的产品。
实际做的时候也会往回走。界面跑起来后觉得不舒服,就继续调整;发现需求想复杂了,就先收一收范围。
03 GPT:竞品研究 + PRD
一开始,我的想法只有三个字:桌面时钟。
这个范围太大了。我会先和 GPT 一起梳理竞品,再逐步明确 Tiqlo 的定位。
最初想法:做一个桌面时钟
↓
竞品有哪些?
Flip Clock / Focus / StandBy 类产品
↓
它们分别解决什么问题?
↓
哪些体验是我需要的?哪些让我觉得不舒服?
↓
Tiqlo 应该有什么不同?
我现在主要用 GPT 做竞品调研。

做产品规划

这一轮梳理后,我把方向收敛到三个点:
- 首先把 Flip Clock 翻页时钟做好。
- UI 和交互尽量简洁,让时间本身成为主角。
- 视觉上干净、有辨识度,加入自己喜欢的像素风。
方向确定后,再把它整理成 PRD,也就是产品需求文档。
对于这种个人项目,PRD 可以先写得简短一些,但要说清楚:给谁用、在什么场景下用、第一版包含哪些功能,以及做到什么程度算完成。
GPT 在这个阶段的价值,是帮我把零散的想法整理成可以讨论和执行的需求。竞品细节仍然要结合实际体验核对,最后做哪些功能,也需要自己取舍。
04 Image / HTML:快速验证 UI
有了需求,我会先看界面大概长什么样,再进入 Flutter 开发。
现在做个人项目,我比较少专门开 Figma;如果是有设计师协作的企业项目,还是按团队的设计流程来。像 Tiqlo 这样的小产品,用 UI 图片或者 HTML 原型快速试方向,对我来说更直接。
Idea
↓
Prompt
↓
UI Image / HTML Prototype
↓
看效果、调整
↓
Flutter 实现

先画出几个核心界面:
- Flip Clock:翻页时钟。
- Digital Clock:数字时钟。
- Theme:样式切换。
- Settings:设置。
图片适合看整体风格,比如配色、字体和布局;HTML 原型则可以进一步尝试菜单、切换和页面之间的交互。
这个阶段先确认大方向:时间是否足够醒目,页面是不是太满,常用操作是否容易找到。方向看顺眼了,再进入 Flutter,后面仍然要根据真机效果继续调整。
05 猫哥 Skills:给 Codex 建立工程规则
直接让 AI 开始写代码,经常会遇到一些不可控的地方:组件选型、目录结构、架构深度,以及后续是否方便维护。
所以我习惯先准备一个可以复用的基础模板,把自己常用的工程约定固定下来,再让 Codex 在这个基础上开发。
Skills 就是承载这些规则的一种方式。对我来说,值得提前约定的内容包括:
- 项目如何初始化,目录如何组织。
- 常用依赖和状态管理方案如何选择。
- 页面、组件和业务逻辑如何拆分。
- 完成修改后,需要做哪些检查。
以前我喜欢用 VS Code 插件做这类自动化,现在可以把流程整理进 Skills,交给 AI 执行,并配合检查和必要的测试确认结果。
当然,模板和 Skills 也需要持续维护。自己的开发习惯变了,或者项目里发现了更合适的做法,就把规则一起更新。
这部分先准备好,后面做功能时就能把更多精力放在产品体验上。
这套代码基础我也是免费开源的,通过 skills 方式使用。
关于猫哥 Skills 的使用,可以参考:Flutter AI Skills:Riverpod 项目初始化。
06 PRD → Tasks → Codex 编码
PRD 明确方向之后,还需要把它拆成 Codex 可以逐步完成的任务。
我的习惯是拆成 3~5 个可以验收的小阶段。每个阶段都有一个明确结果,完成后能运行、能体验,再继续下一步。
以 Tiqlo 的核心开发部分为例:
一、实现 Flip 翻页时钟
二、实现 Digital 数字时钟
三、补齐设置和样式切换
四、实现像素皮肤并统一视觉细节
具体交给 Codex 时,任务还要再描述清楚一点。例如,实现翻页时钟,除了显示时间,还要考虑翻页效果、布局,以及如何验证运行结果。
一个任务可以按下面的方式组织:
目标:这一轮要完成什么
范围:涉及哪些页面或组件
约束:遵循哪些工程和设计规则
验收:运行后应该看到什么、能操作什么
这样每一轮结束,我都能判断当前进度。如果效果不对,也能及时调整,避免等一大批功能都写完了才回头返工。
拆解任务可以参考 mattpocock/skills https://ducafecat.com/blog/flutter-matt-pocock-skills-unsplash-tool 。
07 Run → Feel → 微调:Vibe Coding 的核心循环
对我来说,Vibe Coding 最关键的一段发生在代码跑起来之后。
Run:运行应用
↓
Feel:自己上手体验
↓
微调:把感受转成具体修改
↓
再次运行
时钟 App 看起来简单,但它会长时间摆在桌面上。字体大小、数字间距、翻页动画,哪怕只有一点不舒服,也很容易被注意到。
所以每完成一个阶段,我都会运行起来,放到真机上看,再把问题具体地反馈给 Codex。
原稿里记下的微调点就有这些:
- 翻页动画有没有抖动。
- 字体大小和页面比例是否协调。
- 菜单弹出是否自然。
- 像素字体、边角和整体 UI 的感觉是否一致。
反馈越具体,下一轮越容易接近预期。比如,可以把“动画看着不舒服”描述成“翻页时数字的位置有轻微跳动,请检查切换前后的对齐和尺寸”。
AI 可以快速完成修改,而我需要不断观察和判断。很多体验上的细节,就是在这一轮轮运行和微调里逐渐确定下来的。
08 Pixel UI:Tiqlo 的视觉特色怎么做
像素风是我想给 Tiqlo 保留的一点个性。
真正做的时候,需要一起考虑字体、边角、间距、菜单和动画。只要其中一部分风格不协调,整个界面就容易显得拼凑。
我会重点看这几个方面:
- 像素字体:先保证时间清晰易读,再看风格是否合适。
- 边角处理:边框、圆角或阶梯状边角,需要有一致的视觉逻辑。
- 布局留白:时间是主角,装饰不能抢走注意力。
- 菜单和设置:主界面之外的控件,也要和整体风格衔接。
- 动态效果:静态截图看着顺眼之后,还要检查切换和动画的实际观感。
Tiqlo 同时保留了常规风格和像素风格。对于像素风,我更在意的是:它能不能在保持时钟清晰、好用的前提下,让人觉得有一点趣味。
这也需要回到前面的循环里,放到真机上反复看,逐项微调。
09 Landing Page:把项目变成一个真正的产品

App 做完后,我还给 Tiqlo 做了一个 Landing Page,并部署到 Cloudflare。
产品页地址:tiqlo.link。
有一个独立页面,就可以集中介绍产品、展示界面,并给用户一个明确的下载入口。分享项目的时候,也有一个方便打开的地址。
这部分需要整理的内容包括:
- 文案:一句话讲清楚 Tiqlo 是什么,再介绍核心功能。
- 配图:展示实际界面,让用户直观看到常规风格和像素风。
- 域名和部署:给产品一个固定入口。
- 多语言内容:让不同语言的用户都能看懂介绍。
- Clock Web App:提供网页时钟体验入口。
做到这里,需要考虑的事情已经从“功能写好了吗”,延伸到了“用户怎么认识它、体验它、下载它”。
10 TestFlight → App Store

接下来就是发布。这次非常顺利一把就过了,提交完第4天审核,当天就过。
提交的资料也是 gpt 帮我写的,我直接复制填表。
这一阶段除了检查功能,还需要准备图标、启动页、商店截图、产品描述和隐私信息。可以把准备工作按下面的顺序梳理:
开发完成
↓
真机测试
↓
App Icon / Launch Screen
↓
App Store 截图和描述
↓
隐私信息
↓
TestFlight 测试
↓
提交审核
↓
正式发布
到了 TestFlight 阶段,重点是用接近正式发布的版本走一遍完整体验,检查有没有遗漏的问题,再进入商店审核。
商店里的介绍也要和 App 的实际表现对应。截图展示什么,文案承诺什么,用户安装后就应该能找到相应的体验。
Tiqlo 最终上架了 App Store。从最初想给旧手机找个时钟,到现在有一个可以下载、可以分享的产品,这个流程才算完整走通。
关于具体的上架操作,可以参考我的课程:Flutter 上架指南:Apple Store、Google Play。
11 我对 Vibe Coding 的理解
做完 Tiqlo,我对 Vibe Coding 的理解更具体了一些:用 AI 缩短想法到可运行结果之间的距离,再通过自己的体验和判断,把产品一点点做好。
在这套工作流里,GPT 帮我整理想法和需求,图片或 HTML 原型帮我快速看方向,Skills 固定工程规则,Codex 完成功能开发。
而我需要持续做决定:哪些功能值得做,当前效果是否满意,哪里需要调整,以及什么时候可以发布。
AI 让尝试变快了,但产品的取舍和体验判断,还是要自己投入时间。尤其是这种每天都会看到、用到的小工具,很多细节只有真正用起来才会发现。
对我来说,这也是做 Tiqlo 最有意思的地方:从自己的一个小需求出发,边做边体验,最后做出一个自己愿意使用的产品。
感谢阅读。如果你也在用 Vibe Coding 做产品,欢迎在评论区聊聊你的工作流,或者给 Tiqlo 提点建议。
关键词:Codex, Flutter, Vibe Coding, AI Coding, AI 编程, Flutter App, 独立开发, Pixel UI, 像素风 UI, Tiqlo
本文链接:https://ducafecat.com/blog/flutter-vibe-coding-tiqlo-codex
猫哥作品
flutter 学习路径
- Flutter 优秀插件推荐
- Flutter 基础篇1 - Dart 语言学习
- Flutter 基础篇2 - 快速上手
- Flutter 实战1 - Getx Woo 电商APP
- Flutter 实战2 - 上架指南 Apple Store、Google Play
- Flutter 基础篇3 - 仿微信朋友圈
- Flutter 实战3 - 腾讯即时通讯 第一篇
- Flutter 实战4 - 腾讯即时通讯 第二篇
- Flutter 新闻客户端 Riverpod + go_router + Dio + Freezed 全家桶
- Cursor AI 全栈实战:Flutter + Cloudflare 打造 TubeFlow SaaS App
© 猫哥
ducafecat.com
end

浙公网安备 33010602011771号