本文于 2026 年 9 月 19 日更新。

Snap Closet 终于在 iOS、Android 双端上线,也报名了 Shipaton!

两年前刚开始做时它的名字还是Handy Closet,开发它的动机很简单: 衣服明明很多,却总觉得少一件。利用率高的好像总是那几件,却还是会买类似的单品回家。我想把这混乱不堪的衣物数据收入囊中,让我能随时随地翻阅,并且动动手指就能得到靠谱的穿搭建议。谁知古法编程困难重重,项目一搁就是一年。今年乘着模型能力进化的风,竟然在短短两三个月的时间内就把项目推翻重做。这对我个人来说是个不小的成就。

独立开发,速度至上

项目伊始,我很自然地照搬了在公司习惯的开发方式:设计用Figma,任务管理用Atlassian,下班了还要建Ticket来PUA自己。一个人吭哧吭哧古法编程了半年,才完成了不到40%。对应用的外观不满意,工作之外也抽不出足够的时间去解决,于是就搁置了。

直到今年4、5月份,Fable、GPT-5.6等模型能力飞升,我才想着重拾这个项目。这一波确实不同以往,AI的产出太快太好了。只要略带工程化思维,有意识地把可复用的流程整理成脚本、Skill,AI就能在几乎无监管的模式下完成大部分日常开发工作。

改版前,在 Figma 中手工设计的 Handy Closet 页面与组件
之前:在 Figma 中手工搭建页面、组件和交互说明。
之后:用 Skill 生成的 HTML 设计系统,包含设计 Token 和组件库(滚动演示)。

举例来说,我试着写了一个 设计系统Skill来替代在Figma上雕花的流程。结果短短数轮对话,整个设计系统就被重写了,已经被实现的部分也被新规范所替换, 且项目中约定的 Design Token(颜色、间距等命名设计值)— Atomic Component(按钮、输入框等基础组件)— Composed Component(由基础组件组合而成的功能组件)分层,也都被正确地维护了[3][4]。想起当初费力学习如何在Figma界面上增加Property和Variable的过程,现在看来也不过是应该果断割舍的沉没成本。

当然,这些努力也并非白费,当时手搓的骨架本身一定帮我省掉了很多关于设计系统原则、代码规范的提示词。另外,Skill的效果也是模型能力、提示词质量和我自身的审美相互叠加决定的,关于这方面的思考,以后有机会再展开。我想说的是,在公司团队里做IC到成为个人代码库的Product Owner,需要摈弃的思维定势有很多。制作漂亮的中间产物,很多时候是为了对齐上下游协作者的解释性工作。当我们独自面对AI时,提供输入到验收输出之间的环节对人可以是黑箱的,人与Agent之间的沟通以及Agent之间的沟通需要新的Interface,这个东西应该极度轻量,比如几个Markdown、html文档。

而去除了这些面向人的解释性、包装性的工作,获得成果时的正反馈就少了几分稀释,何况并行Agent还把反馈间隔极大地缩短了。在这样快速、持续的多巴胺激励下,仅仅三个月不到,app就全面上线了,这是以前的我不可想象的速度。可能会有人抛出“什么是个人开发者Vibe Coding工作流的最佳实践”这样的问题,我觉得这个问题的追求是好的,但我们不能在准备工作上耗得太久。毕竟前摇越长,人就越没动力把事情坚持下去[1]。比如何做好更值得问的是如何做完。挑个好点的模型,忘记agent, harness, mcp, skills...就在聊天框里让它把你的计划以人力不可及的速度推进一截,获得第一次成就感奖励,就是项目能落地的第一步。

用户体验依然重要

Snap源于“snapshot”,意为快照、抓拍,给人一种“咔嚓”一声很轻巧的感觉,这就是Snap Closet想要实现的用户体验。为此,我在界面细节和功能流程的设计上下了一些功夫。

  • 总是选择最短路径:添加衣物的入口在底边导航栏中央最醒目的位置,且不设任何前置菜单,以便用户决定开始整理衣橱时能够迅速进入应用场景;首页(First View)不采用商城应用的类别簇、多层级布局,而是平铺物品,并支持切换2列/4列网格视图,只为一屏能看到更多,从而快速挑出单品。
  • 让耗时任务无感:去背景、裁切图片的标准化处理使用端上模型在拍照的瞬间完成;AI识图、分类的过程则采用后台批量处理,用户无需等待结果即可继续上传,分类完毕的衣物会依次出现在首页上。
  • 用可选项代替输入框:几乎所有传送给模型的提示词文本,都经由前台的点选、拍照、传图等简单操作后由后台生成。即使是如“问问衣橱”这样向AI寻求穿搭建议的功能,我也缩减了对话框的占比,并且提供以图代文、让AI通过参考图表现的氛围来做搭配的选项,从而避免用户在输入文本上耗费过多精力。

此外,我希望Snap Closet给人亲切、活泼的感觉。五彩缤纷的衣物图标、卡片动效、获得成就时的过场动画...等等,都在表达这个产品的温度,也是在传达我自己的热情。

总而言之,我认为聊天不是AI应用的最终形态,而 Steve Krug 在《Don’t Make Me Think》中提出的“别让我思考”[2],仍然是值得追求的UIUX设计原则。与其让用户费心编撰一段咒语来“变”出心中所想,把经由AI处理的流程融入本就存在的日常活动中去,却让人处理它们的成本大大降低,才是应用(application)达到applicable的样子。 整理、分类衣物、研究搭配、断舍离... 这些事情我自己也会做,只是麻烦、低效,且容易被其他不得不做的事抢占优先级。我希望把衣橱数据装进手机的同时,背后的AI还能帮助我把整套繁琐的日常变得更加轻松愉快。

未来的路

市面上已经有不少电子衣橱应用,但每个开发者切入的角度一定是不同的,Snap Closet还有许多的可能性。

从虚拟试穿和积分系统看,增强游戏感和社交属性是其中一个方向;从衣物的生命周期切入,也可以考虑衣物的买入和卖出两端如何与其他平台对接;或者继续强调整理向,帮助用户把手头已有的资源合理应用起来...... 我会继续摸索这个app今后的方向,这也是非常有趣的事情。

不论如何,我希望Snap Closet能够保持简约、易操作。包括今后我将陆续推出的其他应用,万变不离其宗的是让AI去解决人的困难,让我们的生活更轻松。

产品链接

参考

  1. Woolley, K., & Fishbach, A. (2018). It’s about time: Earlier rewards increase intrinsic motivation. Journal of Personality and Social Psychology, 114(6), 877–890. 论文摘要 · DOI。该研究讨论奖励时机与内在动机的关系;文中对个人开发的联系是我自己的体会。
  2. Krug, S. (2014). Don’t Make Me Think, Revisited: A Common Sense Approach to Web (and Mobile) Usability (3rd ed.). New Riders. 作者的书籍介绍。
  3. Design Tokens Community Group. (2025). Design Tokens Format Module 2025.10. 规范原文。Token 的定义参考该社区规范;它并非 W3C 正式标准。
  4. Frost, B. Atomic Design, Chapter 2: Atomic Design Methodology. 原书章节。原书划分为 Atoms、Molecules、Organisms、Templates、Pages;文中的三级分层是本项目的组织方式,并非原书的标准层级。