阅读 8007

【译】Flutter 2.0 正式版发布,全平台 Stable

针对 Web,Mobile 和 Desktop 的下一代 Flutter 。

今天 Flutter 2 正式版发布了,作为 Flutter 的重大升级,使用 Flutter 2 开发者可以用相同的代码,把使用 Flutter 开发的应用发布到五个操作系统:iOSAndroidWindowsmacOSLinux; 以及运行到 ChromeFirefoSafariEdge等浏览器的 Web 版本上,Flutter 甚至还可以嵌入到 Cars, TVs 和智能家电中。

Flutter 的目标是从根本上改变开发人员对构建应用程序的思路,让开发者从需要完成的用户需求开始实现,而不是从开发者需要适配的平台开始

Flutter 可以让你在拥有更好设计效果的情况下,得到更好的用户体验,因为它的运行速度很快,它会将源代码编译为机器代码,但是 Flutter 在开发过程中支持的 hotload,所以也可以在应用程序调试运行时进行更改并立即查看结果。

最后,Flutter 是开放的,已经有成千上万的开发者成为了它的贡献者,并通过各种 packages 对其进行了扩展。

在今天发布的 Flutter 2 中,Flutter 正式将从移动框架扩展到了全平台框架,使用 Flutter 2 开发者可以让它的应用直接运用到各种不同的平台而几乎不需要做出什么改变。

现在仅 Play 商店就已经有超过 15万个Flutter 应用程序,并且每个应用程序都可以通过 Flutter 2 进行免升级,因为它们现在可以在不重写的情况下扩展到 DesktopWeb

PS: 个人认为这个的是可行性太低了,纯属吹水。

全球各大主流企业都已经使用了 Flutter,包括它们的主流的应用程序如:微信GrabYandex GoNubankSonosFasticBettermentrealtor.com等。

在 Google 内部也会使用 Flutter 开发,Google 内有近一千多名工程师正在使用 Dart 和Flutter 构建应用程序,其中许多产品都已经发布了,包括:StadiaGoogle OneGoogle Nest Hub 等等。

在几个月前, Google Pay 里的旗舰移动应用就有不少更改为使用 Flutter,它们已经在生产力和质量上取得了重大进步。通过统一的代码库,团队消除了平台之间的功能差异,并清理超过一百万行代码,Google Pay 的报告还提到其工程师的效率要高得多,技术债务大大减少,统一的发布流程(如跨 iOS 和 Android 的安全性审查和试验)得以实现。

Flutter on the web

Flutter 2 中最大的修改之一就是对Web的生产质量有了新的支持。

Flutter 的Web 支持基于有硬件加速的2D和3D图形以及灵活的布局和绘画API,提供了以应用程序为中心的框架,该框架充分利用了现代Web所提供的所有优势。

此初始版本特别关注三种应用程序场景:

  • 渐进式Web应用程序(PWA):将Web的访问范围与桌面应用程序的功能结合在一起。
  • 单页应用程序(SPA),一次加载并与网络之间进行数据传输。
  • 将现有的 Flutter 移动应用程序带到Web上,从而为两种体验启用共享代码。

在过去的几个月中,在为稳定发布 Web 支持做准备的同时,也在性能优化方面取得了许多进展,比如添加了一个由 WebAssembly 构建的 CanvasKit 驱动渲染引擎。

Flutter Plasma 是由社区成员 Felix Blaschke 构建的 Demo ,展示了使用 Dart 和 Flutter 构建复杂的 Web 图形体验的简便性,这些体验也可以在桌面或移动设备上本地运行。

此外我们也一直在扩展 Flutter 以提供最佳的Web平台。最近几个月,Flutter 添加了文本自动填充功能,对地址栏 URL 和路由的控制 和 PWA manifests,而且由于 desktop browsers 与移动浏览器一样重要,因此我们还添加了交互式滚动条和键盘快捷键,以此来增加了 desktop 下的默认内容的紧密程度,并增加了屏幕阅读对 Windows,macOS 和Chrome OS 上可访问支持。

desktops, foldables, and embedded devices

除了传统的移动设备和 Web 之外,Flutter 被越来越多地扩展到其他设备类型,今天的主题演重点介绍了三个伙伴关系,这些伙伴关系证明了 Flutter 的可移植能力。

首先 Canonical 与我们合作将 Flutter 带入 desktop ,开发者贡献了许多代码来支持Linux 上的开发和部署。

在今天的活动中,,Ubuntu 团队展示了由 Flutter 重写的早期新安装程序的演示,这对于Canonical 来说,它们可以在各种硬件配置上提供稳定而又优美的体验,而展望未来,Flutter是 Canonical 创建的未来 desktop 和移动应用程序的默认选择。

其次微软正在继续扩大对 Flutter 的支持,除了对 Flutter 提供高质量的 Windows 支持外,今天微软还将发布对 Flutter 引擎以支持新兴的可折叠 Android 设备的支持。这些设备引入了新的设计模式,其应用程序可以扩展内容或利用双屏特性提供并行体验。在 Surface 工程团队的博客文章中展示了他们的成功。

