Flutter 1.0震撼登场,移动开发之外还瞄准桌面和Web领域

发表时间: 2018-12-05 16:28

出处丨前端之巅

今天,在 Flutter Live 上,Google 宣布 Flutter 1.0 正式发布。此外,谷歌还宣布和 Square 等公司合作开发一系列新的第三方集成工具和一些新功能,目的是使 Flutter 与现有应用程序的集成变得更加容易。

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 Maps和WebView等插件。


与其他组件一样,平台视图小部件可用于组合模型,这意味着你可以将它们与其他 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 频道。

相关链接

Flutter 1.0 地址:https://flutter.io

文档:https://flutter.io/docs

代码试验:
https://flutter.io/docs/codelabs

示例:
https://flutter.io/docs/cookbook

相关视频:
https://flutter.io/docs/resources/videos

参考链接:

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