Flutter 2.8 正式发布

Flutter 谷歌开发者 2021-12-15 09:50

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


在新的一年到来之际,我们为大家带来 Flutter 的重大版本更新以及多项新功能和改进,以优化移动设备和 Web 开发者的体验,并让我们朝着稳定版的桌面端支持更近一步。

图片

Flutter 旨在改变应用的构建方式,它将移动、Web、桌面和嵌入式开发整合到一个工具包中: 让开发者首先专注于他们想要构建的内容,而不是他们想要的目标平台;提供高性能、高生产力的框架,缩短开发人员的内循环;并且可以使用同一个代码库来支持多种平台和设备类型。



新功能和改进: 更快速、更高效


此版本关注的一大重点领域是移动端性能。在理想情况下,获得出色的性能应该是理所当然的,但在实践中,任何复杂的应用都需要我们进行优化,才能确保其充分利用各种基础硬件和开发库。这其中便包括启动速度,它可能会受限于网络带宽或其他初始化成本;内存占用,特别是在内存受限的设备上;以及图形渲染。基于我们在 Google Pay 等大型 Google 应用上累积的经验,我们在两方面不断进行着投入: 一是提高 Flutter 本身的性能,二是为您提供更优秀的工具来指导您分析和优化自己的应用。只需升级到 Flutter 2.8,您的应用便可以拥有更快的启动速度,占用更少的内存。


  • Google Pay
    https://flutter.dev/showcase/google-pay


Flutter 2.8 还大幅简化了应用与后端服务 (如 Firebase 和 Google Cloud) 的连接,增加了对 Google Ads 生产级别的支持,还对相机和嵌入式网络插件进行了重大升级。另外还包含 Dart 2.15,这个版本的 Dart 对并发性进行了重大改进,增加了新的语言功能 (如构造函数拆分和增强的枚举),并通过优化将内存用量降低了 10%。


  • 使用 Flutter 进行商业变现

    https://flutter.cn/monetization

  • Dart 2.15

    https://medium.com/dartlang/dart-2-15-7e7a598e508a

图片
△ Flutter 新增的改进开发者生产力措施之一: 只需添加一个即插即用的 widget 便可实现多平台账号授权登录

这个版本的另一个主要投入方向则是进一步提高开发者的生产力,而且我们在未来的版本中会继续推进这方面的工作。我们一直专注于通过有状态热重载等功能为开发者们创造更精简高效的内部循环。我们现在开始探索一些更高层次的抽象,使开发者更容易快速推进工作。例如,在这个版本中,我们增加了一个使用 Firebase 来处理认证的登录 widget。有了这个 widget,您就不必再操心所有的登录的边缘情况,比如两步认证或重置密码的用户流程,也不必再被多平台登录 (如 Google、Apple、Twitter 或 Facebook 等平台) 带来的复杂性所困扰。这样的功能建立在 Flutter 的核心基础上,结合了低代码解决方案的开发速度与完整 UI 框架的灵活性和力量,有可能改变开发者构建应用的方式。


Flutter 2.8 和 Dart 2.15 现在均可使用,运行较旧版本的现有应用可以轻松升级。如需了解详情,请参阅 DartFlutter 的技术博文,其中涵盖了其各自的改进细节。


  • Dart 2.15 发布
    https://medium.com/dartlang/dart-2-15-7e7a598e508a
  • Flutter 2.8 更新一览
    https://medium.com/flutter/whats-new-in-flutter-2-8-d085b763d181


使用 Flame 开发休闲游戏


对于大多数开发者来说,Flutter 是一个应用框架。但是,利用 Flutter 提供的硬件加速图形支持来开发休闲游戏的生态也在不断发展壮大。


今天,我们也很高兴地和大家一起迎接 Flame 1.0 的发布,这是基于 Flutter 构建的模块化 2D 游戏引擎。Flame 提供了快速构建游戏所需的一切: 游戏循环以及核心要件,如组件系统、精灵动画和图像、碰撞检测、世界相机、效果系统以及手势和输入支持。


  • Flame 1.0
    https://flame-engine.org/


模块化的 Flame 还提供了扩展的可能性: 使用 package 与其他开发库进行整合,如 Rive (构建动画)、AudioPlayers (音乐和音效)、Forge2D (Box2D 风格的物理引擎)、Tiled (图块地图编辑器)、Fire Atlas (精灵图和动画编辑器) 等。对休闲或 2D 游戏开发者来说,Flame 和这些开发库一起组成了丰富的生态以及强大的助力。
图片
△ Flame 构建游戏的三个示例: Tomb ToadGravity Runner 以及 Bonfire
  • Tomb Toad
    https://play.google.com/store/apps/details?id=com.crescentmoongames.tombtoad
  • Gravity Runner
    https://play.google.com/store/apps/details?id=xyz.fireslime.gravitational_waves
  • Bonfire
    https://bonfire-engine.github.io/examples/bonfire/#/


Flame 由 Blue Fire 打造,这是一群致力于为 Flutter 和 Dart 创建开源 package 和插件的贡献者们组成的团队。我们很高兴与他们合作,并且期待着对游戏开发感兴趣的开发者们积极尝试 Flame。


  • Blue Fire
    https://dev.to/blue-fire/fireslime-is-now-blue-fire-405g



Flutter 的持续发展势头


Flutter 的发展势头之迅猛让我们倍感惊喜,其蓬勃发展的生态系统囊括了各种构建于核心框架之上的应用和工具。在今年的 Google I/O 大会上,我们有提到在 Play 商店中使用 Flutter 构建的应用已经超过 200,000 个。自大会以来的短短六个月内,Flutter 应用的数量几乎增长了一倍,现在 Play 商店中有超过 375,000 个 Flutter 应用

