跟着 Flutter Forward 大会举行, Flutter 官方在 3.7 版别 之余为我们展现了如 3D 渲染支撑、add-to-web 等未来可能出现的 Feature,可是这些都还只是处于开发中,未来可能还会有其他变化,而在大会结束后,官方也发布了更详细 2023 年的 Roadmap。

Flutter Forward 展现未来大方面,Roadmap 展现接下来更详细的方案。

功用

首要 2023 年官方首要任务还是在于功用优化,也便是 Impeller ,3.7 开端 Impeller 现已能够在 iOS 上进行预览,那么下一步便是将 Impeller 提升为 iOS 的默许底层渲染器,然后处理陈年顽疾如色器编译器卡顿 的问题。

iOS 之后, Impeller 在 Android 上针对 Vulkan 支撑和在桌面端的支撑也会逐步推进,这将是 Flutter 2023 最让人等待的方针:全员 Impeller,相信自己的渲染器,修正器问题会比 Skia 更快?

关于 Web,Flutter 一直都存在两种底层 render 支撑:html 和 canvaskit,而跟着 Dart3 将直接支撑 WebAssembly (运用 WebAssembly 标准的新 WasmGC 指令),Flutter 官方也将更多投入 WASM 道路

Flutter 2023 Roadmap 解析

那么这是不是官方在二选一中做出了最终抉择?为此 Flutter Web 支撑 “hot reload”(不仅仅是 “hot restart”) – #53041 相关进展现在也暂时阻滞。

另外关于 Web 还有并方案完成多线程渲染 ,减少应用的下载大小,并进步自定义着色器的功用等相关方案

看起来 Flutter Web 的有用性在 2023 会被进一步增强。

最终关于 VM 的功用优化,官方在 2023 将致力于改善存分配策略,然后进步应用的响应速度和发动功用:

现在考虑是运用 v8 GC 的 RAIL(Response、Animation、Idle、Loading)模型,在不同阶段供给通知(就像它现在为 idle 所做的那样),而且 VM 能够相应地调整一些 GC 行为。

质量

首要 Flutter 官方很垂青 Accessibility 的才能,所以 2023 年方针之一是:进步所有渠道上的 Accessibility 的支撑质量

尽管国内开发团队形似对 Accessibility 并不是特别感冒。

一起继续改善 Flutter 相关的文档质量也是方针之一,其实从我个人来看,现在 Flutter 供给的各类文档的质量和覆盖现已相当不错了。

另外,2023 Flutter 还将继续完善所有渠道上 UI 复原才能,尤其是 Android 和 iOS:

例如,估计本年 Cupertino 相关控件集将获得重大进展,让 iOS 渠道能够坚持最新状态并添加支撑的 Widget 数量。

一起在界面相关方面,未来 Flutter 官方还方案完成:

  • Android 13 的预测撤退手势: android:enableOnBackInvokedCallback ,首要是用于大屏幕和可折叠设备

  • Android 手写输入支撑
  • 相机插件移植到 Android 最新的 CameraX API

形似 Android 14 也要来了,一波未平一波又起。

Features

2023 还会有一些有用的新功用,这些功用关于开发者来说应该是很迫切的需求,衡量它们的标准首要有:

  • 受欢迎程度(一个问题收到了多少“点赞”)
  • 平价性和可移植性(一旦一个渠道支撑后,它能不能给其他渠道一起带来价值)
  • 能够达到一些更好的成果(例如能够进一步进步功用的新功用)。

所以 2023 估计要完成的功用有:

  • 自定义 asset 转化器,因为它们能够进步功用,例如在构建时对 icon fonts 进行转化,支撑自定义 API,让第三方东西能够自定义转化
  • 优化可翻滚控件,例 Table 和 Tree ,供给类似 builder 的懒加载才能 ,以此来应用的功用
  • 多窗口支撑,特别是关于桌面端,因为这是一个呼声很高的功用,例如考虑在完成上经过三个打开的窗口同享相同的统一 widget-tree
  • macOS 和 Windows 上的 PlatformView 支撑,也是呼声很高的功用
  • 边界拖放 才能的支撑。
  • iOS 上支撑的无线调试
  • 自定义 “flutter create” 模板,然后更好支撑如 Flame 引擎引导。
  • 支撑 element embedding ,也便是 add-to-web – #32329, 然后开发人员能够将 Flutter 内容添加到任何 Web <div>

都是很值得等待的功用,等待下个版别时能够用上。

研讨

因为 Impeller 的到来,未来 Flutter 可能会支撑某种形式的自适应布局,然后完成更靠近渠道特性的 UI 作用

这个探索会先从 Android 与 iOS 开端,这类支撑能够很好补全现在 Flutter 上,针对某些渠道特性需求在事务代码上额外适配的问题。

另外 Flutter Forward 提到的 3D 才能,也在本年的实验范围之内,一起运用 Impeller 改善底层 dart:ui API 和新的着色器等相关才能,也是探索的方针之一。

与此相关的还有 Display P3 宽色域支撑(可能会从 iOS 开端),这也是一项要求很高的功用

这个改善总觉得可能会引发其他坑。。。。

除此之外,Flutter 还在研讨从 ICU4C 迁移到 ICU4X(新的基于 Rust 的 ICU 后端),这里需求探索怎么将 Rust 嵌入到所有渠道的构建渠道,怎么在引擎和 Dart FFI 包之间同享 Rust 代码,以及怎么对此类包中运用的二进制代码履行 tree-shaking。

最终,还有怎么更新 Flutter SDK 运用 Dart 3 的新功用,例如更新我们的 API 运用 records 和 patterns,更新我们的东西链支撑 RISC-V,还有运用插件的新 FFI 功用等。

发布

2023 年方案发布 4 个安稳版别和 12 个 Beta 版别,在 2023 年不相同的当地是新功用在 Beta 时 Flutter 团队就会对外发布它们,而不是和之前相同等倒它们进入 Stable 版别。

也便是官方鼓励开发者更多投入到 Beta 的测验中来,我忽然想起 Android Studio Canary 版别形似比 Release 更安稳的现状

非方针的功用

现在 Web 上完成 hot reload 暂时阻滞,因为 Flutter 的 Web 团队现在都在致力于 Wasm 的出产支撑。

另外,关于以下功用 Flutter 团队现在仍旧没有支撑的方案:

  • code push
  • 对可穿戴设备(Apple Watch、Android Wear)
  • 轿车集成 的内置支撑
  • 对 Web SEO 的 内置支撑
  • 经过 honebrew 安装

尽管以上一些功用的呼声尽管也很高,可是首要是因为一些技能可行性和成本相关等的考虑,一些不可行或者难以处理的问题会暂且被搁置。

关于 code push 的官方支撑就不要等待了,这都多少年过去了,关于抢手问题的修正次序,详细可见:github.com/flutter/flu…