Flutter 2 正式发布!

浩浩 等级 370 0 0

昨天凌晨,Flutter 2 正式发布: 开发者为_任何_平台创建美观、快速且可移植应用的能力得以更上一层楼。通过 Flutter 2,您可以使用相同的代码库为五种操作系统构建原生应用: iOS、Android、Windows、macOS 和 Linux;以及为 Chrome、Firefox、Safari 和 Edge 等浏览器打造 web 体验。Flutter 甚至可以嵌入到汽车、电视和智能家电,为环境计算提供最普适、可移植的体验。

Flutter 2 正式发布!

我们的目标是_从根本上改变_开发者的应用构建思路,让体验先于平台。Flutter 可以让您尽情雕琢精美的应用体验,畅快表达自己的品牌和设计风格。Flutter 可以将您的源代码编译为机器码,并快速运行,同时借助有状态热重载功能为您带来了解释环境的高效生产力,让您可以在应用运行时做出更改并立即查看结果。而且 Flutter 是开源的,有成千上万的贡献者在为核心框架添砖加瓦,并围绕其打造了包含海量 package 的生态系统。

Flutter 2 正式发布!

在发布的 Flutter 2 中,我们将 Flutter 从移动框架扩展为可移植框架,让您的应用基本可以不加变动地在多种平台上运行。仅 Google Play 商店就已有超过 15 万款 Flutter 应用,而现在应用可以在无需重写的情况下部署到桌面设备和 web 平台,可以说每款应用都通过 Flutter 2 得到 "免费升级"。

世界各地的用户都在使用 Flutter,包括 WeChat、Grab、Yandex Go、Nubank、Sonos、Fastic、Betterment 和 realtor.com 等热门应用。Flutter 在 Google 也是备受依赖的重要工具,我们有一千多名工程师正在使用 Dart 和 Flutter 构建应用。许多产品已经发布,包括 Stadia、Google One 和 Google Nest Hub。

Flutter 2 正式发布!

几个月前,Google Pay 改用 Flutter 打造其旗舰移动应用,在生产力和质量上取得重大进步。通过统一代码库,团队消除了平台之间的功能差异,精简了超过 50 万行代码。Google Pay 还表示,其工程师效率大幅提高,技术债务显著减少,并在 iOS 和 Android 系统上统一了安全审查和实验等发布流程。

Flutter web 支持

也许 Flutter 2 带来的最重大的进展是在 web 平台达到了稳定版

Web 的早期基础以文档为中心。但 web 平台经过发展,所包含的平台 API 也越发丰富,已实现高度复杂的应用,支持硬件加速 2D 和 3D 图形以及灵活的布局和绘画 API。Flutter 的 web 支持建立在这些创新的基础上,提供了一个以应用为中心**的框架**,能充分展现现代 web 的所有优势。

这次发布带来的初始版本特别关注三种应用场景:

  • 渐进式 web 应用 (Progressive web apps, PWA),兼具 web 的高覆盖面与桌面应用的强大功能。

  • 单页应用 (Single page apps, SPA),只需加载一次即可与互联网服务互传数据。

  • 将现有 Flutter 移动应用带到 web,使两种体验共享代码。

在过去几个月准备发布稳定版 web 支持的过程中,性能优化方面也取得了许多进展,增加了由 WebAssembly 构建的由 CanvasKit 驱动的新渲染引擎。Flutter Plasma 是由社区成员 Felix Blaschke 构建的演示,展示了使用 Dart 和 Flutter 构建复杂 web 图形体验的便利性,而且这些体验也可以在桌面或移动设备上原生运行。

我们不断扩展 Flutter,力求为大家提供 web 平台最棒的功能。最近几个月,我们增加了文本自动填充、地址栏 URL 和路由控制以及 PWA 清单。由于桌面浏览器与移动浏览器同样重要,我们添加了交互式滚动条和键盘快捷键,提升了桌面模式下的默认内容密度,并为 Windows、macOS 和 Chrome OS 增加了屏幕阅读器无障碍功能支持。

目前已经出现了一批使用 Flutter 构建的 web 应用示例。在教育工作者中,iRobot 以其广受欢迎的 Root 教育机器人而闻名。Flutter 在 web 平台对生产环境的支持,使 iRobot 能够将现有的教育编程环境搬到 web 上,从而覆盖到了 Chromebook 以及其他以浏览器为主要体验的设备。iRobot 的博文详尽阐述了选择 Flutter 的理由以及使用情况。

