谷歌宣布,作为 Google I / O 主题演讲的一部分,正式发布了 Flutter 3。Flutter 3 完成了从以移动端为中心到多平台框架的路线图,提供了对 macOS 和 Linux 桌面应用的支持,改进了对 Firebase 的集成,更增加了新的生产力功能和性能改进特性,此外还提供了对 Apple Silicon 的支持。
谷歌创建 Flutter 的初衷是为了彻底改变应用开发: 将 web 的迭代开发模式与硬件加速的图形渲染和像素级的控制相结合,以前只有游戏才能这么做。自 Flutter 1.0 Beta 版发布以来的四年里,谷歌逐渐在这些基础上发展,增加了新的框架功能和新的 widget,与底层平台进行了更深入的整合,还加入了丰富的 package 库,此外还进行了许多性能和工具等方面的改进。
随着这个产品走向成熟,越来越多的人开始用它来构建应用。今天,有超过 50 万个应用使用 Flutter 发布。来自 data.ai 等研究公司的分析,以及公众的评价,都表明 Flutter 正被许多细分领域的客户所使用。其使用场景之广,从微信 (WeChat) 等社交应用,到 Betterment 和 Nubank 等金融和银行应用,以及 SHEIN 和 trip.com 等商务应用,和 Fastic、Tabcorp 等生活方式应用,还有 My BMW 这样的伴侣应用到巴西政府等公共机构的官方应用等等,都有 Flutter 在大放异彩。
现在已有超过 50 万个应用使用 Flutter 构建。
现在,谷歌正式发布 Flutter 3。至此,Flutter 的跨平台之旅迈入高潮。有了 Flutter 3,你就可以仅用一套代码库,为 6 个平台构建精美的体验。它为开发者提供了无与伦比的生产力,并使初创团队从第一天起就能将新的想法投放到完全可用的市场中。
在以前的版本中,谷歌已经在 iOS 和 Android 平台之外增加了 web 端和 Windows 平台的支持,现在,Flutter 3 增加了对 macOS 和 Linux 应用的稳定支持。增加平台支持需要的不仅仅是渲染像素这么简单: 还包括对新的输入和交互模型的支持、编译和构建的支持、无障碍和国际化支持,以及特定平台的整合。谷歌的目标是,让你能够灵活地充分利用底层操作系统,同时根据你的选择尽可能多地共享用户界面和逻辑。
在 macOS 上,谷歌已经投入资源支持 Intel 和 Apple Silicon,并提供通用二进制 (Universal Binary) 支持,使应用能够打包成在两种架构上都能原生运行的可执行文件。在 Linux 上,Canonical 和 Google 已经合作为开发者们带来了高度集成的最佳开发工具。
构建通用 macOS 二进制文件
https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary
Superlist 是一个很好的例子,告诉大家 Flutter 是如何帮助你实现精美桌面体验的,它今天推出了 Beta 版本供大家体验。
Superlist 提供了超强的协作功能,通过一个崭新的应用将列表、任务和自由形式的内容结合在一起,将待办事项和个人计划等功能打磨得焕然一新。Superlist 团队选择 Flutter,是因为它能够提供快速且高度品牌化的桌面体验。谷歌认为,他们迄今为止的进展表明这是一个非常明智的选择。
Superlist
https://superlist.com/
Flutter 3 还对许多基本要素进行了改进,提高了性能,强化了对 Material You 的支持,并进一步提升了生产力。
除了上面提到的内容外,在这个版本中,Flutter 已经完全支持在 Apple Silicon 上进行原生开发。虽然自 M1 处理器诞生以来,Flutter 就一直与搭载 M1 的苹果设备兼容,但 Flutter 现在充分利用了 Dart 对 Apple Silicon 的支持,在搭载 M1 的设备上实现了更快的编译,并支持 macOS 应用的通用二进制文件。
使用 Apple Silicon 的 Mac 电脑
https://support.apple.com/en-us/HT211814
Dart 2.14
https://medium.com/dartlang/announcing-dart-2-14-b48b9bb2fb67
构建通用 macOS 二进制文件
https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary
在这个版本中,谷歌对 Material Design 3 所做的支持工作已基本完成。开发者们现在可以尽情使用这套自适应性强、跨平台的设计系统,包括其动态颜色方案和经过更新的视觉组件。
Material Design 3
https://m3.material.io/
谷歌也将在近期发布更详细的技术文章,在其中阐述了这部分内容,以及 Flutter 3 的许多其他新功能。
Flutter 由 Dart 驱动,这是一种用于多平台开发的高生产力、可移植的语言。谷歌在这个发布周期中对 Dart 的改进工作包括: 有助于减少模板代码和提升可读性的新语言功能,实验性的 RISC-V 支持,经过升级的 linter,以及新的文档。如果你想要了解 Dart 2.17 中所有新改进的细节情况,请关注将在近期发布的文章。
当然,构建应用不仅仅是构建用户界面框架。应用发布者需要一套全面的工具,来帮助他们构建、发布和运营自己的应用,包括认证、数据存储、云端功能和设备测试等服务。目前已有多种服务支持 Flutter,包括 Sentry、AppWrite 和 AWS Amplify。
Sentry
https://docs.sentry.io/platforms/flutter/
AppWriter
https://appwrite.io/docs/getting-started-for-flutter
AWS Amplify
https://docs.amplify.aws/start/q/integration/flutter/
Google 提供的应用服务是 Firebase。SlashData 的开发者基准研究显示,62% 的 Flutter 开发者在其应用中使用 Firebase。因此,在过去的几个版本中,谷歌一直在与 Firebase 合作对两者的集成进行扩展和改良,并将其打造成 Flutter 的首选集成服务。这包括将 Flutter 的 Firebase 插件升级到 1.0,增加更好的文档和工具,以及提供像 FlutterFire UI 这样的新 widget,为开发者提供可重用的认证和用户资料界面。
SlashData 开发者基准研究
https://www.slashdata.co/developer-program-benchmarking/?
FlutterFire UI
https://pub.flutter-io.cn/packages/flutterfire_ui
今天,谷歌宣布 Flutter / Firebase 的整合已成为 Firebase 产品核心的一部分并得到完全的支持。谷歌已将源代码和文档转移到 Firebase 的主 repo 和网站中。Firebase 对 Flutter 的支持将和 Android 和 iOS 端的支持同步发展。
此外,谷歌还进行了重大改进,以支持 Flutter 应用使用 Crashlytics (这是 Firebase 中很受欢迎的实时崩溃报告服务)。随着 Flutter Crashlytics 插件的更新,你可以使用与 iOS 和 Android 开发者相同的功能集来实时跟踪致命错误。其中包括重要警报和指标,如 "无崩溃用户",帮助你保持应用的稳定性。Crashlytics 的分析管线已经升级,以改善 Flutter 崩溃的聚合处理,使其能更快地分级、优先处理和修复问题。最后,谷歌简化了插件的设置过程,因此你只需要几个步骤就可以直接通过 Dart 代码设置并使用 Crashlytics。
Crashlytics
https://firebase.google.cn/docs/crashlytics
对于大多数开发者来说,Flutter 是一个应用框架。但是,利用 Flutter 提供的硬件图形加速支持和 Flame 等开源游戏引擎,围绕休闲游戏开发而建立的社区也在不断壮大。谷歌希望让休闲游戏开发者更容易上手,所以在今天的 I / O 大会上,谷歌发布了休闲游戏工具包 (Casual Game Toolkit),它提供了模板、最佳实践入门套件,还为你准备了可用于广告和云服务的赞助额度。
Flame
https://flame-engine.org/
Flutter 休闲游戏工具包
https://flutter.dev/games
虽然 Flutter 并不是为高强度的 3D 动作游戏而设计的,但如今,一部分这类游戏在独立于游戏场景之外的用户界面部分也开始使用 Flutter 来实现,包括 PUBG Mobile 这样拥有数亿用户的流行游戏。在 I / O 大会上,谷歌想看看谷歌能把技术推进到什么程度,所以谷歌创建了一个有趣的弹球游戏,它使用到了 Firebase 和 Flutter 的 web 端支持。I / O Pinball 弹球游戏提供了一个定制桌面,围绕着 Google 最受欢迎的四个吉祥物进行设计,它们分别是: Flutter 的 Dash、Firebase 的 Sparky、Android 机器人和 Chrome 恐龙,你可以在这个游戏中与他人一较高下。谷歌希望通过这种有趣方式展示 Flutter 的多功能性。
PUBG Mobile
https://play.google.com/store/apps/details?id=com.tencent.ig