一起看 I/O | Flutter 3 正式发布!

作者 / Tim Sneath, Google Flutter 和 Dart 产品组产品经理

Flutter 3 实现了 Flutter 以移动端为中心扩展到多平台的产品规划,并在今年 I/O 大会的主题演讲上正式发布,此次发布提供了对 macOS 和 Linux 桌面端的稳定版支持,同时包括 Firebase 集成的改进,增加了与生产力和性能相关的新特性,并对 Apple 芯片提供了支持。

Flutter 3 的演进

创建 Flutter 的初衷是为了彻底改变应用开发:将 「Web 应用的迭代开发模式」与「硬件加速的图形渲染」和「像素级的控制」三者结合——之前只有游戏才能这么做。自 Flutter 1.0 Beta 版发布以来的四年里,我们逐渐在这些基础上发展,增加了新的框架功能和新的 widget,与底层平台进行了更深入的整合,还加入了丰富的 package 库,此外还进行了许多性能和工具等方面的改进。

随着 Flutter 逐渐产品走向成熟,越来越多的人开始用它来构建应用。今天,有超过 50 万个应用使用 Flutter 发布。来自 data.ai 等研究公司的分析以及公众的评价都可以表明,Flutter 正被许多细分领域的客户所使用。其使用场景非常广泛,从微信 (WeChat) 等社交应用,到 Betterment 和 Nubank 等金融和银行类应用,再到 SHEIN 和 trip.com 等商旅应用以及 Fastic、Tabcorp 等生活方式类的应用,还有 My BMW 此类的硬件连接类应用,最后是巴西政府等公共机构的官方应用等等,都有 Flutter 在大放异彩。

现在已有超过 50 万个应用使用 Flutter 构建。

开发者告诉我们,Flutter 帮助他们在更多的平台上更快地构建出了精美的应用。我们最新的用户研究也表明:

  • 91% 的开发者认为 Flutter 缩短了构建和发布应用的时间。
  • 85% 的开发者认为 Flutter 使他们的应用比以前更加精美。
  • 85% 的开发者认为 Flutter 使他们的应用能在更多平台上发布。

Sonos 在 最近的一篇博客文章 中讨论了他们对设置体验的改版工作,其中着重强调了上述的第二点:

毫不夸张地说,Flutter 为我们带来了一种 "高级感",这与我们团队之前提供的任何东西都不一样。对我们的设计师来说,最重要的是,他们可以轻松地构建新的用户界面,这意味着我们团队在面对各种设计规格时,会更少说 "做不到",而更多地直接进行迭代。如果您觉得我们的说法有道理,我们推荐您试试 Flutter —— 至少我们非常庆幸当初选择了它。

欢迎来到 Flutter 3

Flutter 3 正式发布,至此,Flutter 的跨平台之旅迈入高潮。有了 Flutter 3,您就可以仅用一套代码库,为 6 个平台构建精美的体验。它为开发者提供了无与伦比的生产力,并使初创团队从第一天起就能将新的想法投放到完全可用的市场中。

在以前的版本中,我们已经在 iOS 和 Android 平台之外增加了 Web 端Windows 平台 的支持,现在,Flutter 3 增加了对 macOS 和 Linux 应用的稳定支持。增加平台支持需要的不仅仅是渲染像素这么简单: 还包括对新的输入和交互模型的支持、编译和构建的支持、无障碍和国际化支持,以及特定平台的整合。我们的目标是,让您能够灵活地充分利用底层操作系统,同时根据您的选择尽可能多地共享用户界面和逻辑。

在 macOS 上,我们已经投入资源支持 Intel 处理器和 Apple 芯片,并提供 通用二进制 (Universal Binary) 文件) 的支持,使应用能够打包成在两种架构上都能原生运行的可执行文件。在 Linux 上,Canonical 和 Google 已经合作为开发者们带来了高度集成的最佳开发工具。

Superlist 是一个很好的例子,告诉大家 Flutter 是如何帮助您实现精美桌面体验的,它今天推出了 Beta 版本供大家体验。Superlist 提供了超强的协作功能,通过一个崭新的应用将列表、任务和自由形式的内容结合在一起,将待办事项和个人计划等功能打磨得焕然一新。Superlist 团队选择 Flutter,是因为它能够提供快速且高度品牌化的桌面体验。我们认为,他们迄今为止的进展表明这是一个非常明智的选择。

Flutter 3 还对许多基本要素进行了改进,提高了性能,强化了对 Material You 的支持,并进一步提升了生产力。

除了上面提到的内容外,在这个版本中,Flutter 已经完全支持在 Apple 芯片 上进行原生开发。虽然自 M1 处理器诞生以来,Flutter 就一直与搭载 M1 的苹果设备兼容,但 Flutter 现在充分利用了 Dart 对 Apple Silicon 的支持,在搭载 M1 的设备上实现了更快的编译,并支持 macOS 应用的通用二进制文件。

在这个版本中,我们对 Material Design 3 所做的支持工作已基本完成。开发者们现在可以尽情使用这套自适应性强、跨平台的设计系统,包括其动态颜色方案和经过更新的视觉组件。