Flutter 2 正式发布!

另一个例子是 Rive,他们为设计师打造的强大工具可以将创建的自定义动画发布到任意平台。其新版 web 应用完全由 Flutter 构建,现已进入 Beta 阶段,这也是 web 平台最能展现 Flutter 特色的体验之一。

Flutter 2 正式发布!

您可以从 Flutter web 发布文章中了解更多信息。

桌面、可折叠和嵌入式设备上的 Flutter 2

除了传统的移动设备和 web 之外,Flutter 正越来越多地覆盖到其他类型设备。Flutter Engage 主题演讲中重点介绍了三位合作伙伴,以展示 Flutter 的可移植性。

第一位合作伙伴,Canonical 与我们联手将 Flutter 带到桌面,Canonical 工程师贡献的代码使得 Flutter 开发者能在 Linux 上进行开发和部署。在活动中,Ubuntu 团队展示了使用 Flutter 重写的新安装程序的早期演示版。对 Canonical 来说,在多种硬件配置上提供稳如磐石且美妙的体验至关重要。未来,Flutter 将成为 Canonical 打造桌面和移动应用的首选

Flutter 2 正式发布!

第二位合作伙伴 Microsoft 正在继续扩大对 Flutter 的支持。除了持续与我们合作为 Flutter 提供高质量的 Windows 支持外,Microsoft 还发布了对 Flutter 引擎的贡献: 支持新兴的可折叠 Android 设备。这些设备带来了新的设计模式,应用可以扩展内容,或者利用双屏特性提供窗口并排体验。Surface 工程团队在一篇博文中展示了其工作成果,并邀请大家加入他们的行列,共同完成适用于 Surface Duo 和其他设备的高质量解决方案。

Flutter 2 正式发布!

第三位合作伙伴,全球畅销汽车制造商之一 Toyota 宣布,计划构建由 Flutter 驱动的信息娱乐系统,打造最佳的汽车数字体验。使用 Flutter 标志着车载软件的开发方式向着未来迈进了一大步。Toyota 之所以选择 Flutter,是因为其高性能和体验的一致性,快速迭代的能力和极高的开发者工效,以及智能手机级别的触控体验机制。通过使用 Flutter 的嵌入器 API,Toyota 能够根据车载系统的独特需求对 Flutter 进行定制。

Flutter 2 正式发布!

我们很荣幸与 Toyota 等合作伙伴继续深入协作,将 Flutter 带到汽车、电视和其他嵌入式设备中,在未来几个月我们会为大家带来更多这方面的示例。

持续发展的 Flutter 生态系统

目前,Flutter 和 Dart 有超过 15,000 个 package: 包括 Amazon、Microsoft、Adobe、Alibaba、eBay 和 Square 等企业 package,Lottie、Sentry 和 SVG 等关键 package,以及 sign_in_with_apple、google_fonts、geolocator 和 sqflite 等 Flutter Favorite package。

我们也为 Flutter 带来了 Google Mobile Ads Beta 版,这款全新 SDK 通过 AdMob 和 AdManager 提供多种广告格式,包括横幅式、插页式、原生和激励视频广告。我们之前已经邀请了一些主要客户 (比如拉丁美洲最大的独立艺术家音乐平台 Sua Música) 先行体验此 SDK,现在计划开放 Google Mobile Ads 供更多的 Flutter 开发者采用。

Flutter 2 正式发布!

我们还更新了几项核心 Firebase 服务的 Flutter 插件: Authentication、Cloud Firestore、Cloud Functions、Cloud Messaging、Cloud Storage 和 Crashlytics,包括对健全空安全的支持以及对 Cloud Messaging package 的全面改版。

Dart: Flutter 背后的秘诀

如前所述,Flutter 2 可以移植到许多不同的平台和设备上。之所以能轻松过渡到支持 web、桌面和嵌入式设备,这在很大程度上要归功于 Dart,它是 Google 为多平台开发优化的编程语言。

