
字节笔记本
2026年11月3日 · 约 5 分钟读完
下载量 1/4,点赞几乎一样:Flutter 液态玻璃两库对决
Flutter 要做 Apple 的液态玻璃效果,现在有两个主流选择:liquid_glass_widgets 和 liquid_glass_easy。V2EX 网友 11 月 3 日发帖把两家摆在一起对比,有意思的是数据:截至 11 月 3 日,widgets 的周下载 121k、点赞 363;easy 的周下载 34k(约四分之一)、点赞 281(几乎一样)。换算成点赞/下载比:easy 0.83%,widgets 0.30%:easy 的转化率高了近 3 倍,说明用过的人满意度更高。两家的 pub points 都是满分 160/160,全平台支持,MIT 协议。

一、两种 API 哲学:整套换装对单个透镜
widgets 是「整套换装」路线:LiquidGlassWidgets.wrap() 在 main() 里包一次,整套导航 chrome 系统全部到位:nav bars、tab bars、sheets、menus、command palette。渲染是真 shader(折射、高光、色散),动画是 physics-driven 的 jelly 弹性,还有三档自动调优;底层 vendored 了 whynotmake.it 的 liquid_glass_renderer 旧管线。附带 12 个 demo 加整 App 级 demo,甚至给 AI coding agent 配了官方 skill。easy 是「单个透镜」路线:LiquidGlassLens 直接丢在 UI 上面就行,Impeller 下零配置「just works」。
二、easy 的积木块与性能话语权
easy 把效果拆成积木:Glass 是本体,Touch 做按压膨胀和拖拽变形,Motion 用加速度计驱动,Blend 能把 2 到 8 个透镜做 metaball 融合(一次 backdrop 读取、一个 shader pass),Batch 让子树内所有透镜共享一次 backdrop 读取,Lite 提供无 shader 的降级,Adaptivity 让 tint 随背后背景自动翻转。Batch、Blend 和 Lite 是文档化的工程卖点,性能敏感场景的话语权在 easy 手里。

三、口碑差异的三种解释
为什么下载量差 4 倍、点赞几乎一样?三种解释:先发者惯性,widgets 是网上比较常见的推荐默认选项;接入成本差一截,easy 零配置丢个透镜就能用,试过的人更愿意点赞;性能话语权,Batch 和 Blender 是写进文档的工程卖点。反面也要看:easy 在安卓上 overscroll 会变黑(发帖楼主实测),说明边缘 case 的打磨不如 widgets。
四、选型清单
按场景给一张清单:要整套导航 chrome、开箱即用,选 widgets;只放一两个玻璃部件、追求接入简单,选 easy;性能敏感、多玻璃同屏,选 easy 的 Blender/Batch;安卓为主,先实测 easy 的 overscroll 变黑 bug 再决定。长远变量是底层:whynotmake.it 刚发布了 liquid_glass_renderer 1.0.0-dev.0(ground-up rewrite),未来还会集成进 cupertino_ui,两家都可能要跟进换底层。

五、冷水:四条都得泼
一,「口碑更好」是间接证据:原帖 0 条评论,判断主要来自点赞/下载比,这个比值受使用深度影响,不是严格的满意度调查。二,两家都是 Impeller-only 的完整效果,Skia、Web 和桌面端都要降级渲染。三,widgets 的底层是旧管线,有内存问题,目前靠「动画时降分辨率」缓解。四,生态不止这两家:native_liquid_glass、fluid_glass、just_liquid_glass 都在做类似的事,这份清单只是头部。
六、判断
选库别只看下载量,看 like/download 比和 issue 区。这组数据的真正启示是「用过的人愿不愿意背书」。液态玻璃本身是审美选择,两家的差异是 API 哲学之争:要么接受一套现成的 chrome 换掉整个导航系统,要么拿一个透镜积木自己拼。底层的 ground-up rewrite 是悬在两家头上的共同变量,跟进之前别做不可逆的设计。
来源:V2EX 原帖 v2ex.com/t/1254141(第一手,2026-11-03);pub.dev 两库页面(数据截至 11 月 3 日)。



