Flutter 1.20 现已发布,该版本基于 Dart 编程语言 2.9 版本构建,包含了诸多的性能改进、多项 UI 增强功能、对 Visual Studio Code 扩展的更新以及针对移动文本字段的自动填充等内容。Flutter 1.20 包括来自全球 359个 贡献者的 3,029 个合并的 PR 和 5,485 个已解决的问题,是迄今为止所有 Flutter 版本中贡献数量最多的。
具体更新内容如下:
性能改进
- 修复了 icon font tree shaking 有关的工具性能问题,并将 font tree shaking 作为构建非 Web 应用程序时的默认设置。此功能通过删除未使用的任何图标来减小应用程序的大小。目前仅限于 TrueType 字体,但 Google 表示其将来会取消这一限制。
- 通过 warm-up 阶段来减少动画初始显示中的混乱。如果 Flutter 应用程序在首次运行期间出现了不稳定的动画,则 Skia Shading Language 着色器将在应用程序构建过程中提供预编译功能,从而可以使其速度提高 2 倍以上。如果想利用此高级功能,可参见 flutter.dev 上的 SkSL warm-up 页面。
- 重构了鼠标命中测试,将基于 Web 的微基准的性能提高了 15 倍。因此,Google 能够添加对鼠标光标的支持,该鼠标光标将显示在几个常用的小部件中。
![]()
- 在 Dart 2.9 中提高了 Dart 的 UTF-8 解码器的解码速度。在 UTF-8 解码基准中,该公司测得在低端 ARM 设备上英文文本和中文文本的改进分别近 200% 和 400%。
自动填充移动文本字段
在 Flutter 1.20 中,添加了基本的自动填充功能,但是不支持某些特定于平台的配置(例如 iOS 上的 passwordRules)。同时还为 Web 带来了自动填充文本字段支持。
![]()
InteractiveViewer 小部件
这一个新的小部件旨在在应用程序中构建交互式元素,例如平移、缩放、拖放“n”等等。
Preview of embedded Dart DevTools in Visual Studio Code
添加了一个新的 Visual Studio Code 扩展,该扩展将 Dart DevTools 直接带入 Visual Studio Code 编码工作区。可以使用 dart.previewEmbeddedDevTools 设置启用此功能。
![]()
其他
Flutter 1.20 中还有引入了许多其他新功能和开发人员工具。例如:更新了 Slider、RangeSlider、TimePicker 和 DatePicker 小部件;AboutDialog 中提供了一个新的响应式许可页面;新的 pubspec.yaml 格式要求,用于发布新的或更新的 Flutter 插件;Dart DevTools 中更新的网络页面,支持 Web 套接字分析;支持在 Visual Studio Code 中移动或重命名文件时自动更新导入语句等。
官方表示,Flutter 1.20 是该框架迄今为止最大的版本。他们仍在努力实现完善的 null 安全支持,新版本的 Ads、Maps 和 WebView 插件,以及更多工具支持等。并致力于提供更好的 Web 和桌面支持,特别是在 Linux 上。
更多详细内容可查看发布公告。