Flutter 设计包解耦新进展,material_ui 和 cupertino_ui 发布预告

近日,Flutter 官方突然发布了 material_ui 和 cupertino_ui ,不过包内暂时没有真实代码,只是作为预告和占位发布,根据预告内容:

  • 对于 material_ui ,核心会包含:

    • Structure: Scaffold, AppBar, Drawer
    • Inputs: FloatingActionButton, TextField, Slider
    • Display: Card, Chip, ListTile
    • Theming: ThemeData, ColorScheme
  • 对于 cupertino_ui ,核心会包括:

    • Structure: CupertinoPageScaffold, CupertinoNavigationBar
    • Inputs: CupertinoButton, CupertinoTextField, CupertinoSwitch
    • Dialogs: CupertinoAlertDialog, CupertinoActionSheet

同时,最重要的是,这两个包都提及了 Material 3 Expressive 和 iOS 26 风格支持,也就是全新的样式适配,会跟随包一起发布。

而根据 Decoupling Design #projects/220,目前大约 30 多个关键任务情况,目前:

  • 已完成 (Done): 约 11 项(约 31%)
  • 正在进行 (In Progress): 约 10 项(约 29%)
  • 待处理/未开始 (Todo): 约 14 项(约 40%)

所以整体阶段处于 "基础设施搭建" 与 "代码清理/预重构" 的中期阶段,目前看来 2026 年中后期完成迁移的可能性很高,根据任务情况,目前已完成的有:

  • 任务评估: 完成了对文本栈 (Text Stack) 和基础颜色集 (Basic Color Set) 解耦的评估
  • 发布支持:确定了全新新发布流程,并基本完成了 batch-release(批量发布)相关的 GitHub Action 工具链支持
  • 某些组件:类似 Codeshare 的 Tooltip 控件已提前完成重构

而正在进行的任务主要是解决技术债,重点是消除内部耦合:

  • 单元测试解耦:正在处理 Framework 单元测试不跨包导入的问题
  • 测试基础设施: 正在为 flutter/packages 添加 Skia Gold 支持,以确保迁移后的组件仍能进行 Golden file 测试
  • 核心逻辑抽取 :正在研究将平台特定的页面过渡动画移出设计包,以及在 Widgets 库中添加主题化选项支持

未完成,也就是还没开始工作的大多都是"搬运"工作:

  • 在 flutter/packages 中建立正式的 Material/Cupertino 包(实际上以发布空包)
  • 实际迁移大量的代码库
  • 实现 dart fix 迁移工具,帮助开发者平滑过渡
  • 最终在 SDK 中弃用旧的路径

所以整体看下来,整个流程还是相当清晰的:

  • 前提条件:必须先完成禁止 Material 等包在单元测试里跨包导入,否则代码一旦物理移动,数千个测试将直接崩溃
  • 基础设施准备:在代码移动前,必须先在目标仓库 (flutter/packages) 配置好发布流程和测试工具
  • 开始阶段:在剥离设计语言前,需要先将原本混在 Material 里的通用基础组件迁移到 Widgets/Core 框架层
  • 迁移:只有上述工作完成,才能开始 Land material and cupertino library code
  • 最后通过自定义模板 和 dart fix 确保开发者能无缝使用新的包

所以,未来 Flutter 在 Framework 内将不带任何 material 和 cupertino 样式,你可以根据需要选择样式库,甚至觉得使用哪个样式库版本,最重要的是:

不升级 Flutter 版本也可以更新最新的设计样式,同时控件 Bug 也可以得到更快的修复和发布。

相关推荐
IT_陈寒1 分钟前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端
柳杉18 分钟前
用 Codex 完成智慧高速 3D 可视化大屏,从 18 张行业设计稿到可交互的运行监测中心
前端·ai编程·数据可视化
review4454328 分钟前
拿到 codex 第一步
前端·agent·vibecoding
鶴哥只手遮天39 分钟前
jQuery 4.0 源码架构与工程实践-第 01 章 · 全景与工程结构:一个 20 岁库的自省
前端·javascript·jquery
徐小夕1 小时前
doc2docx方案,开源!
前端·vue.js·github
徐小夕1 小时前
JitOFD:一款面向信创与档案场景的 Web 端 OFD 编辑器
前端·vue.js·github
程序员老刘1 小时前
你的Flutter项目要不要紧急升级3.47.8?
flutter·客户端
孟健2 小时前
Kimi K3.1 Pro 编程实测:3个月27万行代码,每年1.7万预算下如何9分钟修好顽固Bug
前端·开源·ai编程
inksci2 小时前
在线编辑表格,功能强大,json互转
前端·javascript·html
咩咩啃树皮2 小时前
JavaScript 中 this 指向为什么总在变?
开发语言·前端·javascript