我们也将在近期发布更详细的技术文章,并在其中更多介绍这部分内容,以及 Flutter 3 的许多其他新功能。

Flutter 由 Dart 编程语言提供强有力的支持,这是一种用于多平台开发的高生产力、可移植的语言。我们在这个发布周期中对 Dart 的改进工作包括: 枚举支持成员变量、改进的超类参数继承,以及更为灵活的命名参数相关的新的语言特性;同时为 package:lints 开启了 2.x 版本,这是一套官方的 lint 规则,是根据我们总结的 Dart 最佳实践整合而成的一个 lint 规则集;与此同时,我们也更新了核心库的 API 文档,为其带来了丰富的示例代码。并且,为了改善平台集成特性,我们在 Flutter 插件中提供了一个新的模版,使用 dart:ffi 与原生平台进行 C 语言的互操作、对 RISC-V 指令集提供实验性支持,以及对 macOS 和 Windows 可执行文件的签名支持。如果想要了解 Dart 2.17 中所有新改进的细节情况,请关注将在近期发布的文章。

Firebase 和 Flutter

当然,构建应用不仅仅是构建用户界面框架。应用发布者需要一套全面的工具,来帮助他们构建、发布和运营自己的应用,包括认证、数据存储、云端功能和设备测试等服务。目前已有多种服务支持 Flutter,包括 SentryAppWriteAWS Amplify

Firebase 是由 Google 提供的应用服务平台。SlashData 的开发者基准研究 显示,62% 的 Flutter 开发者在其应用中使用 Firebase。因此,在过去的几个版本中,我们一直在与 Firebase 合作对两者的集成进行扩展和改良,并将其打造成 Flutter 的首选集成服务。这包括将 Flutter 的 Firebase 插件升级到 1.0,增加更好的文档和工具,以及提供像 FlutterFire UI 这样的新 widget,为开发者提供可重用的认证和用户资料界面。

今天,我们宣布 Flutter 和 Firebase 的整合已成为 Firebase 产品核心的一部分并得到完全的支持。我们已将源代码和文档转移到 Firebase 的主 repo 和网站中。Firebase 对 Flutter 的支持将和 Android 和 iOS 端的支持同步发展。

此外,我们还进行了重大改进,以支持 Flutter 应用使用 Crashlytics (这是 Firebase 中很受欢迎的实时崩溃报告服务)。随着 Flutter Crashlytics 插件的更新,您可以使用与 iOS 和 Android 开发者相同的功能集来实时跟踪致命错误。其中包括重要警报和指标,如 "无崩溃用户",帮助您保持应用的稳定性。Crashlytics 的分析管线已经升级,以改善 Flutter 崩溃的聚合处理,使其能更快地分级、优先处理和修复问题。最后,我们简化了插件的设置过程,因此您只需要几个步骤就可以直接通过 Dart 代码设置并使用 Crashlytics。

Flutter 休闲游戏工具包

对于大多数开发者来说,Flutter 是一个应用框架。但是,利用 Flutter 提供的硬件图形加速支持和 Flame 等开源游戏引擎,围绕休闲游戏开发而建立的社区也在不断壮大。我们希望让休闲游戏开发者更容易上手,所以在今天的 I/O 大会上,我们发布了 Flutter 休闲游戏工具包 (Casual Game Toolkit),它提供了模板、最佳实践入门套件,还为您准备了可用于广告和云服务的赞助额度。

虽然 Flutter 并不是为高强度的 3D 动作游戏而设计的,但如今,一部分这类游戏在独立于游戏场景之外的用户界面部分也开始使用 Flutter 来实现,包括 PUBG Mobile 这样拥有数亿用户的流行游戏。在 I/O 大会上,我们想看看我们能把技术推进到什么程度,所以我们创建了一个有趣的弹球游戏,它使用到了 Firebase 和 Flutter 的 web 端支持。I/O Pinball 弹球游戏提供了一个定制桌面,围绕着 Google 最受欢迎的四个吉祥物进行设计,它们分别是: Flutter 的 Dash、Firebase 的 Sparky、Android 机器人和 Chrome 恐龙,您可以在这个游戏中与他人一较高下。我们希望通过这种有趣方式展示 Flutter 的多功能性。

Flutter: 由 Google 支持,由社区驱动

我们喜欢 Flutter 的一点是,它不仅仅是 Google 的产品——它是一个「属于所有人」的产品。开源意味着我们都可以参与其中,并与它的成功息息相关。您可以贡献新的代码或文档,创建 package 来为核心框架赋予新的超能力,编写教导他人的书籍和培训课程,还可以帮助组织活动和用户社群,等等。

为了展示社区的精彩,我们最近与 DevPost 合作,赞助了 Puzzle Hack 挑战,让开发者们通过 Flutter 来演绎经典的滑动拼图游戏,以展示他们的技能。这场活动呈现了 web、桌面和移动端完美结合的场景: 现在大家都可以通过浏览器或应用商店玩到这些游戏。

感谢您对 Flutter 的支持,欢迎来到 Flutter 3!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容