您的位置:首页 > 其它

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

2019-09-14 09:30 621 查看


源自 | 谷歌开发者博客

译者 | 王强

编辑 | Yonie

昨日,在上海举办的“Google Developer Days“上,谷歌宣布 Flutter 1.9 稳定版、Dart 2.5 正式发布。另外还宣布了 Flutter's Web Support的一项重大里程碑事件:Flutter’s Web support集成到了 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 做开发。

下面来具体了解一下 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(图 1)和 ColorFiltered(图 2)。

图一

图二

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

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

https://github.com/csells/flutter_color_filter

全球语言支持

Flutter 1.9版本还增加了对南非荷兰语、祖鲁语等 24 种新语言的支持。

Dart 2.5 发布

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

https://medium.com/dartlang/dart-2-5-release-328822024970

工具链改进

在这个版本中,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 用户体验团队负责的,详情可以查阅这篇博客文章:

https://medium.com/@taodong/e098513cecf9。

其中介绍了有关结构化错误显示的工作。现在刚刚开始应用这些新模式,未来的版本中可以期待有更多错误消息利用这些成果。

Web 平台的 Flutter

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

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

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

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

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

图三

图四

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

社区

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

 

结语   

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

https//github.com/flutter/flutter/wiki/Release-Notes-Flutter-1.9.1

这个版本有很多新东西值得你一试:有新的 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



点个在看少个 bug 👇

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: