它来啦!Flutter 3 正式发布全解析!

刘望舒

共 6233字,需浏览 13分钟

 ·

2022-05-18 20:27

 BATcoder技术群,让一部分人先进大厂

大家好,我是刘望舒,腾讯最具价值专家,著有三本业内知名畅销书,三本书被中国国家图书馆、各大985名校图书馆收藏,连续五年蝉联电子工业出版社年度优秀作者。

前华为面试官、独角兽公司技术总监。


想要加入 BATcoder技术群,公号回复BAT 即可。

作者 / Tim Sneath, Product Manager for Flutter and Dart


作为 Google I/O 主题演讲的一部分,我们在这里很高兴为大家带来 Flutter 3。Flutter 3 完成了我们从以移动端为中心到多平台框架的路线图,提供了对 macOS 和 Linux 桌面应用的支持,改进了对 Firebase 的集成,更增加了新的生产力功能和性能改进特性,此外还提供了对 Apple Silicon 的支持。 



通往 Flutter 3 之路


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

随着这个产品走向成熟,越来越多的人开始用它来构建应用。今天,有超过 50 万个应用使用 Flutter 发布。来自 data.ai 等研究公司的分析,以及公众的评价,都表明 Flutter 正被许多细分领域的客户所使用。其使用场景之广,从微信 (WeChat) 等社交应用,到 BettermentNubank 等金融和银行应用,以及 SHEINtrip.com 等商务应用,和 FasticTabcorp 等生活方式应用,还有 My BMW 这样的伴侣应用到巴西政府等公共机构的官方应用等等,都有 Flutter 在大放异彩。


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

  • data.ai
    https://www.data.ai/en/
  • Flutter 精彩案例
    https://flutter.dev/showcase
  • WeChat
    https://play.google.com/store/apps/details?id=com.tencent.mm&hl=en_US&gl=US
  • Betterment
    https://apps.apple.com/us/app/betterment-investing-saving/id393156562
  • Nubank
    https://play.google.com/store/apps/details?id=com.nu.production&hl=en_US&gl=US
  • SHEIN
    https://play.google.com/store/apps/details?id=com.zzkko&hl=en_US&gl=US
  • Trip.com
    https://apps.apple.com/us/app/trip-com-hotels-flights-trains/id681752345
  • Fastic
    https://fastic.com/
  • Tabcorp
    https://auspreneur.com.au/tabcorp-adopts-googles-flutter-platform/
  • My BMW
    https://www.press.bmwgroup.com/global/article/detail/T0328610EN/the-my-bmw-app:-new-features-and-tech-insights-for-march-2021?language=en
  • 巴西政府官方应用
    https://apps.apple.com/app/id1506827551


开发者告诉我们,Flutter 帮助他们在更多的平台上更快地构建出了精美的应用。我们最新的用户研究表明:
  • 91% 的开发者认为 Flutter 缩短了构建和发布应用的时间。
  • 85% 的开发者认为 Flutter 使他们的应用比以前更加精美。
  • 85% 的开发者认为 Flutter 使他们的应用能在更多平台上发布。

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


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

  • Sonos: 使用 Flutter 改进设置流程

    https://tech-blog.sonos.com/posts/renovating-setup-with-flutter/



欢迎来到 Flutter 3


现在,我们正式发布 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 中所有新改进的细节情况,请关注将在近期发布的文章。



Firebase 和 Flutter


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


由 Google 赞助,由社区驱动


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


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


下面这个视频展示了我们最喜欢的一些作品和获奖者,相信您也会喜欢:

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



耗时2年,Android进阶三部曲第三部《Android进阶指北》出版!

『BATcoder』做了多年安卓还没编译过源码?一个视频带你玩转!

『BATcoder』我去!安装Ubuntu还有坑?

重生!进阶三部曲第一部《Android进阶之光》第2版 出版!

为了防止失联,欢迎关注我的小号

  微信改了推送机制,真爱请星标本公号👇
浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报