原标题:Flutter 1.20 稳定版发布

  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 上。