1,339
社区成员




众所周知每年的I/O大会是谷歌发布新产品的主要舞台,5 月 11 日I/O 2023如期而至,AI毫无疑问会成为本次大会的重要看点。但此次的对Flutter的升级、改进却深深植根于了我的心里。
Flutter作为Google的核心战略,每年在 I/O 大会上该领域都是必不可少的,不负众望今年谷歌也为我们带来了Flutter 3.10 ,Flutter 是谷歌为多种平台打造的应用程序构建框架,支持 Android、iOS、Web、Windows、macOS 和 Linux 等。此次 Flutter 3.10 的正式发布,也标志着今年早些时候谷歌在 Flutter Forward 大会上做出的承诺并非虚言。Flutter 3.10包括了许多改进,包括Web、移动端、图形、安全等方面。
Flutter 由 Dart 编程语言提供强有力的支持,这是一种用于多平台开发的高生产力、可移植的语言。Dart语言作为Flutter的基础,本次大会上,也发布了全新的Dart版本,这是编程语言的重大更新。
主要在以下三项中做出了重要改进:
Google在大会上,再次对 Flutter 的总体目标提供了五个核心特性:
这也是Flutter被广泛使用并支持的一大主要原因。
当然此次更新也和这五个核心特性息息相关,我挑取了一些核心内容和大家做一些分享:
可移植性
在以前的版本中,Flutter已经在 iOS 和 Android 平台之外增加了Web 端和Windows平台的支持,现在,Flutter 3.10增加了对 macOS 和 Linux 应用的稳定支持。不仅仅是渲染像素支持这么简单、还包括对新的输入和交互模型的支持、编译和构建的支持、无障碍和国际化支持,以及特定平台的整合。使得我们能够灵活地充分利用底层操作系统,根据选择尽可能多地共享用户界面和逻辑。
在 macOS 上,Flutter 3.10也投入资源支持 Intel 处理器和 Apple 芯片,并提供 通用二进制 (Universal Binary) 文件)的支持,使应用能够打包成在两种架构上都能原生运行的可执行文件。在 Linux 上,Canonical 和 Google 已经合作为开发者们带来了高度集成的最佳开发工具。
生产力
Flutter 此次版本以为我们带来了期待已久的 Material Design 3 ,现在我们现在可以尽情使用这套自适应性强、跨平台的设计系统,包括其动态颜色方案和经过更新的视觉组件。
Material Design 3 具有扩展的颜色系统,可利用动态颜色等功能。如果大家使用 Material Theme Builder 重新配置 palettes 的话,可以简单地放入 Android XML 或 Compose 的主题代码。
Material You 中的主题扩展了其前身的颜色空间,添加了第三颜色和从主要颜色、次要颜色、第三颜色和错误颜色派生的许多插值颜色,这些新的色彩空间支持动态色彩表达,使用 Material Theme Builder 简化了动态颜色的可视化并迁移到新颜色系统,可在 Web 和 Figma 上使用。当通过作图工具生成时,这些中间颜色值只需提供一种颜色即可创建。
速度
本次更新提升了加载资源图片的性能,减少了图片数据的拷贝和 Dart 垃圾回收 (GC) 的压力。先前在加载资源图片时,ImageProvider 需要复制多次压缩的数据。首先,打开图片时数据会被拷贝至原生的堆内存并向 Dart 暴露出结构数组。然后,数据会在结构数组转换至内置存储的 ui.ImmutableBuffer 时被再次拷贝。
随着 新增的 ui.ImmutableBuffer.fromAsset 的引入。这个加载过程同时也会更加快速,因为它会绕过之前方法通道所需的额外调度的开销。在官方的基准测试中,图片的加载速度提升为原先的 2 倍左右。
通过这次Google I/O 2023也更让我确定,我喜欢 Flutter 的一点是,它不仅仅是 Google 的产品——它是一个「属于所有人」的产品。它的每次更新的重点都是在为我们开发者考虑,我们都可以参与其中,并与它的成功息息相关。通过此次大会也更让我期待下个一个Flutter版本的到来。