老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flutter 大跃进的一年,等今年你年末总结的时候,让咱们在来验证下这个预测是否应验。html
后面几天会陆续发布 Flutter 2.0 更新更加详细的内容更新,敬请关注。git
下面就让咱们看看 Flutter 2.0 都有哪些重磅更新,原文连接:https://developers.googleblog.com/2021/03/announcing-flutter-2.htmlgithub
咱们针对Web,移动端和台式机构建的下一代Flutterweb
今天,咱们宣布Flutter 2:Flutter的重大升级,使开发人员可以为任何平台建立美观,快速且可移植的应用程序。借助Flutter 2,您可使用相同的代码库将本机应用程序发布到五个操做系统:iOS,Android,Windows,macOS和Linux。以及针对Chrome,Firefox,Safari或Edge等浏览器的Web体验。Flutter甚至能够嵌入到汽车,电视和智能家电中,为环境计算世界提供最广泛和最便携式的体验。编程
咱们的目标是从根本上改变开发人员对构建应用程序的见解,而不是从您要定位的平台开始,而要从您要建立的体验开始。Flutter使您能够在品牌和设计走在前列的状况下,手工创造美好的体验。Flutter速度很快,能够将源代码编译为机器代码,可是因为咱们对有状态的热重装的支持,您仍然能够提升生产力,容许您在应用程序运行时进行更改并当即查看结果。Flutter是开放的,成千上万的贡献者添加了核心框架,并经过软件包生态系统对其进行了扩展。canvas
在今天发布的Flutter 2中,咱们将Flutter从移动框架扩展到了可移植框架,释放了您的应用程序,使其能够在各类不一样的平台上运行,而几乎没有改变。仅Play商店就已经有超过15万个Flutter应用程序,而且每一个应用程序均可以经过Flutter 2免费升级,由于它们如今能够在不重写的状况下扩展到目标台式机和Web。设计模式
来自世界各地的客户正在使用扑,包括流行的应用程序,如微信, Grab, Yandex Go, Nubank, Sonos, Fastic, Betterment and realtor.com。在Google,咱们依赖Flutter,Google的一千多名工程师正在使用Dart和Flutter构建应用程序。实际上,其中许多产品已经发货,包括Stadia,Google One和Google Nest Hub。浏览器
几个月前,Google Pay为其旗舰移动应用程序改用Flutter,他们已经在生产力和质量上取得了重大进步。经过统一代码库,该团队消除了平台之间的功能差别,并消除了超过一百万行代码。Google Pay还报告说,其工程师的效率要高得多,技术债务大大减小,统一发布流程(如跨iOS和Android的安全性审查和试验)得以实现。安全
Flutter 2中最大的公告也许是对Web的生产质量支持。性能优化
Web的早期基础是以document为中心的。可是,Web平台已发展为包含更丰富的平台API,这些API支持具备硬件加速的2D和3D图形以及灵活的布局和绘画API的高度复杂的应用程序。Flutter的Web支持基于这些创新,提供了以应用程序为中心的框架,该框架充分利用了现代Web所提供的全部优点。
此初始版本特别关注三种应用程序场景:
在过去的几个月中,在为稳定发布Web支持作准备的同时,咱们在性能优化方面取得了许多进展,添加了一个新的由WebAssembly构建的由CanvasKit驱动的渲染引擎。Flutter Plasma是由社区成员Felix Blaschke构建的演示,展现了使用Dart和Flutter构建复杂的Web图形体验的简便性,这些体验也能够在桌面或移动设备上本地运行。
咱们一直在扩展Flutter,以提供最佳的Web平台。最近几个月,咱们添加了文本自动填充功能,对地址栏URL和路由的控制以及PWA清单。并且因为台式机浏览器与移动浏览器同样重要,所以咱们添加了交互式滚动条和键盘快捷键,增长了台式机模式下的默认内容密度,并增长了屏幕阅读器对Windows,macOS和Chrome OS上可访问性的支持。
已经提供了使用Flutter构建的Web应用程序的一些示例。在教育工做者中,iRobot以其流行的Root教育机器人而闻名。Flutter对网络的生产支持使iRobot能够利用其现有的教育编程环境并将其移至网络,从而将其可用性扩展到Chromebook和其余浏览器是最佳选择的设备。iRobot的博客文章详细介绍了迄今为止的进展以及为什么选择Flutter。
另外一个例子是Rive,Rive为设计师提供了一个强大的工具,可用于建立可发布到任何平台的自定义动画。他们的更新后的Web应用程序现已在Beta中提供,彻底由Flutter构建,而且是Flutter在此环境中能够提供的全部服务的一封情书。
您能够在咱们的Medium出版物上的专用博客文章中找到有关Flutter的更多信息。
除了传统的移动设备和Web以外,Flutter愈来愈多地扩展到其余设备类型,咱们在今天的主题演讲中重点介绍了三个伙伴关系,这些伙伴关系证实了Flutter的便携性。
首先,Canonical与咱们合做将Flutter带入桌面,工程师们贡献了代码来支持Linux上的开发和部署。在今天的活动中,Ubuntu团队展现了由Flutter重写的新安装程序的早期演示。对于Canonical来讲,相当重要的是,它们能够在各类硬件配置上提供坚如磐石而又优美的体验。展望将来,Flutter是Canonical建立的将来台式机和移动应用程序的默认选择。
其次,微软正在继续扩大对Flutter的支持。除了正在进行的合做以在Flutter中提供高质量的Windows支持外,今天微软还将发布对Flutter引擎的支持,以支持新兴的可折叠Android设备。这些设备引入了新的设计模式,其应用程序能够扩展内容或利用双屏特性提供并行体验。在Surface工程团队的博客文章中,他们展现了他们的工做,并邀请其余人加入他们,共同完成适用于Surface Duo和其余设备的高质量实现。
最后,世界上最畅销的汽车制造商丰田汽车宣布了其计划,经过构建由Flutter提供动力的信息娱乐系统,将最佳的数字体验带入车辆。使用Flutter标志着与过去开发车载软件的方式截然不同。丰田之因此选择Flutter,是由于其高性能和经验的一致性,快速的迭代和开发人员的人机工程学以及智能手机层的触摸机制。经过使用Flutter的embedder API,Toyota能够针对车载系统的独特需求量身定制Flutter。
咱们很高兴继续与丰田和其余公司合做,将Flutter应用于汽车,电视和其余嵌入式设备,咱们但愿在将来几个月中分享更多示例。
如今,有超过15,000个Flutter和Dart软件包:来自Amazon,Microsoft,Adobe,Alibaba,eBay和Square等公司;到重要的软件包,如Lottie,Sentry和SVG,以及Flutter Favorite软件包,如sign_in_with_apple,google_fonts,geolocator和sqflite。
今天,咱们宣布推出Google移动广告Flutter的测试版,这是一个可与AdMob和AdManager配合使用的新SDK,可提供多种广告格式,包括横幅广告,插页式广告,原生广告和奖励视频广告。咱们一直在与几个主要客户一块儿试用该SDK,例如SuaMúsica(拉丁美洲最大的独立艺术家音乐平台),如今咱们准备开放Google移动广告Flutter SDK以便更普遍地采用。
咱们还将宣布对Flutter插件的一些核心Firebase服务进行更新:身份验证,Cloud Firestore,Cloud Functions,Cloud Messaging,Cloud Storage和Crashlytics,包括对可靠的null安全性的支持以及对Cloud Messaging软件包的全面检查。
正如咱们已经指出的,Flutter 2可移植到许多不一样的平台和外形上。轻松过渡到支持Web,桌面和嵌入式的过程很大程度上要归功于Dart,它是针对多平台开发进行了优化的Google编程语言。
Dart结合了一套独特的功能来构建应用程序:
没有其余语言能够结合全部这些功能。也许这就是为何Dart是GitHub上发展最快的语言之一的缘由。
Dart 2.12现已发布,是咱们自2.0版以来最大的发行版,支持null安全性。可靠的null安全性有可能消除可怕的null引用异常,从而在开发和运行时提供了保证,即若是开发人员明确选择,则类型只能包含null值。最重要的是,此功能不是一项重大更改:您能够按照本身的步调将其逐步添加到代码中,并可使用迁移工具在准备就绪时为您提供帮助。
今天的更新还包括FFI的稳定实现,使您能够编写可与基于C的API互操做的高性能代码。用Flutter编写的新的集成开发人员和分析器工具;以及许多性能和大小上的改进,这些改进能够进一步升级代码,而无需从新编译便可。有关更多信息,请查看专用的Dart 2.12公告博客文章。
关于Flutter 2,要说的话远远超出了咱们在本文中能够涵盖的范围。实际上,合并的合并请求的原始列表是一个200页的文档!请访问Flutter 2上的独立技术博客,以获取有关许多新功能和性能改进的信息,咱们认为这将使现有的Flutter开发人员满意,并当即下载。
咱们还有一个主要的新样本,它展现了刚才提到的全部内容,该样本是与位于加拿大埃德蒙顿的屡获殊荣的设计团队gskinner合做构建的。Flutter Folio是一款剪贴簿应用程序,专为您的全部设备而设计。小屏幕体验是专为捕获内容而设计的;大屏幕支持使用台式机和平板电脑专用的习惯用法进行编辑;网络体验是为共享而量身定制的。全部这些量身定制的经验都共享相同的代码库,该代码库是开源的,可供您阅读。
若是您尚未尝试过Flutter,咱们认为您会发现它对您的应用程序开发体验而言是一次重大升级。在Flutter中,咱们提供了一个开放源代码工具包,用于经过单个代码库构建针对移动,台式机,Web和嵌入式设备的美观而快速的应用程序,这些应用程序既能够知足Google的苛刻需求,也能够知足咱们客户的需求。
Flutter是免费的开放源代码。咱们很高兴看到您使用Flutter 2构建的东西!
老孟Flutter博客(330个控件用法+实战入门系列文章):http://laomengit.com
添加微信或者公众号领取 《330个控件大全》和 《Flutter 实战》PDF。
欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】:
![]() |
![]() |