Google移动开发平台Flutter 1.0正式发布

程序员专属-极客T恤

在昨晚的 Flutter Live 2018 上,Google 宣布 Flutter 1.0 正式发布。这是一个基于 Dart 的移动开发平台,旨在帮助开发者在 iOS 和 Android 两个平台上开发高质量的原生应用界面。此外,Google 还宣布了 Flutter 运行时基于 Web 的实验性实现,旨在将 Flutter 应用引入标准 Web 浏览器。

从我们首次看到 Flutter 的 Beta 测试版,到如今的 1.0 正式版,总共经过了 9个多月。

  • 2 月底在世界移动大会 (MWC) 上发布首个 Beta 版;
  • 5 月的 Google I/O 大会上发布 Beta 3 ;
  • 6 月底的 GMTC 发布首个预览版;
  • 9 月的谷歌开发者大会上,发布预览版 2;
  • 12月初的 Flutter Live 2018 上,发布1.0 稳定版。

Flutter 1.0 主要聚焦于稳定性和 bug 修复,同时还包含两项新功能的预览 ——  Add to App 和 platform views:

Flutter 1.0 使用的是最新的 Dart 2.1。Dart 2.1 提供更小的代码体积,更快的类型检查和更好的诊断。按照 Google 的说法,Dart 2.1 将输出代码的大小减少了 17%,并将编译时间缩短了 15% 。Dart 2.1 还包含新的语言特性,例如通过新mixin关键字改进 mixin 支持、支持 int-to-double 的转换、编译时类型检查、新的 HTTP 状态码等等。

Add to App 是一种逐步将现有应用移植到 Flutter 的方法,主要用于将 Flutter 用于现有应用,或者将现有应用分阶段转换为 Flutter 。

platform views 则是一种相反的方式,用于将 Android 或 iPhone 平台的控件嵌入到 Flutter 应用。

如开头所述,Google 还宣布了 Flutter 运行时基于 Web 的实验性实现 —— Hummingbird,旨在将 Flutter 应用引入浏览器。它利用 Dart 平台的特性不仅可以编译原生 ARM 代码,还可以编译 JavaScript 。这使得 Flutter 代码可以在基于标准的 Web 上运行而无需任何更改。

Hummingbird 可让 Flutter 覆盖更多平台,包括 Windows、macOS 和 Linux 。

发行说明:

https://developers.googleblog.com/2018/12/flutter-10-googles-portable-ui-toolkit.html

Flutter 的使用现状

自 Flutter 在 2017 年 I/O 大会推出以来,就吸引了很多移动开发者的目光。今年 6 月底,Flutter 预览版发布的时候,Google 宣布与阿里巴巴的闲鱼团队在 Flutter 上合作,标志着 Flutter 进入了一个新阶段。

而目前在 Google 内部,Flutter 已经用于各种各样的产品中,如 Google Ads 的 iOS 和 Android 版应用已经用了 Flutter 框架。

据 Google 的不完全统计,目前,Abbey Road Studios、阿里巴巴、Capital One、Groupon、Hamilton、京东、Philips Hue、Reflectly 和腾讯等公司都已经使用 Flutter 进行开发。

Flutter 的重要特性

  • Flutter 可以让你构建漂亮的应用程序,它提供了很多 widgets,可以实现 Material Design。
  • 速度快,它基于 Skia 2D 硬件加速图形引擎,该引擎也同样用在了 Chrome 和 Android 平台。
  • 高效,Flutter 引入了热重载,这个革命性的特性可以让移动开发者和设计师们实时迭代应用程序,据了解,这个特性让开发效率提升了 3 倍。
  • 开放,Flutter 是一个基于 BSD-style 许可的开源项目,全球范围内数百位开发者在为它贡献代码。

更多 Flutter 详细的性能可戳此文:为什么说 Flutter 是革命性的?

Flutter 1.0 的新功能

自第一个测试版以来,Google 一直致力于为 Flutter 添加新功能和改进。特别是通过新的小部件完善了对像 iOS 应用程序的支持,增加了对近二十种 Firebase 服务的支持,并致力于提高性能和减少 Flutter 应用程序的大小。他们还根据社区的反馈解决了数千个问题。

Dart 2.1

Flutter 包含了最新版本的 Dart 2.1,更小的代码体积,更快的类型检查,以及更好的类型错误可用性。Dart 2.1 还提供了新的语言特性,可在构建用户体验时提高效率。

1.0 版本的侧重点是错误修复和保持稳定性,不过 Google 还推出了两个主要预览新功能,开发人员可以在预览模式下试用,预计将在 2019 年 2 月版本中发布:添加到 App 和平台视图。

添加到 App

在刚开始构建 Flutter 时,Google 专注于提升从头开始构建新应用程序的效率。当然,并不是每个人都有机会从头开始构建新应用。一些大公司希望可以将 Flutter 用于开发现有应用程序中的新功能,或者将现有应用程序分阶段切换到 Flutter。

Flutter 的架构可以很好地支持这种模型:毕竟每个 Flutter 应用程序都包含了一个 Android 和 iOS 容器。Google 也一直在努力让用户可以通过更新现有应用程序的模板和工具来逐步采用 Flutter。他们让在 Flutter 和宿主代码之间共享资产变得更容易。Google 还重新设计了工具,以便在不启动调试器的情况下轻松连接到现有的 Flutter 进程。

平台视图

添加到 App 是一种将 Flutter 逐渐引入到现有应用程序的方法,但有时需要反过来将一个 Android 或 iPhone 平台控件嵌入到 Flutter 应用程序中。

所以 Google 引入了平台视图小部件(AndroidView 和 UiKitView),让你可以在每个平台上嵌入这些东西。几个月来 Google 一直在预览对 Android 的支持,现在正在扩展到对 iOS 的支持,并开始添加基于这些小部件的Google MapsWebView等插件。

与其他组件一样,平台视图小部件可用于组合模型,这意味着你可以将它们与其他 Flutter 内容集成在一起。例如,在上面的屏幕截图中,右下角的浮动操作按钮是 Flutter 小部件,背景颜色为 50%alpha。这充分展示了 Flutter 独特的架构优势。

超越移动的 Flutter

到目前为止,Flutter 的主要目标是 iOS 和 Android。然而,Google 对 Flutter 的愿景是从移动设备扩展到更广泛的平台上。实际上,Flutter 从一开始就被设计为可移植的 UI 工具包,灵活到可以被用在任何基于像素绘制的地方。

其中的一些工作已经在进行中。Flutter Desktop Embedding是一个还处在早期阶段的项目,它将 Flutter 引入到桌面操作系统,包括 Windows、MacOS 和 Linux。他们最近还发布了在 Raspberry Pi 上使用 Flutter 的相关细节,演示了 Flutter 对嵌入式设备的支持。

Hummingbird 是基于 Web 的一个 Flutter 运行时实现,它利用 Dart 将 Flutter 代码编译为本机 ARM 代码或 JavaScript。这使得 Flutter 代码可以不经修改就能在 Web 上运行。

当然,移动仍然是 Google 的当务之急,你可以期待在未来几个月内看到他们对这些核心移动方案的巨大投入。

结论

随着 Flutter 1.0 的发布,除了现有的 beta、dev 和 master 频道之外,Google 还建立了一个新的“stable”频道,stable 频道的更新频率低于其他频道,他们预计将按季度更新 stable 频道。


关注微信公众号

码中人 微信公众号

发表评论

电子邮件地址不会被公开。 必填项已用*标注