AI生成UI代码实践(二)—— Figba 更新月记

上个月底写了AI生成UI代码实践 ------ Figba,介绍我让 AI 给我写的Sketch 查看器 + MCP server。当时还在一个初期阶段,需要"在实际需求里跑一段时间,把细节交互再打磨打磨"。

这一月中,改了一百多个大大小小的问题。本篇把这一个月的重要更新串起来讲一遍,虽然UI也全面升级了,但是不重要,哈哈。

从"喂数据"到"教方法"

9 月那篇讲过,Figba 的核心是把设计稿结构化数据喂给 AI。但用了一阵发现一个问题:数据给了,AI 不一定用得好。

比如数据里有个类型叫 IMAGE-CUT,这个是我自己定义的类型,意思是设计标记的切图。第一次遇到的 AI 会乖乖照做,但有时、换个模型,它可能就把切图组展开成一堆路径自己画, token 花了,效果还差。再比如 sameAs 字段(同款图层只详列第一个,其余给坐标存根),不懂的 AI 会为每个存根重复写一遍样式,懂的会做成组件循环复用。这些经验以前散落在一次次对话里,每个新会话都要重新教。

这个月我把它们固化成了两个 skill:

  • figba-restore(数据还原指南):字段语义、类型到代码的映射、常见问题清单。相当于给 AI 的"零件说明书",哪些是素材、描边的 INSIDE/CENTER 位置差多少、动态内容(进度环之类)为什么不能切图。
  • figba-verify(视觉验收):还原完成后的像素对照闭环。设计稿为真值、成品截图为被测,统一 pixelmatch 出差异热区图,再按分级表判读------哪些差异是真 bug 要修,哪些是文字边缘的抗锯齿噪声可以放过。

通俗讲:以前是递给 AI 一箱零件;现在是零件 + 说明书 + 验收单。说明书让它少走弯路,验收单让它对自己的结果负责,AI 自己说检查没问题了不可信,必须拿图,事实说话。

比如这个页面,pixelmatch 逐像素对比。AI给的结论:

首轮对照差异 0.318%。热区图的红色差异全部集中在几行文字的边缘,是 HTML 渲染和 SVG 渲染的字形光栅化差异(抗锯齿晕带,可接受);而所有图片、图标、渐变、按钮区域像素级基本一致,三个社交圆钮那一整块只差 2 个像素。我还试着给文字加了 0.5px 的微调想抹平晕带,结果反而更糊(0.44%),回退。

这正是验收闭环的价值:改没改好,热区图说了算,不是感觉说了算。

之前我说"还原度 90%",那是目测。现在这个数字可以被量化、被复现:哪里像、哪里差、差的可不可接受,一这样就很直观了。

当然热区图不是万能的,也不要期待永远一次成功,100%还原。该有的检查,调整都是正常的。

从"拷文件"到"发链接"

9 月的形态是纯本地:.sketch 文件在自己电脑上,浏览器 file:// 打开。自己用很爽,但设计师那边怎么把稿子给你?企微传文件?太麻烦了。

这个月补上了完整链路:

  • Sketch 插件上传:设计师在 Sketch 里装上 figba 插件,对任何文档执行"上传当前文档",多画板文档会弹画板勾选,选择上传的目录,上传后直接得到一个链接,可以直接打开浏览。
  • 服务器 + Docker :查看器本体是纯静态页,docker compose up 一条命令起。设计稿文件不进容器,由一个自建的元数据服务管虚拟目录树和"文件 id → 链接"映射。

现在的协作流是:设计师插件里勾选画板上传 → 同事浏览器直接看,AI 工具接同一个稿子。

性能与保真

这两块不太适合截图,但对日常使用影响最大,拣要点说。

性能(对着 40~240MB 的真实项目稿调的):

  • 远程文件按需下载:zip 的目录在文件尾,先 Range 拉目录再按需取首屏条目,41MB 的稿子首屏只下 4%(1.73MB),翻页再取下一页的;
  • 打开过的文件二次零下载零读盘,首开也从 1.37s 提到 0.55s;
  • 大稿滚动、缩放的掉帧减少 60%~80%,来回切文件 ~100ms。

渲染保真:9 月我说"还原度比起蓝湖还差一些"。这个月拿真实语料当回归集,修了大几十个问题、嵌套布尔运算的挖孔、圆角逐角对位、嵌套画板的裁剪,等等。

修复套路是固定的:语料实证 → 定位根因 → 修复 → 逐像素验证,每条都记进 CHANGELOG。然后自己也让AI将出现过的还原问题整理了一个错误集,也是避免改了一个bug,影响了之前正常的功能,造成一个新的bug。

看稿体验的几个小更新

  • 纯查看模式(Tab 键):一键隐藏图层面板和检查器,选中、测距、切图虚线全部静默,只剩干净的画布,左下角带整页小地图。给不想被工具界面打扰的人看的------比如给产品经理演示的时候。
  • 紧凑排版:设计稿里画板经常散点摆放、大片留白,现在默认按阅读顺序折行排成等距网格,想看设计师原始摆放可以一键切回。
  • 总览模式:缩放到 40% 以下自动转只读展示,超大稿子(单页一百多个画板那种)缩小说不再卡。

写在最后

9 月的 figba 是"把设计稿数据喂给 AI";这个月的 figba 是"喂好数据、教好方法、验好结果"------工具开始有闭环了。

下一步还是那句话:在实际需求里继续跑,哪里不爽改哪里。目标不变,怎么懒怎么来。

相关推荐
yqj2342 小时前
FunASR安装
1024程序员节
by209992 小时前
Linux 压缩传输、进程查看与权限管理
linux·经验分享·1024程序员节
2601_962885722 小时前
Tushare 前复权回测对不上/不可复现?前复权陷阱与正确做法
1024程序员节
沈健_算法小生2 小时前
PI模型与供应商: 一个工具接所有大模型
ai
不脱发的程序猿2 小时前
红利ETF量化策略
人工智能·python·ai·程序员·量化交易·etf·策略回测
无足鸟ICT2 小时前
【RHCA+】reboot命令(重启)
linux·运维·服务器·1024程序员节
fqbqrr3 小时前
2610C++,UI复合技术在窗口中绘画字体图标
c++·ui
ixiaoyang83 小时前
ioDraw v3.7.0 发布:AI 助手完成会话化改造,图表生成一次升级
ai·流程图·甘特图·思维导图·绘图软件·1024程序员节·mermaid
hhb_6183 小时前
构建企业主数据统一底座
1024程序员节