Dart 为构建应用提供了一套独特的功能:

  • 无意外的可移植性,编译器可为移动和桌面设备生成高性能的 Intel 和 ARM 机器代码,并为 web 输出严密优化过的 JavaScript。相同的 Flutter 框架源代码可编译到所有这些目标平台。

  • 在桌面和移动设备上进行有状态热重载的迭代开发,以及为现代界面编程的异步、并发模式设计的语言结构。

  • 全平台一致的 Google 级性能,健全空安全保证了运行时以及开发时的空约束。

没有其他语言可以同时提供这些功能,也许这就解释了为什么 Dart 能成为 GitHub 上发展最快的语言之一。

我们同期发布的 Dart 2.12 是自 2.0 以来最重大的版本更新,支持健全的空安全。健全的空安全能扫除令人头疼的空引用异常,除非开发者明确允许,否则类型在开发时和运行时不可能包含空值。最重要的是,此功能并非重要改动 (breaking change): 您可以按照自己的节奏将空安全逐步添加到代码中,我们也准备好了迁移工具,您可以在准备好之后使用它完成迁移。

这一版本的更新还包括: FFI 的稳定版本,让您可以编写出高性能的代码与基于 C 语言的 API 进行互操作;使用 Flutter 编写的新的集成开发者和性能剖析器工具;以及许多性能改进和尺寸优化,只需重新编译即可让代码得到长足的改进。如需了解详细信息,请查看 Dart 2.12 发布文章。

即刻体验 Flutter 2

在介绍 Flutter 2 时,本文由于篇幅限制难免挂一漏万。事实上,被合并的 PR (pull request) 清单就有足足 200 页!请阅读 Flutter 2 技术博文,里面介绍了更多新功能和性能改进,我们认为会让 Flutter 开发者感到满意,也请大家立即下载 Flutter 2 开始体验。

Flutter 2 正式发布!

我们还为大家准备了一款全新的示例应用,Flutter Folio,由我们与加拿大埃德蒙顿的获奖设计团队 gskinner 合作完成,这个示例展示了我们刚刚提到的一切内容。Flutter Folio 是一款能在您所有的设备上运行的剪贴簿应用。在小屏幕上体验时会强调展示内容;而在大屏幕上体验时则支持以桌面和平板电脑的习惯用法进行内容编辑;web 体验则着重强调分享。这些定制化的体验都共享相同的开源代码库,可供您自由浏览。

Flutter 2 正式发布!

如果您尚未尝试过 Flutter,我们相信它将为您的应用开发体验带来巨大的提升。Flutter,一个开源工具包,让您通过单一代码库为移动、桌面、web 和嵌入式设备打造美观、快速的应用,让您即便是在面对 Google 和广大用户的苛刻需求时也能游刃有余。

而且 Flutter 是免费和开源的。您会使用 Flutter 2 构建怎样精彩的应用呢?我们拭目以待!

Flutter 2 正式发布!


推荐阅读

Flutter 2 正式发布!

Flutter 2 正式发布!

Flutter 2 正式发布!

Flutter 2 正式发布! 点击屏末 *| * |** **访问 Flutter 开发者社区中文资源


Flutter 2 正式发布!

Flutter 2 正式发布!

Flutter 2 正式发布!

本文转自 https://mp.weixin.qq.com/s/tJe2ScLgKWFTybpBtDl2TA,如有侵权,请联系删除。

收藏
评论区

相关推荐

