Flutter 1.9 正式发布!支持 macOS Catalina,Flutter 网页版并入主库

阅读数:1948 2019 年 9 月 12 日 11:19

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

近日,在上海举办的“Google Developer Days“上,谷歌宣布 Flutter 1.9 版本、Dart 2.5 版本正式发布。另外还宣布了 Flutter Web 支持项目的一项重大里程碑:Flutter 的 Web 支持集成到了 Flutter 的主库中,让开发人员可以使用同一套代码库为移动、桌面和 Web 平台开发应用。

这个星期 Flutter 迎来了大新闻!在谷歌为中国开发者举办的最高级别会议“Google Developer Days”的第一天,公布了Flutter 的最新稳定版本:Flutter 1.9。这是有史以来规模最大的更新,包含来自 100 多位贡献者的超过 1,500 个 PR。新版引入的功能和更新覆盖众多领域,例如支持 macOS Catalina 和 iOS 13 操作系统、改进的工具支持,以及新的 Dart 语言功能和新的 Material 小部件等。

在发布会上还宣布了 Flutter Web 支持项目的一项重大里程碑:Flutter‘s Web Support 集成到了 Flutter 主库中,让开发人员可以使用同一套代码库为移动、桌面和 Web 平台开发应用。

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

注:本次大会展示的案例来自腾讯公司,他们正在越来越多的移动应用中使用 Flutter 做开发。下面来具体了解一下 Flutter 1.9 的新特性。

支持 macOS Catalina 和 iOS 13 操作系统

苹果即将发布 macOS 的最新版本 Catalina,谷歌也已经让 Flutter 为用户升级到新版系统做好了准备。他们已经更新了端到端的工具链,确保它在 Catalina 和 Xcode 11 上运行良好。为此还添加了对新版 Xcode 构建系统的支持、在整个工具链中实现 64 位支持,并简化了平台依赖项。

苹果的 iOS 13 也即将推出正式版,谷歌也做了充分的准备工作,确保你的 Flutter 应用程序在这一最新的 iPhone 版本上表现出色。Flutter 1.9 包含了一项 iOS 13 可拖动工具栏的实现,其同时支持长按和右拖,并支持  vibration feedback 。针对 iOS 黑暗模式的相关工作也在进行中,我们已经合并了许多拉取请求

最后,现在用户可以在最新的开发版本中启用对 Bitcode 的实验性支持。Bitcode 是苹果开发的平台独立的编译程序中间层。以 Bitcode 的形式向苹果提交你的应用程序后,苹果无需你再次提交就能随时对你的二进制文件进行性能优化;这也让 Flutter 有潜力支持新的平台,例如需要使用 Bitcode 提交应用程序的 watchOS 和 tvOS。

新的 Material 小部件

旧版的 Material 组件和功能也在 Flutter 1.9 中得到了升级。Material 是世界领先的开源设计系统之一,提供全面、灵活的构建块,可在众多平台上实现交互式用户体验。

在新版本中提供了几个新的小部件,包括 ToggleButtons(图一)和 ColorFiltered(图二)。

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

图一

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

图二

ToggleButtons 小部件将一行 ToggleButton 小部件打包在一起,通常由一组 Icon 和 Text 小部件组成,以形成一组具有完全可自定义外观和行为的按钮。你想要单选还是多选?你需要至少选中一项抑或是全部不可选?你想要方形还是圆形边缘,宽边框还是窄边框,图标还是文字?诸如此类都不成问题。上图中可以看到其中一些选项,还可以在 ToggleButtons 示例中观看具体的实现方法。

如下图所示,ColorFiltered 小部件允许你重新为一个小部件子树着色,就像使用几种不同算法重新着色一张图像一样(其中一些算法在上面的示例截图中可以看到)。这个功能有很多用途,例如为色盲用户处理可访问性问题等。要了解这一操作的细节,请查看 ColorFiltered 示例

全球语言支持

我们还增加了对南非荷兰语、祖鲁语等 24 种新语言的支持。

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

Dart 2.5 发布

端到端的开发人员体验不仅取决于 Flutter 的功能,还取决于它使用的底层语言。作为 Flutter 1.9 新特性的一部分,谷歌还发布了 Dart 2.5 。Dart 2.5 包含一个预发布的外部函数接口(FFI)支持,提供原生扩展,使 Dart 可以直接调用用 C 编写的代码。它还为 IDE 引入了机器学习驱动的代码自动完成功能。想要了解更多内容可参见 Dart 2.5 的版本发布说明

