Flutter2重磅发布支持Web和桌面应用
目录
- 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,包括hamdikahloun
,CareF
和YazeedAlKhalaf
。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 软件包。关键包支持如:Lottie
,Sentry
和 SVG,以及 Flutter Favorite 软件包如: sign_in_with_apple
,google_fonts
,geolocator
和 sqflite
等。
最后,跟小伙伴们聊一聊此次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和桌面应用相关推荐
- Flutter现支持Web和桌面,一跃成为前沿大一统框架,【面试必备】
★ 新增黄金文件测试(GoldenFile):"黄金图像"术语指的是主图像文件,也就是你选择要进行测试的组件,状态,应用程序或其他可视表示形式的真实呈现.在Flutter 1.12 ...
- “精耕细作”桌面云市场的锐捷,重磅发布三擎云桌面
编辑 | 宋 慧 出品 | CSDN云计算 头图 | 付费下载于IC photo 在教育行业VDI与桌面云具有优势的锐捷,仍在不断扩充自身技术与产品方案的实力. 6月30日,锐捷正式对外发布新一代云桌 ...
- Flutter 2.0 发布 | 针对 Web,移动端和桌面端构建的下一代 Flutter
Flutter 2.0 发布 | 针对 Web,移动端和桌面端构建的下一代 Flutter 英文原文地址:https://developers.googleblog.com/2021/03/annou ...
- Google Flutter 一统移动、Web、桌面、嵌入式江湖!
[CSDN 编者按]尽管大洋彼岸正如火如荼的 Google I/O 向全世界宣告 Google All in 了 AI,但在国内开发者群体中最引爆的却是这样两点: Kotlin First!Googl ...
- 最新!MongoDB 重磅发布 MongoDB 5.0 和无服务器 Atlas
2021年7月14日,全球领先的现代通用数据库平台MongoDB(NASDAQ代码MDB)今天在2021 MongoDB.live全球用户大会的主题演讲中,发布了一系列变革性的产品增强功能.重磅发布支 ...
- Flutter2.0重磅发布!带你一文打尽Flutter Engage
3月4日凌晨,FlutterEngage活动以在线的方式举行.整场活动内容丰富,精彩不断,下面淘系技术专家就带您回顾下这场年度Flutter技术的盛宴. ▐ Flutter2.0 整场活动中,最令人 ...
- 阿里巴巴宣布架构调整;英伟达放大招!重磅发布 TensorRT 7 ,支持超千种计算变换;苹果、谷歌和亚马逊罕见结盟……...
戳蓝字"CSDN云计算"关注我们哦! 嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周五第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧 ...
- 要闻君说:谷歌云重磅发布两大技术平台;以后可以打飞滴了?SAP重组动荡;微软宣布 Azure Functions 支持 Java...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- 【云周刊】第175期:终于来了!重磅发布:阿里云负载均衡SLB率先支持IPv6!
本期头条 终于来了!重磅发布:阿里云负载均衡SLB率先支持IPv6! IPv6的设计初衷是用以解决IPv4地址枯竭问题,同时对IPv4进行大量改进,并最终取代IPv4.然而由于NAT等技术的广泛应用, ...
最新文章
- Python全栈Day 15部分知识点
- [C#反射]C#中的反射解析及使用.
- No module named 'MySQLdb'
- python模拟sed在每行添加##
- 问题 1076: 内部收益率
- 基于墨刀实现的短视频分享软件原型设计
- MIP 脚本域名地址变更公告
- MIT黑科技:无需视觉输入,立体声音频+摄像机元数据即可实现移动车辆定位
- 【剑指offer】八皇后问题
- java1.8 64_jdk 1.8 64位 官方版
- 算法:狐狸吃兔子问题(约瑟环)
- Ubuntu20.04安装yum
- 深入剖析Kubernetes:容器编排与 Kubernetes 核心特性剖析
- 袁斌:极空间家庭私有云,您的数字资产大管家
- Javascript(JS) leetcode 954. 二倍数对数组
- Day 9 : Spring框架网易云课堂教程1~22
- JavaScript中数组的创建方式及数组常用方法
- iOS App主题皮肤切换功能简介和具体实现详解 附有源码
- MINTEL-重启零售:线上加实体——附下载链接
- 程序媛人生——专访“龙书”《编译原理》联合作者 Monica S. Lam
热门文章
- 基于FPGA音乐播放器硬件电路设计
- 提示“请输入有效值,两个最接近的有效值为0,1”问题
- 烤仔观察 | Beeple 的局中局中局
- windows不是正版_国人为什么不买正版,而喜欢“破解”软件?终于找到原因了...
- 轻量、功能强大的代理服务器工具
- 蚂蚁金服FreeLine使用
- adis16448与MPU6050 无人机飞行对比测试
- [SIM]MT6572在研发过程中,突然不识别SIM2
- 小米游戏本(7代)开箱
- 【python】又拍云采集工具助手exe带python图片采集源码