# 2023 Flutter Forward 大会回顾,快来看看 Flutter 的未来会有什么 [Flutter Forward](https://flutter.dev/events/flutter-forward) 作为一场 Flutter 的突破性发布会,事实上 [Flutter 3.7 在大会前已经发布](https://juejin.cn/post/7192468840016511034) ,所以本次大会更多是介绍未来的可能,核心集中于 *come on soon* 的支持,所以值得关注的内容很多,特别是一些 Feature 让人十分心动。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image1.png) # 开始之前 按照惯例,在展望未来之前需要先总结过去,首先,到目前为止已经超过 700,000 个已发布应用使用了 Flutter,例如腾讯知名的 PUBG 再次登上了大会 PPT。 | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image2.png) | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image3.png) | | ------------------------------------------------------ | ------------------------------------------------------ | 另外,如 [Google Classroom](https://edu.google.com/workspace-for-education/classroom/) 团队也分享了他们使用 Flutter 开发的经历和收获,包括了代码复用率和开发效率等。 | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image4.png) | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image5.png) | | ------------------------------------------------------ | ------------------------------------------------------ | > “使用 Flutter,我们将相同功能的代码大小减少了 66%……这意味着每个平台的错误更少,未来的技术债务也更少。”(Kenechi Ufondu,Google 课堂软件工程师) 另外从 Flutter 目前的用户数据情况看,当前阶段 Flutter 还是很受欢迎的。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image6.png) 而关于 Flutter 3.7 部分这里就不再赘述,感兴趣可以看前面已经发布的 [Flutter 3.7 的更新说明](https://juejin.cn/post/7192468840016511034) 。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image7.png) **本次 Flutter 还安利了两个低代码的友商平台:[FlutterFlow](https://flutterflow.io/) 和 [WidgetBook](https://www.widgetbook.io/)** 。 不得不说它们的成熟度都挺高的,例如 FlutterFlow 的在线调试运行和翻译支持就相当惊艳。 | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image8.png) | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image9.png) | | ------------------------------------------------------- | ------------------------------------------------------- | | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image10.png) | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image11.png) | 另外 WidgetBook 作为开源项目,它支持 Flutter 开发者针对自己的控件进行分类归纳,同时可以在使用 Widgetbook Cloud 的情况下,将 Widget 与 Figma 同步并和团队共享,为设计和开发人员提供更灵活的协作工具。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image12.png) > FlutterFlow 并不是完全免费哦。 # Dart 3 alpha 本次大会的另外一个重点就是 Dart 3 alpha ,其实在此之前官方就有提前预热过,在[《Flutter 的下一步, Dart 3 重大变更即将在 2023 到来》](https://juejin.cn/post/7174985128799076389) 里我们就提前预览过对应更新,其中大家最关注的莫过于 [Records](https://github.com/dart-lang/language/blob/master/accepted/future-releases/records/records-feature-specification.md) 和 [Patterns](https://github.com/dart-lang/language/blob/master/accepted/future-releases/0546-patterns/feature-specification.md#patterns ) 。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image13.png) **Records 支持高效简洁地创建匿名复合值,不需要再声明一个类来保存,而在 Records 组合数据的地方,Patterns 可以将复合数据分解为其组成部分**。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image14.png) > 例如要将 `geoLocation` 上面的返回值(由一对整数组成的记录)解构为两个单独的 `int` 变量 `lat`和 `long`,就可以使用这样的 Patterns 声明。 Patterns 是完全类型安全的支持,并且会在开发过程中进行错误检查。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image15.png) 你还可以对值的类型进行 Patterns 匹配,通过 `switch`可以使用匹配类型的 Patterns ,以及每种类型的字段。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image16.png) 当然,Dart 3 还有一个重点就是 100% 空安全的要求,也就是不再支持非空安全的代码,这对于旧项目来说是很大的挑战,相信还是有相当一大部分人的 Flutter 项目一直维持在低版本。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image17.png) Dart 3 还进行了很大程度的优化, 例如 Dart 3 进行了清理一些不必要的 API ,同时对编译做了很大的优化,例如下图是变异后的代码对比。 | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image18.png) | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image19.png) | | ------------------------------------------------------- | ------------------------------------------------------- | 另外 Dart 3 将支持更多的平台架构,例如 [RISC-V](https://en.wikipedia.org/wiki/RISC-V) ,同时还在覆盖 Windows 上的 ARM64 支持,而 Web 上 Dart 3 也将可以脱离 Flutter 直接支持 [WebAssembly (Wasm)](https://webassembly.org/) 。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image20.png) 最后在新工具的支持下,Dart 可以根据 C/ObjC/Swift/Java/Kotlin 代码的头文件/接口文件,自动创建具有 Dart 接口的绑定,以及那些跨语言调用所需的自动绑定,也就是 FFIgen + JNIgen。 > 具体可见:https://github.com/flutter/samples/blob/main/experimental/pedometer/README.md | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image21.png) | ![](http://img.cdn.guoshuyu.cn/20230126_FF/image22.png) | | ------------------------------------------------------- | ------------------------------------------------------- | # Web 本次还有一个惊喜就是 add-to-web 要来了, 一个叫做 **element embedding** 的支持即将到来。 ![](http://img.cdn.guoshuyu.cn/20230126_FF/image23.png) **element embedding 允许将 Flutter 添加到任何 Web `