目录

  • Flutter 2的发布
  • Flutter 2的背后
  • Flutter 2对Web的支持
  • Flutter 2对PC、可折叠以及嵌入式设备的支持
  • 不断发展的Flutter生态系统
  • 空安全

Flutter 2概述

谷歌在今日召开的一场线上活动中正式宣布了Flutter 2的发布。作为一款用于构建跨平台APP的框架,Flutter今天正式迎来了它的的第二个大版本,增加了对桌面和Web 应用程序的支持。开发者可借助 Flutter2打造开箱即用的APP,并且能够为 iOS、Android、Windows、macOS、Linux 和 Web 端套用相同的代码。

谷歌表示,开发者借助 Flutter 2 可使用同一份代码库面向 5 个操作系统(iOS, Android, Windows, macOS 和 Linux)发布原生应用,以及发布面向 Chrome, Firefox, Safari 和 Edge 等浏览器的应用。此外,Flutter 还可以嵌入到汽车、电视和智能家电中。

之所以叫Flutter2,主要归结于其对Web和桌面应用程序的支持。这是一个可以作为相当深远的支点,相信在不远的某一天Flutter将一统全栈。

Flutter的目标是从根本上改变开发人员对构建应用程序的思路,让开发者从用户体验,而不是适配的平台开始。

全球各大一二线公司都已经使用了 Flutter,包括它们的主流的应用程序如:微信,Grab,Yandex Go,Nubank,Sonos ,Fastic,Betterment 和 realtor.com等。
在 Google 内部也会使用 Flutter 开发,Google 内有近一千多名工程师正在使用 Dart 和Flutter 构建应用程序,其中许多产品都已经发布了,包括:Stadia,Google One和Google Nest Hub 等等。

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

Flutter 2 的背后

距离Flutter 1.0的发布已经两年多了,在这段时间内Flutter已经关闭了24541个issues,并合并了来自765个贡献者的17039个PR。自去年9月Flutter 1.22发布以来,陆续已经关闭了5807个issues并合并了298位贡献者的4091个PR。特别感谢我们的志愿者捐助者,他们慷慨地抽出时间来改进Flutter项目。为Flutter 2发布贡献最大的一位顶部志愿者是来自中国成都的xu-baolin,它提交了46个PR。另外,除了PR的贡献者之外还有一大批志愿者PR评审人员,评审了1525个PR,包括hamdikahlounCareFYazeedAlKhalaf。Flutter确实是社区的一项工作,如果没有问题提出者,PR贡献者和代码审查者,就不可能有Flutter 2。

Flutter 2对Web的支持

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

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

Tips:Flutter团队中有不少是开发Chrome浏览器的开发人员。

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

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

Flutter开发团队表示,Flutter 2 有意为 Web 平台提供了非常标准的、以 DOM 为中心的开发方式。尽管效果不错,这么做也可能带来性能方面的阻碍(尤其是更高级的功能)。
在过去的几个月中,在为稳定发布 Web 支持做准备的同时,Flutter也在性能优化方面取得了许多进展,比如添加了一个由 WebAssembly 构建的 CanvasKit 驱动渲染引擎。

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

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

Tips:Flutter对桌面应用程序支持仍处于相对早期的阶段,但 Web 支持已经从 Beta 测试顺利转正。

Flutter 2对PC、可折叠以及嵌入式设备的支持

这次发布会上Flutter还介绍了Flutter生态中的小伙伴:Canonical、微软、丰田:

  • Canonical 与Google合作将 Flutter 带入 desktop ,开发者贡献了许多代码来支持在Linux 上的开发和部署Flutter;展望未来Flutter是 Canonical 创建的未来 desktop 和移动应用程序的默认选择;

  • 微软正在继续扩大对 Flutter 的支持,除了对 Flutter 提供高质量的 Windows 支持外,今天微软还将发布对 Flutter 引擎以支持新兴的可折叠 Android 设备的支持。

    • 这些设备引入了新的设计模式,其应用程序可以扩展内容或利用双屏特性提供并行体验。
  • 汽车制造商丰田汽车宣布通过 Flutter构建其信息娱乐系统,将最佳的数字体验带入车辆。

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

不断发展的Flutter生态系统

截至目前Flutter生态中已迎来包括亚马逊、微软、Adobe、华为、阿里巴巴、腾讯、eBay、Square 等公司贡献的超过 1.5 万个 Flutter / Dart 软件包。关键包支持如:LottieSentry和 SVG,以及 Flutter Favorite 软件包如: sign_in_with_applegoogle_fontsgeolocatorsqflite 等。

最后,跟小伙伴们聊一聊此次Flutter版本的发布对大家影响最大的一个功能:空安全。

空安全

空安全性是Dart语言的重要补充,它通过区分可空类型和非可空类型进一步增强了类型系统。这使开发人员能够防止null错误崩溃,这是应用程序崩溃的常见原因。通过将空检查合并到类型系统中,可以在开发过程中捕获这些错误,从而防止生产崩溃。从Flutter 2开始,包含Dart 2.12的稳定版完全支持声音无效安全性

pub.dev软件包存储库已经发布了1000多个空安全软件包,其中包括Dart,Flutter,Firebase和Material团队的数百个软件包。

