生产力提升的核心更新

Flutter 3.35 版本带来了多项提升开发者生产力的重要改进,包括 Web 平台的状态热重载稳定版发布和实验性 Widget 预览功能。本次更新包含来自 168 位贡献者的 1108 次提交,其中 39 位是首次参与贡献。

Web 平台重大改进

默认启用的状态热重载

Web 平台的状态热重载现已成为默认功能,开发者无需再通过实验性标志手动启用。Dart 和 Flutter 团队优化了热重载代码的性能并提高了成功率,目标是提供跨平台一致的热重载体验。

若需临时禁用此功能,可使用 --no-web-experimental-hot-reload 标志。团队计划在未来版本中移除禁用选项。

Wasm 兼容性检查

为准备将 WebAssembly (Wasm) 设为默认构建目标,现在每个 JS 构建都会执行 Wasm 的"空运行"编译。系统会检查应用的 Wasm 兼容性,并将结果以警告形式输出到控制台,可通过 --(no-)wasm-dry-run 标志控制此功能。

框架与可访问性增强

更包容的用户体验

Flutter 3.35 在可访问性方面做出多项改进:

  • Web 语义增强:新增对语义区域设置的支持,确保辅助功能按用户偏好语言呈现
  • 新工具组件:引入 SemanticsLabelBuilderSliverEnsureSemantics 等新组件,简化复杂可访问体验的实现
  • 核心组件优化:修复了 iOS 和 Android 平台多个可访问性问题,包括文本缩放、语音控制和平台视图等场景

Material 和 Cupertino 组件更新

新增与增强组件

  • DropdownMenuFormField:将 M3 风格的 DropdownMenu 集成到表单中
  • 可滚动的 NavigationRail:支持内容超出屏幕时的滚动查看
  • NavigationDrawer 页眉页脚:为导航抽屉添加布局灵活性
  • CupertinoExpansionTile:iOS 风格的展开/折叠列表项

保真度与交互优化

  • 采用 RSuperellipse 形状实现 iOS 标志性圆角效果
  • CupertinoPickerCupertinoSlider 添加触觉反馈
  • 支持配置 Slider 值指示器的常显状态

引擎与工具链更新

多窗口支持基础

Canonical 团队在 Windows 和 macOS 上实现了多窗口应用的基础逻辑,后续版本将扩展至 Linux 平台并引入实验性 API。

开发工具增强

  • Dart 和 Flutter MCP 服务器:现已在稳定渠道提供,为 AI 辅助开发提供更丰富的项目上下文
  • 实验性 Widget 预览:允许在独立环境中可视化测试组件,支持多种配置快速验证
  • 分析服务器提速:采用 AOT 编译使常见命令执行时间显著缩短

重要变更与弃用说明

  • 组件主题规范化完成,各组件主题现基于新的 ...ThemeData
  • 单选按钮组件重设计,引入新的 RadioGroup 管理状态
  • 弃用 Android 32位 x86 架构支持
  • 最低 Android SDK 版本要求提升至 API 24
  • 插件开发中弃用 pluginClass: none 声明方式

未来发展方向

Flutter 团队正着手将 Material 和 Cupertino 库从核心框架中分离为独立包,这将使设计系统能够独立于季度发布周期进行更新。此变更将分阶段实施,确保平稳过渡。

结语

Flutter 3.35 是社区协作的成果,带来了多项提升开发效率的重要功能。建议开发者通过 flutter upgrade 命令获取最新版本,并参考完整更新日志了解所有变更细节。