Flutter material/cupertino 解耦最新进展,已经在做新样式了

0 阅读3分钟

下个月就要发布新的 Flutter 版本了,今天看了下 Flutter 样式解耦的进度,看起来进度还挺可以。上个月那个 60 多万行改动的 #11888 Decoupling recopy 已经合并了,也就是所有 Material/Cupertino 的源码、测试、examples、dart fixes 整体搬到 flutter/packages

之前#11669、#11887 有好几次尝试都失败,这次 "recopy" 总算是一次性干净地搬完

目前 material_uicupertino_ui 已经是具备完整源码的独立样式包,然后项目已经开始跑各种 test ,同时版本依赖上:

version: 0.0.2      # 没发布到 pub.dev(publish_to: none)
flutter: ">=3.44.0" # 依赖最低 Flutter 3.44

不过 flutter/flutter 里的原始代码还在,只是暂时冻结,这部分代码估计还是需要等到 package 完全稳定后才会删除切换。

新增的 [#12119] [material_ui, cupertino_ui] Localizations,多语言本地化迁移算是是解耦最后模块了,这部分处理完后基本就可以完全进入测试收尾了。

另外 Material 3 Expressive 的相关支持也开始了,目前几个 PR 算是开启了 M3 Expressive 的第一批控件起步,至少比起 Liquid Glass 来说进度快了不少:

PR内容状态
#12093Add M3 Expressive IconButtonopen,5 天前
#11931Add global Material style variant(Expressive 风格切换机制)open,19 天前
#12121Add helper methods in gen_defaults template(为批量生成 Expressive token 准备工具)open,今天
#12122Migrate AppBar M3 templateopen,今天

但是 iOS 26 Liquid Glass 风格的暂时还么新进展,按照之前官方的说法,至少需要等到 Package 稳定了才会开始,或者苹果开始强制要求适配了,官方才会着急。

不过至少目前来看整体进度还是可以的:

类型状态比例
源码迁移(Material + Cupertino)完成100%
测试重新启用(unskip)完成(#188395 已关闭)~100%
API 文档(@example 指令)收尾中~90%
本地化(Localizations)进行中(PR #12119 open)~80%
发布到 pub.dev未完成(publish_to: none)0%
M3 Expressive 新功能刚开始<5%
iOS 26 Liquid Glass未开始0%
flutter_test 解耦未完成~0%

不过从目前情况来看, 8 月的新版本大概率是等不到这次解耦的正式发布了,预览版应该还是有希望的,至于 Liquid Glass 下半年可能都有点悬,大概率 2027 才能看到影子,除非 9 月的苹果发布会有新政策刺激下,不然感觉不管是 Flutter 还是 CMP ,对于 Liquid Glass 貌似都不太上心,毕竟这玩意确实对自渲染场景压力比较大。

RN 表示这波优势在我。

就是如果 8 月不发布这个解耦 package 好像也不行,因为 4 月 Framework 冻结了 flutter/flutter 的 UI package 更新了,如果 8 月版本不发 package ,等于就是没有任何 UI 更新和修复,这个貌似也不太合理,剩一个月时间,就看官方能不能收尾掉了,按照目前的进度看,其实想收尾也问题不大,可以期待一下。