flutter -- dart基础之dart简介和安装
Dart介绍: Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用 和物联网等领域的开发。 Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。 要学Flutter的话我们必须首先得会Dart。 da
Dart | 浅析dart中库的导入与拆分
前言 最近十分热门的跨平台框架使用了一门比较生僻的编程语言dart。dart语言本身深受早期一些编程语言的影响。特别是Smalltalk,Java和JavaScript。我是从Java语言向dart过度的,一开始感觉很不错,快速就对这门语言有了一个初步的认识,并能够写小段代码了。 但在flutter的不断学习过程中,我遇到了不少因为dart的一些语
震惊!!Flutter 2 来了!
{{{width300}}} 作者 | Flutter 官方博客 译者 | 核子可乐 策划
Flutter 2 正式发布!
昨天凌晨,Flutter 2 正式发布: 开发者为_任何_平台创建美观、快速且可移植应用的能力得以更上一层楼。通过 Flutter 2,您可以使用相同的代码库为五种操作系统构建原生应用: iOS、Android、Windows、macOS 和 Linux;以及为 Chrome、Firefox、Safari 和 Edge 等浏览器打造 web 体验。Flutt
flutter 第一步 安装环境
前言 如果想开发flutter 先购买好梯子,配置好代理还是会经常出各种问题! 安装环境 java 环境安装 下载地址(https://links.jianshu.com/go?tohttps%3A%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk8down
Flutter如何引用第三方库并使用
Flutter官网点击访问(https://link.jianshu.com/?thttps%3A%2F%2Fflutter.io) 如何引用并安装第三方库 pubspec.yaml管理第三方库 在pubspec.yaml中添加第三方库名称及版本号。 例如添加第三方库english_words dependencies: flut
可以用Flutter愉快的开发web 了
简单的试了一下,完全用flutter现有的widget进行开发。github上面有说现在是preview版本,有些widget还不能用。但是最终是会支持整个的flutter现有的UI的。 跟用flutter开发原生app一样。flutter_web还有很长的一段路要走。希望年底能出个像样的版本。 不支持第三方库说明 目前pub.da
Flutter 2.0 下混合开发浅析
多余的前言 Flutter 2.0 发布时,其中最受大家关注之一的内容就是 AddtoApp 相关的更新,因为除了热更新之外,Flutter 最受大家诟病的就是混合开发体验不好。 为什么不好呢?因为 Flutter 的控件渲染直接脱离了原生平台,也就是无论页面堆栈和渲染树都独立于平台运行,这固然给 Flutter 带来了较好的跨平台体验
【Flutter实战】初识Flutter
1.2 初识Flutter 1.2.1 Flutter简介Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口,开发者可以很快地为 Flutter添加 native扩展。同时 Flu
【Flutter实战】调试Flutter应用
2.5 调试Flutter应用有各种各样的工具和功能来帮助调试Flutter应用程序。 Dart 分析器在运行应用程序前,请运行flutter analyze测试你的代码。这个工具是一个静态代码检查工具,它是dartanalyzer工具的一个包装,主要用于分析代码并帮助开发者发现可能的错误,比如,Dart分析器大量使用了代码中的类型注释来帮
【Flutter实战】调试Flutter应用
2.5 调试Flutter应用有各种各样的工具和功能来帮助调试Flutter应用程序。 Dart 分析器在运行应用程序前,请运行flutter analyze测试你的代码。这个工具是一个静态代码检查工具,它是dartanalyzer工具的一个包装,主要用于分析代码并帮助开发者发现可能的错误,比如,Dart分析器大量使用了代码中的类型注释来帮
【Flutter实战】Dart线程模型及异常捕获
2.6 Flutter异常捕获在介绍Flutter异常捕获之前必须先了解一下Dart单线程模型,只有了解了Dart的代码执行流程,我们才能知道该在什么地方去捕获异常。 2.6.1 Dart单线程模型在Java和ObjectiveC(以下简称“OC”)中,如果程序发生异常且没有被捕获,那么程序将会终止,但是这在Dart或JavaScript中则不会!
解读 Flutter 全平台开发的误解与偏见
Flutter 2.0 发布之后,Web 版本进入了 stable 分支,Desktop 版本也可以在 stable 分支通过 snapshot beta 镜像开始预览使用,导致最近关于 “Flutter 制霸全平台” 之类的话题又被炒作起来,所以本篇主要对这个话题做一次解答。1、Flutter 制霸全平台谷歌官方在 F
Flutter - 深入理解Flutter应用启动
基于Flutter 1.5,从源码视角来深入剖析flutter应用的启动流程,相关源码目录见文末附录一、概述上一篇文章 已经介绍了FlutterApplication和FlutterActivity的onCreate()方法执行过程, 并触发Flutter引擎的启动,并最终执行到runApp(Widget app)方法,这才刚刚开始执行dart的
Flutter - 深入理解Dart虚拟机启动
基于Flutter 1.5,从源码视角来深入剖析引擎启动中的Dart虚拟机启动流程,相关源码目录见文末附录一、概述 1.1 Dart虚拟机概述Dart虚拟机拥有自己的Isolate,完全由虚拟机自己管理的,Flutter引擎也无法直接访问。Dart的UI相关操作,是由Root Isolate通过Dart的C调用,或者是发送消息通知的方式