工具链改进

在这个版本中,iOS 新项目默认使用 Swift 取代了 Objective-C,而 Android 新项目默认使用 Kotlin 取代了 Java。由于许多软件包都是使用 Swift 编写的,因此将 Swift 作为默认语言后,使用默认选项创建的应用程序就不用手动添加这些软件包了。Swift 5 是 ABI 稳定版,并且由于苹果在最近的版本中已经完成了应用瘦身工作,Swift 动态库不再需要包含在 iOS 12.2 或更高版本的分发包中,相比旧版减小了 Swift 应用程序的体积。

由于 Kotlin 现在是 Android Studio 中新项目的默认语言,因此 Flutter 的默认 Android 开发语言切换也就顺理成章了。现在 flutter CLI 工具和 IntelliJ/Android Studio 以及 VS Code 的 Flutter 插件默认都使用这些选项,但如果你愿意,你可以随时切换回 Objective-C 或 Java。

此外,我们一直在设法改善 Flutter 的错误消息可读性,使其更简洁、更易操作。

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

这个项目是 Flutter 用户体验团队负责的,详情可以查阅这篇博客文章,其中介绍了有关结构化错误显示的工作。我们刚刚开始应用这些新模式,未来的版本中你可以期待有更多错误消息利用这些成果。

Web 平台的 Flutter

最后,谷歌宣布 Flutter 的 Web 支持已合并到主存储库中旧的 flutter_web 存储库已弃用!如果你从主通道或开发通道获得了最新的 Flutter 版本,则可以在最新测试版本中运行 flutter run -d chrome 选择 Web 目标。

当你创建项目时,Flutter 现在通过最小化的 web/index.html 文件创建一个 Web 运行器,该文件负责引导针对 Web 编译的 Flutter 代码。有了这个文件后,你就可以使用 Flutter CLI 工具或 IDE 插件在 Web 上编辑和运行 Flutter 应用程序。

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

以上是 VS Code 中的屏幕截图,其为 Flutter 启用了 Web 支持。请注意图中的 web/index.html 文件;还有下拉列表,你可以在列表上选择 Chrome 作为目标开发设备。Flutter 对 Web 输出的支持仍处于早期阶段,但这一版本是向 Flutter 的 Web 开发生产支持迈出的重要一步。

在 7 月底谷歌宣布了一项早期使用者计划,挑选出一组未来六到十二个月内在 Web 上部署的优秀 Flutter 应用程序作为示范。这一计划收到了超过 1,000 份提交。遗憾的是他们没有能力支持所有申请人,但现在 Web 支持已合并到 Flutter 框架中,很高兴看到所有人都可以体验这一能力了。

一些社区实验已经展示了一些 Flutter 的 Web 输出案例:

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

图三

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

图四

Flutter Widget Livebook (图三)使用 Flutter for web 构建,用来在浏览器中显示实时运行的 Flutter 小部件。 Panache (图四)是一个为 Flutter 创建主题的工具,你可以下载做好的主题并直接插入到你的代码中。

欢迎大家尝试 Flutter for web 的测试版本,有任何反馈请向我们提交

社区

很高兴看到 Flutter 正在不断发展壮大、逐渐流行。在谷歌,数以百计的开发人员正在使用 Flutter 开发超过 20 个项目,其中一些已经发布,还有许多仍在开发中。如果你的手机上有谷歌智能助理,或者身边有一个谷歌 Nest Hub 设备,那么可以试一下这个好玩的功能:对它说“OK Google. Talk to Flutter Widget Quiz“来做测验吧。这个社区制作的测验可以测试你对 Flutter 的了解有多深,很有趣。

Flutter 1.9正式发布!支持macOS Catalina,Flutter网页版并入主库

结语

有关升级到 Flutter 1.9 的更多详细信息,包括如何修复迁移代码时可能遇到的重大更改等相关内容,请查看 Flutter 1.9 的详细发行说明

这个版本有很多新东西值得你一试:有新的 dart:ffi 或基于机器学习的 [代码自动补全功能;有实验版的 Flutter for web ;支持 Catalina 和 iOS 13;还有新的 ToggleButtons ColorFilter 小部件,甚至还能测试你对 Flutter 小部件的了解等等。

原文链接: https://developers.googleblog.com/2019/09/flutter-news-from-gdd-china-flutter1.9.html

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论