最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    正文概述 掘金(Sunbreak)   2021-03-15   803

    什么是Flutter 2.0?

    3月3日,Flutter Engage举行了一场活动,这是谷歌为了庆祝Flutter新版本的到来而举办的,Flutter是一个跨平台框架,负责超过15万个iOS和Android应用,其中一些应用的用户数超过150M+。

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    想知道Flutter 2.0是什么?也许你想回顾一下Flutter Engage的情况,或者你已经错过了一些开幕式?在这篇文章中,我们将解释为什么2.0版本已经宣布,它带来了哪些突破性的变化,以及它们如何影响你当前的应用程序和未来的项目。最后但并非最不重要的是,我们将与您分享关于所有这些变化对Flutter的未来意味着什么的更深入的见解。

    支持6+平台

    Flutter 2.0将真正的跨平台开发带到了一个新的高度。在Flutter Engage期间,Google宣布他们最近在研究的4个新平台都发布了稳定版。Flutter for Web已经晋升为稳定版,这也算是在社区的预料之中,你可能在我们对2021年的期望中读到过。更重要的是,Windows、Linux和MacOS的Flutter桌面版也以早期发布的旗号晋升到了稳定频道。这是一个很大的惊喜,因为这不仅需要巨大的努力,还需要新的Flutter合作伙伴的健全支持。微软和Linux,这里的代表是Canonical--Ubuntu的发行商。你会在本文后面找到更多关于这些平台更新的内容。

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    健全的空安全确认

    从技术角度来看,主要的变化是确认了健全的空安全,这是一个数学证明,任何对象引用都不会有空值或无效值。这意味着Flutter早期所欠下的技术债已经全部还清,它为更快、更可靠的开发铺平了道路。

    Flutter中超过15万个应用

    Flutter Engage也是一个很好的时机,展示了一些谷歌在Flutter上认真做事的证据。他们不仅提到了与微软和Ubuntu的新战略合作,还展示了丰田新的嵌入式汽车系统,并提供了自己用Flutter重建的应用的优秀案例,其中Google Pay的用户数高达150M+,位居第一。

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    Flutter Web已稳定

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    2019年12月,我们看到web支持进入Flutter测试频道。今天,web与其他5个平台一起进入稳定状态。这意味着您可以在安装Flutter 2.0后直接使用Flutter Web,而无需任何额外的工作。最新版本的准备重点是三个重要的应用场景。

    • PWAs - 渐进式网络应用
    • SPA - 单页应用
    • 为现有的Flutter应用程序添加网络支持。

    关于这个版本,已经做了很多web相关的工作,但这里有一些关键要素可以带你了解一下。

    • CanvasKit渲染器--允许Flutter网络应用使用高性能的Skia+WebAssembly引擎进行渲染。
    • PWA支持--这意味着自动生成清单文件和服务工作者设置。
    • 键盘快捷键现在可以自动用于滚动--这也适用于桌面应用程序。
    • 最流行的Flutter插件更新为与web一起工作--例如image_picker、google_maps和一些Firebase包。
    • URL策略--解决网络上已知的URL问题,也允许为URL建立自定义策略。
    • 新Srollbar--修正和更新,允许交互、主题和自定义滚动条。
    • 桌面可访问性--Flutter生成一个语义DOM树,允许使用VoiceOver或TalkBack等可访问性工具。这也为Flutter网络应用添加了屏幕阅读器支持。
    • 现代浏览器支持--Flutter团队不断确保所有的功能和修复在所有的现代浏览器上得到支持。
    • 新的文本渲染器--全新的基于画布的文本渲染器显著提高了网络上的文本支持。这包括丰富的文本和浏览器功能,如选择、复制、粘贴和自动填充,现在也支持在Flutter Web应用程序中。

    桌面平台稳定的早期版本标志

    这颇让人意外。Flutter团队决定宣布在所有桌面平台上实现稳定。

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    这意味着,一个产品团队可以负责最复杂产品的所有数字界面。为什么我们把这个公告称为一个大惊喜呢?这主要是因为这些不同平台上的工作是复杂的,完全独立的,有着不同的路线图和进度。一年前,MacOS的支持被认为是平台中最先进的,因为它受益于广泛的iOS支持,其alfa版本已经在2019年12月的前一次重要产品活动Flutter Interact期间发布。当时Windows和Linux都处于起步阶段,在2020年中期,Canonical发布了一些初步的公开声明,启用了Ubuntu桌面支持。微软之前也在提及潜在的合作,但合作规模仅限于对Surface Duo的支持,而Flutter Engage的公布则为Windows官方支持背后的努力提供了新的线索。Flutter Desktop应该还算是一个候选版本,或者像Google所说的 "测试版快照",但微软和Canonical的官方支持可以让它真的很快就能定型。 Flutter Linux版本发布的同时,还发布了一些额外的公告。Flutter正式成为未来Ubuntu上运行的应用的头号UI工具,从而将基于社区的主题套件Yaru引入Flutter。

    双屏和可折叠的革命

    与微软的合作不仅限于对Windows Flutter版本的支持。两家科技巨头在微软有史以来第一款运行Android系统的设备Surface Duo发布期间合作,最新版本已于3月1日公布。在Flutter Engage期间,微软发布了一些主要的拉动请求,使这些复杂设备的支持。鉴于最近在BUILD 2020期间宣布的.NET多平台应用用户界面(MAUI),这是基于Xamarin Forms--来自微软世界的Flutter竞争对手,这一步相当意外。这种支持也意味着其他制造商,如三星,现在可以利用这一升级帮助Flutter成为可折叠设备的新标准,这对于想要独立支持它们的设计师和开发人员来说是非常苛刻的。

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    你可以在最近的微软帖子中阅读更多关于对铰链和折叠类型设备的支持。

    Flutter Folio

    随着Flutter(MacOS、Windows和Linux)官方对Web和桌面应用支持的出现,我们可以看到一种新的应用类型即将出现--平台自适应应用。在这种应用中,开发者需要考虑每个平台的规范、用户期望、输入设备和习惯。来自GSkinner的开发者准备了一个展示应用,证明现在可以编写一个支持所有六大平台的Flutter应用--Flutter Folio。我们已经习惯了应用应该支持不同平台的不同屏幕尺寸和布局。这款应用的新鲜之处在于,它还允许我们使用特定平台的功能,比如桌面应用的键盘快捷键、鼠标滚轮缩放和右键菜单,平板电脑的多选或手机上的摄像头。这款应用是开源的,你可以在这里找到它的源代码。

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    不仅仅是6个平台--Flutter Embedded for AGL。

    Flutter的支持超越了普通平台。今天Tim Sneath宣布与丰田合作,丰田决定使用Flutter打造下一代汽车信息娱乐系统(车载娱乐)。他们之所以决定使用Flutter,是因为它保证了对驾驶员体验的控制,这对汽车制造商来说至关重要。高性能、智能手机级的触控机制、开发经验和更快的反馈循环是其他被提及的论点。这一切促使丰田团队使用Embedder API为AGL构建Flutter支持,AGL是汽车级Linux的缩写。AGL是一个专门针对汽车应用的Linux发行版,于2012年推出,创始成员包括捷豹路虎、日产、丰田、DENSO公司、富士通、哈曼、NVIDIA Renesas、三星和德州仪器(TI)。作为一个开源项目,类似于微软和Foldable设备的情况,如果丰田遵守承诺,向社区开放,这可以为整个汽车行业树立标准。

    Dart升级

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    Flutter 2.0与Dart 2.12同步推出,为开发者体验带来了很多令人兴奋的功能。最重要的可能是期待已久的稳定版健全的空安全(也称为NNBD--默认情况下的非空性)。另一个来到稳定版的功能是FFI--外函数接口,它是在Dart 2.5中引入的,但现在已经成熟到可以宣布稳定版了。FFI实现了与C库的互操作性,这意味着你可以在你的Flutter应用程序中使用像OpenCV这样的低级别的东西。

    空安全

    Dart中的空值安全意味着几件事。首先,它使你声明的每一个变量都是不可空值类型,除非你明确指出它可以是空值。这是一个非常重要的事实,因为它使你当前的代码默认为非空值。然而,这样的改变对目前的代码库有非常大的影响,因为它是事情工作方式的一个重大枢纽。这就是为什么你的代码在使用这个新特性的时候很可能无法编译的原因。幸运的是,Flutter团队意识到了这个问题,并准备了迁移到null安全的解决方案。Flutter docs上有一个官方的迁移指南。另外,Dart团队已经决定还不自动启用null safety,它会在大部分包生态系统成功迁移后发生。如果你现在想使用null safety,请使用dart migrate并查看指南了解详情。

    空值安全的另一个好处是对Dart编译器来说是一个非常有价值的约束条件。编译器可以更好地优化你的代码,如果它不需要检查所有地方的空值。这意味着你的应用在代码中使用空值安全时,速度甚至比以前更快。这些优化还可以从应用大小的减少中看出。当使用flutter-sizeopt工具优化Flutter应用大小时,Google Pay应用的代码大小减少了14%。

    Null安全不仅包含了开发者的体验和应用性能,也意味着Dart未来的很多可能性。有一些功能是社区期待已久的,比如数据类。有了这个关键的null-safety功能,Dart团队可以用更好的方式来处理这些建议。另外,正如Bob Nystrom在主题演讲中所说,团队希望改进元编程功能,现在主要是通过使用代码生成来解决(如freezed或json_serializable)。官方路线图中提到了类型别名、静态元编程(如Rust或Swift中)和通用元数据注释。

    新的Dart更新也带来了一些小的改进,比如新的UTF-8解码器,比以前快了20倍。

    工具更新

    Flutter Engage期间公布的另一大亮点是新的工具功能。工具是开发体验中非常重要的一部分,而Flutter在这方面的表现也非常出色。这次也不例外--Flutter团队已经提供了一个新的flutter fix迁移工具、Dart null-safety迁移命令和对现有Dart DevTools的令人兴奋的改进。

    Flutter

    Flutter是一个不断变化的框架,所以作为一个开发者,你可能会发现自己在一个情况下,当你查看你的旧项目,并看到一个废弃警告的海洋。不用担心--现在你可以使用flutter fixdart fix。它可以通过你的代码来搜索这种快速修复分析错误,可以提交给开发人员,最终自动修复。这个也是和IDE插件集成在一起的--主题演讲中介绍了IntelliJ的支持。

    Dart空安全迁移工具

    正如在null-safety段落中已经提到的,新的Dart break变化会有一个迁移工具。如果你想尝试迁移到null-safety,你可以运行dart migrate工具。 它应该产生一个类似于这样的输出。

    [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    当你转到那个URL,你会看到新的迁移工具以Web应用程序的形式出现,它通过一个直观的用户界面引导开发者完成迁移过程,以应用变化。

    Dart DevTools更新

    为了改善开发者的体验,Dart DevTools进行了一些更新。

    直接从错误信息中检查溢出的小部件--现在你不必再自己搜索损坏的小部件了。这个变化缩短了检查溢出的小部件的过程,只需在IDE错误弹出中点击一个按钮即可。

    开发者现在也可以在布局资源管理器中看到固定大小的widget--在此之前,你只能在那里看到flex布局。 对特定的DevTools标签进行了很多小的改进。

    现在可以通过AdMob实现Flutter应用程序的货币化。

    新的官方广告包--google_mobile_ads已经发布了公测版。新的广告包统一了与AdMob和Ad Manager的整合。它还引入了对新的广告格式的支持,如原生广告,并通过允许嵌入到widget树中来改进横幅。以前使用firebase_admob的横幅广告只能覆盖在应用程序的内容上。使用新的包广告可以像正常的widget一样插入,它们可以滚动,并与应用的布局更好地互动。遗憾的是,虽然优化得非常好,但新包仍然使用PlatformView来渲染原生广告,这影响了应用的性能。不过,改用Flutter渲染广告,很可能至少会被广告框架政策要求使用特定平台UI元素渲染的政策阻挡一部分。

    Flutter的未来是光明的

    在Flutter Engage期间,谷歌团队没有留下任何疑问,这家科技巨头正在大力押注Flutter,在Flutter的开发上投入巨资,将现有的产品迁移到Flutter上,并带来了新的盟友,出乎意料的是,如微软,追逐着从移动、网页、桌面到新的可折叠设备和汽车等所有平台的一个应用的愿景。虽然谷歌花了几年时间才形成这种势头,但现在Flutter似乎几乎势不可挡,我们很快就会见证这一伟大愿景的实现。

    在LeanCode,我们对这一结果感到满意,也对Flutter推动产品发展的事实感到满意。如果你想了解更多关于我们使用Flutter到目前为止的经验,请查看关于在Flutter中制作前10个商业应用后的经验教训的文章。

    如果你有兴趣利用我们的12+Flutter开发者团队或其他开发与产品专家,不要犹豫,请联系我们:hello@leancode.pl。


    通过www.DeepL.com/Translator(免费版)翻译


    起源地下载网 » [Flutter翻译]Flutter 2来了:Flutter Engage之后你需要知道的一切。

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元