图片
△ Flutter 支持 Android、iOS、iPadOS、Web、Windows、macOS 和 Linux,当您为不同的设备和配置进行构建时不需要重写应用

当然,Flutter 不仅可用于 Android 系统。独立移动市场分析公司 AppAnnie 的数据显示,在 iOS 上使用 Flutter 的应用包括各大顶级品牌和公司,如 BMWeBayWeChatSHEINPhilips HueNortontrip.comGreggs。在 Web 端,Flutter 也正在为应用体验设定标准,并使 FlutterFlowRive 等设计工具从中受益。在桌面设备上,Ubuntu 工程团队继续使用 Flutter 打造各种新体验,包括全新的安装程序和固件更新程序。甚至类似 PUBG Mobile 这样的游戏也发现 Flutter 十分契合其用户界面屏幕。


  • AppAnnie
    https://www.appannie.com
  • BMW
    https://itunes.apple.com/app/id1519457734
  • eBay
    https://itunes.apple.com/app/id1456156090
  • WeChat
    https://apps.apple.com/us/app/wechat/id414478124
  • SHEIN
    https://apps.apple.com/us/app/shein-online-fashion/id878577184
  • Philips Hue
    https://apps.apple.com/app/id1055281310
  • Norton
    https://apps.apple.com/app/id1278474169
  • trip.com
    https://apps.apple.com/app/id681752345
  • Greggs
    https://apps.apple.com/gb/app/greggs/id1098233626
  • FlutterFlow
    https://flutterflow.io/
  • Rive
    https://rive.app/
  • Canonical
    https://github.com/canonical?q=&type=&language=dart&sort=
  • PUBG Mobile
    https://apps.apple.com/us/app/pubg-mobile-arcane/id1330123889


构建生态系统需要很长时间,但根据 StatistaJetBrainsSlashDataStack Overflow 的独立评估,Flutter 现在已成为非常受欢迎的多平台工具包。我们不会因此而自满,但 Flutter 的高人气也自然意味着会有更多的 package 和工具支持 Flutter,并让这个生态系统更加繁盛。


  • Statista
    https://www.statista.com/statistics/869224/worldwide-software-developer-working-hours/
  • JetBrains
    https://www.jetbrains.com/lp/devecosystem-2021/miscellaneous/#Technology_which-cross-platform-mobile-frameworks-do-you-use-two-years
  • SlashData
    https://www.slashdata.co/reports/?category=mobile-desktop
  • Stack Overflow
    https://insights.stackoverflow.com/trends?tags=flutter%2Creact-native%2Ccordova%2Cxamarin
  • Flutter packages
    https://pub.flutter-io.cn/



回顾 2021,展望 2022


在去年这段艰难的时期中,我们的工程团队一直忙碌不停。除了开发 Flutter 2.8 的功能之外,我们还重写了开发者工具,发布了空安全和 Web 支持,完成了原生代码集成的 FFI,添加了 Material You 的初步支持,并竭力提高性能和质量。我们总共解决了 20,000 个问题,并创建了全新的网站来更好地展示 Flutter。在过去的几个月里,我们投入大量精力,全面改进了工程基础架构,以提高工程师的生产力并扩大测试范围。


  • Material You
    https://material.io/blog/announcing-material-you
  • Flutter 中文社区
    https://flutter.cn/


展望 2022 年,我们希望能够与开发者当面交流。我们期待加大对开发者体验的投入,包括语言增强、文档更新和更高层次的抽象,简化使用 Flutter 构建复杂应用的过程。我们将完成桌面端支持的稳定版本,并进一步扩展我们在 Web 方面的工作。我们还计划扩展与其他平台的互操作性和对新目标平台的可移植性。这一切,我们才刚刚开始!



结语与献辞


谨将 Flutter 2.8 这一新版本献给 Kevin Gray,他是 Very Good Ventures 的开发者,于数周前不幸离世。自 Flutter 伊始,Kevin 就为其成功做出着重要贡献;他是众多早期 Flutter 演示背后的开发者,包括最早期为我们赢得高知名度客户的演示,此外他还开发了首个 Flutter 桌面端的演示,以及首个出现在 Google I/O 主题演讲中的 Flutter 演示。他才华横溢、富有爱心、风趣又善良,他的离世给所有认识他的人带来无法弥补的损失。我们在此悼念他的离世,也赞扬他充满意义的一生;我们公开缅怀他,让大家与我们一同见证他给我们带来的巨大影响。没有他,Flutter 不会获得今天的成功。


  • 怀念我们的友人与同事 Kevin Gray
    https://verygood.ventures/blog/remembering-our-friend-and-teammate-kevin-gray


Kevin,我们想你了。感谢你为 Flutter 所做的一切,我们的友谊将永存于心。与此同时,我们向 Kevin 的家人和朋友致以最深切的慰问。

对于广大 Flutter 社区的开发者和支持者,我们由衷感谢你们的付出。希望 Flutter 2.8 能为大家带来丰富的研究课题。如果您尚未学习 Flutter,不妨和近 4 万名开发者一起通过《Flutter Apprentice》培训手册来轻松上手 Flutter,该手册在 1 月初以前对所有人免费开放。最后,预祝大家新年快乐,度过一个安全而快乐的假期。


  • Flutter Apprentice
    https://store.raywenderlich.com/products/flutter-apprentice-google

图片

推荐阅读

如页面未加载,请刷新重试

图片 点击屏末  | 即刻访问 Flutter 开发者社区中文资源



图片

图片

图片

收录于话题 #Flutter 最新动态
 102
下一篇 为了更好的 Flutter | 2021 第四季度开发者调研