今天,Google发布了 Flutter 2.0的正式版本,至2018年Flutter 1.0版本发布以来,在最近的3年的时间礼,Flutter进行了大量的升级以支持更多平台的开发需求。作为 Flutter 的重大升级,Flutter 2.0 增加了对桌面和 Web 应用程序的支持。
所以到目前位置,使用 Flutter 2.0 开发的应用可以发布到iOS,Android,Windows,macOS 和 Linux五个操作系统; 以及运行到 Chrome 、 Firefo, Safari 或 Edge等浏览器的 Web 版本上,甚至嵌入到 Cars, TVs 和智能家电中。可以说,把Flutter说成是一个全平台的开发框架也不为过。
Flutter 产品负责人 Tim Sneath 表示:“版本号的大提升,主要归于对 Web 和桌面应用程序的支持。作为一个相当深远的支点,突然拥有如此广泛的产品特性,也是相当罕见的”。
得益于开放源代码的性质,Flutter 已经在 Web 和桌面应用程序的支持上公开测试了有段时间,所以我们对今日的公告也并不感到意外。
在今天发布的 Flutter 2.0 开始,Flutter 正式由一个专注于移动开发的框架扩展到了支持全平台的开发框架。使用 Flutter 2.0,开发者可以让开发应用直接运用到各种不同的平台而几乎不需要做出什么改变。
总的来说,Flutter 2.0可以归纳成如下几点:
- Flutter 2.0 是 Flutter 的重要里程碑,它的目标是着重全端开发,支持Web端、移动端和桌面端,甚至汽车、电视、智能家居设备等,细分系统包括:iOS, Android, Windows, macOS, Linux 和 Web
- Flutter 2.0 使 Play Store 上 150,000 个已有的Flutter 应用,不需重写就可以支持桌面和web端
- Flutter 2.0 对Web端的支持进入稳定阶段,经过大量优化和增加新的渲染引擎,可用于正式产品开发
- Flutter 2.0 也开始发力桌面端,将与最流行的 Ubuntu Linux 开发商 Canonical 合作,使 Flutter 成为 Canonical 未来桌面端和移动端的默认开发工具!同时,与微软的合作也将继续深入,比如为 Surface Duo 等设备提供支持。
- Flutter 也在和汽车巨头丰田(Toyota) 合作,通过 embedder api 对 Flutter 进行定制,使 Flutter 成为丰田下一代车载信息娱乐系统的开发工具
- Dart 语言为 Flutter 的发展提供坚实基础,最新的 2.12 版本带来了空值安全以及稳定的 FFI 实现。
Flutter Web
Flutter 的Web 支持基于有硬件加速的2D和3D图形以及灵活的布局和绘画API,提供了以应用程序为中心的框架,该框架充分利用了现代Web所提供的所有优势。在面向 Web 开发方面,Flutter 2.0 重点关注三种场景:
- 渐进式 Web 应用程序 (PWA)
- 单页应用 (SPA)
- 将现有的 Flutter 移动应用移植至 Web
在过去的几个月中,Flutter为发布 Web 支持的版本做准备的同时,也在性能优化方面取得了许多进展,比如添加了一个由 WebAssembly 构建的 CanvasKit 驱动渲染引擎。Flutter Plasma 是由社区成员 Felix Blaschke 构建的 Demo ,展示了使用 Dart 和 Flutter 构建复杂的 Web 图形体验的简便性,这些应用也可以在桌面或移动设备上本地运行。
同时,我们也一直在扩展 Flutter,位的是提供最佳的Web平台开发体验。最近几个月,Flutter 添加了文本自动填充功能,对地址栏 URL 和路由的控制 和 PWA manifests,而且由于 Desktop Browsers 与移动浏览器一样重要,因此我们还添加了交互式滚动条和键盘快捷键,以此来增加了 Desktop 下的默认内容的紧密程度,并增加了屏幕阅读对 Windows,macOS 和Chrome OS 上可访问支持。
支持桌面和折叠设备
除了应用到传统的移动设备和 Web 之外,Flutter 2 还扩展到了像可折叠设备、嵌入式设备和桌面 PC 等其他设备类型上。例如微软和 Canonical 都与 Flutter 进行了紧密合作,为支持 Windows 和 Ubuntu 提供更好的优化。Flutter 还有望成为 Canonical 未来创建桌面和移动应用程序的默认选择,这些都证明了 Flutter 的可移植能力。
微软对 Flutter 的应用主要是针对自家的可折叠设备,Surface 团队介绍了他们使用 Flutter 为 Surface Duo 和其他设备提供高质量实现。
丰田汽车也宣布将构建由 Flutter 提供支持的信息娱乐系统,通过使用 Flutter 的 Embedder API,丰田可以针对车载系统的独特需求量身定制 Flutter。
Flutter 生态建设
除了上面介绍的内容外,Google还介绍了Flutter生态方面的建设,包括亚马逊、微软、Adobe、华为、阿里巴巴、eBay、Square 等公司贡献的超过 1.5 万个 Flutter / Dart 软件包。
关键包支持如:Lottie,Sentry和 SVG,以及 Flutter Favorite 软件包如: sign_in_with_apple,google_fonts,geolocator 和 sqflite 等。
同时, Google 还推出了移动广告 Flutter 的测试版,这是一个可与 AdMob 和AdManager 配合使用的新 SDK,可提供多种广告格式,包括横幅广告,插页式广告,原生广告和奖励视频广告。
与此同时,Flutter插件的一些核心 Firebase 服务也进行了更新:Authentication,Cloud Firestore,Cloud Functions,Cloud Messaging,Cloud Storage 和 Crashlytics,包括对可靠的 null 安全性的支持以及对 Cloud Messaging 软件包的全面检查。
展望未来,Flutter 团队还将继续为嵌入式设备和其它非传统平台框架提供支持,且该公司对 Flutter 如何帮助增强环境计算体验一事颇有兴趣。
参考:
Flutter 2 源代码:https://github.com/flutter/flutter/releases/tag/2.0.0
Flutter 2 新特性:https://medium.com/flutter/whats-new-in-flutter-2-0
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。