由于Flutter 2基于Dart的空安全版本,这会导致pub.dev上一大批没有适配空安全的插件出现无法运行在Flutter 2上,所以:如果你想将已有已有升级到Flutter 2那么首先需要确保项目中所依赖的插件是否有对应的空安全的版本,如果你是Flutter包的开发者,那么请尽快将你的包迁移到支持空安全的Dart版本

扩展阅读

  • Flutter 2.0 release notes
  • Announcing Flutter 2
  • What’s New in Flutter 2

Flutter2重磅发布支持Web和桌面应用相关推荐

  1. Flutter现支持Web和桌面,一跃成为前沿大一统框架,【面试必备】

    ★ 新增黄金文件测试(GoldenFile):"黄金图像"术语指的是主图像文件,也就是你选择要进行测试的组件,状态,应用程序或其他可视表示形式的真实呈现.在Flutter 1.12 ...

  2. “精耕细作”桌面云市场的锐捷,重磅发布三擎云桌面

    编辑 | 宋 慧 出品 | CSDN云计算 头图 | 付费下载于IC photo 在教育行业VDI与桌面云具有优势的锐捷,仍在不断扩充自身技术与产品方案的实力. 6月30日,锐捷正式对外发布新一代云桌 ...

  3. Flutter 2.0 发布 | 针对 Web,移动端和桌面端构建的下一代 Flutter

    Flutter 2.0 发布 | 针对 Web,移动端和桌面端构建的下一代 Flutter 英文原文地址:https://developers.googleblog.com/2021/03/annou ...

  4. Google Flutter 一统移动、Web、桌面、嵌入式江湖!

    [CSDN 编者按]尽管大洋彼岸正如火如荼的 Google I/O 向全世界宣告 Google All in 了 AI,但在国内开发者群体中最引爆的却是这样两点: Kotlin First!Googl ...

  5. 最新!MongoDB 重磅发布 MongoDB 5.0 和无服务器 Atlas

    2021年7月14日,全球领先的现代通用数据库平台MongoDB(NASDAQ代码MDB)今天在2021 MongoDB.live全球用户大会的主题演讲中,发布了一系列变革性的产品增强功能.重磅发布支 ...

  6. Flutter2.0重磅发布!带你一文打尽Flutter Engage

    3月4日凌晨,FlutterEngage活动以在线的方式举行.整场活动内容丰富,精彩不断,下面淘系技术专家就带您回顾下这场年度Flutter技术的盛宴. ▐  Flutter2.0 整场活动中,最令人 ...

  7. 阿里巴巴宣布架构调整;英伟达放大招!重磅发布 ​TensorRT 7 ,支持超千种计算变换;苹果、谷歌和亚马逊罕见结盟……...

    戳蓝字"CSDN云计算"关注我们哦!  嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周五第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧 ...

  8. 要闻君说:谷歌云重磅发布两大技术平台;以后可以打飞滴了?SAP重组动荡;微软宣布 Azure Functions 支持 Java...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  9. 【云周刊】第175期:终于来了!重磅发布:阿里云负载均衡SLB率先支持IPv6!

    本期头条 终于来了!重磅发布:阿里云负载均衡SLB率先支持IPv6! IPv6的设计初衷是用以解决IPv4地址枯竭问题,同时对IPv4进行大量改进,并最终取代IPv4.然而由于NAT等技术的广泛应用, ...

最新文章

  1. Python全栈Day 15部分知识点
  2. [C#反射]C#中的反射解析及使用.
  3. No module named 'MySQLdb'
  4. python模拟sed在每行添加##
  5. 问题 1076: 内部收益率
  6. 基于墨刀实现的短视频分享软件原型设计
  7. MIP 脚本域名地址变更公告
  8. MIT黑科技:无需视觉输入,立体声音频+摄像机元数据即可实现移动车辆定位
  9. 【剑指offer】八皇后问题
  10. java1.8 64_jdk 1.8 64位 官方版
  11. 算法:狐狸吃兔子问题(约瑟环)
  12. Ubuntu20.04安装yum
  13. 深入剖析Kubernetes:容器编排与 Kubernetes 核心特性剖析
  14. 袁斌:极空间家庭私有云,您的数字资产大管家
  15. Javascript(JS) leetcode 954. 二倍数对数组
  16. Day 9 : Spring框架网易云课堂教程1~22
  17. JavaScript中数组的创建方式及数组常用方法
  18. iOS App主题皮肤切换功能简介和具体实现详解 附有源码
  19. MINTEL-重启零售:线上加实体——附下载链接
  20. 程序媛人生——专访“龙书”《编译原理》联合作者 Monica S. Lam

热门文章

  1. 基于FPGA音乐播放器硬件电路设计
  2. 提示“请输入有效值,两个最接近的有效值为0,1”问题
  3. 烤仔观察 | Beeple 的局中局中局
  4. windows不是正版_国人为什么不买正版,而喜欢“破解”软件?终于找到原因了...
  5. 轻量、功能强大的代理服务器工具
  6. 蚂蚁金服FreeLine使用
  7. adis16448与MPU6050 无人机飞行对比测试
  8. [SIM]MT6572在研发过程中,突然不识别SIM2
  9. 小米游戏本(7代)开箱
  10. 【python】又拍云采集工具助手exe带python图片采集源码