最后是汽车制造商丰田汽车宣布了其计划:通过 Flutter 构建其信息娱乐系统,将最佳的数字体验带入车辆。

使用 Flutter 标志着与过去开发车载软件的方式大相径庭,丰田之所以选择 Flutter 是因为其高性能和经验的一致性,快速的迭代和开发人员的人机工程学以及智能手机层的触摸机制,通过使用 Flutter 的 embedder API,Toyota 可以针对车载系统的独特需求量身定制Flutter。

我们很高兴继续与丰田和其他公司合作,将 Flutter 应用于汽车,电视和其他嵌入式设备,我们希望在未来几个月中分享更多示例。

不断发展的Flutter生态系统

现在,有超过 15,000 个 Flutter 和 Dart 软件包:来自 AmazonMicrosoftAdobeAlibabaeBaySquare 等公司;关键包支持如:LottieSentrySVG,以及 Flutter Favorite 软件包如: sign_in_with_applegoogle_fontsgeolocatorsqflite 等。

今天,我们宣布推出 Google 移动广告 Flutter 的测试版,这是一个可与 AdMob 和AdManager 配合使用的新 SDK,可提供多种广告格式,包括横幅广告,插页式广告,原生广告和奖励视频广告。

我们一直在与几个主要客户一起试用该 SDK,例如 SuaMúsica(拉丁美洲最大的独立艺术家音乐平台),现在我们准备开放 Google 移动广告 Flutter SDK 以便它能够被更广泛地采用。

这里还将宣布对Flutter插件的一些核心 Firebase 服务进行更新:AuthenticationCloud FirestoreCloud FunctionsCloud MessagingCloud StorageCrashlytics,包括对可靠的 null 安全性的支持以及对 Cloud Messaging 软件包的全面检查。

Dart: The secret sauce behind Flutter

正如前面描述的,Flutter 2 可移植到许多不同的平台和设备上,并且轻松过渡到支持 Web,桌面和嵌入式平台,这个过程很大程度上要归功于 Dart,它是针对多平台开发进行了优化的Google 编程语言。

Dart 结合了一套独特的功能来构建应用程序:

  • 毫无争议的可移植性,其编译器成为 Mobile 和 Desktop 上高性能的Intel和ARM机器代码,并为 Web 提供经过严格优化的 JavaScript 输出,相同的 Flutter 框架源代码可编译到所有这些目标。

  • 在桌面和移动设备上进行有状态热重载的迭代开发,其优秀的异步,并发模式设计的语言构造。

  • 在所有这些平台上拥有 Google 级性能,可靠的 null 安全性保证了运行时和开发过程中的null约束。

没有其他语言可以结合所有这些功能。也许这就是为什么 Dart 是GitHub上发展最快的语言之一的原因。

PS:我觉得这纯属吹水引战。

Dart 2.12 现已上市,是我们自 2.0 版以来最大的发布版本,支持 null safety。可靠的null 安全性可以消除可怕的 null 引用异常,从而在开发和运行时提供了保证。最重要的是,此功能不是一项重大更改:开发者可以按照自己的步调将其逐步添加到代码中,并可以使用迁移工具在准备就绪时再使用。

今天的更新还包括 FFI 的稳定实现,开发者可以编写基于 C 的 API 高性能代码和 Flutter 交互,用 Flutter 编写新的集成开发人员分析器工具,以及许多性能和大小上的改进,这些改进可以进一步升级代码,而无需重新编译。有关更多信息,请查看专用的Dart 2.12公告博客文章

Flutter 2: Available now

关于 Flutter 2,要说的话远远超出了在本文中可以涵盖的范围。

实际上,合并的 PR 原始列表是一个200页的文档!请访问 Flutter 2 相关的独立技术博客,以获取有关许多新功能和性能改进的信息。

我们还有一个主要的 Demo,它展示了刚才前面提到的所有内容,该样本是与位于加拿大埃德蒙顿的屡获殊荣的设计团队 gskinner 合作构建的。Flutter Folio 是一款剪贴簿应用程序,专为所有设备而设计。

小屏幕体验是专为捕获内容而设计的;大屏幕支持使用台式机和平板电脑专用的习惯用法进行编辑; Web 体验是为共享而量身定制的。所有这些量身定制的经验都共享相同的代码库,该代码库是开源的。

如果你还没有尝试过 Flutter,建议你赶紧试试,它会对你的应用程序开发体验来会是一次重大升级。在 Flutter 中提供了一个开放源代码工具包,用于通过单个代码库构建针对移动,台式机,Web和嵌入式设备的美观而快速的应用程序,这些应用程序既可以满足 Google 的苛刻需求,也可以满足我们客户的需求。

Flutter 是免费的开放源代码,我们很高兴看到开发者使用 Flutter 2 构建的优秀的应用!

文章分类
Android
文章标签