Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13

2019-09-1211:42:48APP与小程序开发Comments2,634 views字数 3383阅读模式

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

昨日在上海举办的中国 Google 开发者大会(Google Developer Days China)上,Flutter 团队在主题演讲环节中发布了 Flutter 的最新稳定版本:Flutter 1.9。据称,此版本是 Flutter 迄今为止最大的一次版本更新,有 100 多名 contributor 在此次开发周期中提交了超过 1500 个 PR。新增的功能和其他更新涵盖了相当广泛的范围,从支持 macOS Catalina 和 iOS 13 到改进工具链,以及支持新的 Dart 语言特性和新的 Material 风格小部件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

在演讲环节,Flutter 团队还宣布了一则关于 Flutter 对 web 支持的重要里程碑消息:开发团队已成功将此前独立的 Flutter for web 集成到 Flutter 的主仓库中文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter for web 是 Flutter 的代码兼容(code-compatible)实现版本,在 2019 年的谷歌 I/O 大会上,开发团队发布了 Flutter for web 的首个技术预览版,宣布 Flutter 正在为包括 Google Home Hub 在内的 Google 智能显示平台提供支持,并通过结合 Chrome OS 为桌面级应用程序提供支持迈出第一步。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter for web 使用基于标准的 Web 技术(HTML, CSS 和 JavaScript)进行渲染。通过 Flutter for web,可以将 Dart 编写的 Flutter 代码编译成嵌入到浏览器并部署到任何 Web 服务器的客户端版本(client experience)。开发者可以使用 Flutter 的所有特性而无需浏览器插件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

现在 Flutter for web 集成至 Flutter 主仓库则意味着开发者可使用同一套代码库编写移动、桌面和 Web 应用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

下面简单介绍一下 Flutter 1.9 的新特性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter on the web

正如前面所提到的,flutter_web 的 GitHub 仓库现已被弃用,这个实现 Flutter 对 web 支持的仓库已合并至 Flutter 的主仓库中。亦即意味着,如果我们从 master 或 dev 分支获取到最新版本的 Flutter,只需运行 flutter run -d chrome 命令即可使用最新的 Flutter 试验版本来开发面向 Web 平台的应用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

当我们创建一个项目时,Flutter 现在会通过一个最小化的 web/index.html 文件来生成一个 web 运行引擎(web runner),其中 web/index.html 文件主要用于自举 (bootstrap) 基于 web 编译的 Flutter 代码,有了此文件后,我们可使用 Flutter CLI 工具或 IDE 中的 Flutter 插件来编辑或运行面向 Web 平台开发的 Flutter 应用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

上图是启用了 Flutter web 支持的 VS Code 界面截图。请注意 web/index.html 文件和顶部的下拉列表,可以看到这里允许开发者选择 Chrome 作为目标设备。尽管 Flutter 的 web 支持仍处于早期阶段,但 Flutter 1.9 代表了使用 Flutter 为 Web 开发提供生产支持走出了重要的一步。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

下面是两个使用 Flutter 开发 Web 应用的案例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter Widget Livebook 使用 Flutter for web 构建,可展示在网页上实时运行的小部件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Panache 则是一个用于为 Flutter 创建主题的工具,开发者可以下载已创建的主题,然后直接添加到代码中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

支持 macOS Catalina 和 iOS 13

苹果将在近期推出了新版本的 macOS 操作系统 Catalina。为此,团队付出了巨大努力,以确保 Flutter 做好升级准备,顺利适配新平台。比如说,新版本进一步优化了端到端的工具体验,保证 Flutter 工具能够与 Xcode 妥善协作,助力开发者面向 Catalina 开发出优质应用,具体优化项包括:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

  • 为新的 Xcode 构建系统提供支持
  • 全工具链启用 64 位支持
  • 简化平台依赖项

此外,随着 iOS 13 即将面世,团队也在积极推进相关的支持工作,以确保 Flutter 应用在新款 iPhone 设备上保持美观的界面。Flutter 1.9 实现了 iOS 13 的拖曳式工具栏功能,允许长按与从右往左拖动两项操作,并且为触感反馈提供了支持。不少开发者提交的希望 Flutter 支持 iOS 夜间模式的 pull request 已被合并,团队目前已开始着手解决这方面的需求,争取尽早推出解决方案。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

最后,新版本的开发构建允许我们启用 Bitcode 实验性支持。Bitcode 是苹果新添加的一个编译特性,开启 Bitcode 功能后,开发者只需在编译环节上传与平台无关的 Intermediate Representation (中间文件) 即可。以 Bitcode 的形式上传应用后,苹果可以在后期直接对二进制文件进行优化,免除了开发者二次上传的麻烦。与此同时,这也为 Flutter 开启了更多的使用场景,比方说为 watchOS 和 tvOS 等要求上传 Bitcode 文件的平台提供支持。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

引入全新的 Material 风格小部件

Flutter 1.9 也对 Material 组件和特性进行了升级。作为一款全球顶尖的开源设计系统,Material 提供了丰富多彩、灵活易操作的视觉元素,助力开发者在多个平台实现高交互性的用户体验。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

在 Flutter 1.9 中,开发团队新添加了若干小部件,其中包括 ToggleButtons 和 ColorFiltered。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

▲ ToggleButtons文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

▲ ColorFiltered文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

ToggleButtons widget 可将同一行的多个 ToggleButton widget 组合到一起,其中每个 widget 各自又由一组图标和文本 widget 构成。通过这种组合,开发者将得到一组外观与行为完全可自定义的按钮。它能为您的应用按钮实现更加多元化的设计 —— 不论是单选还是多选,选择至少一个或是零个、尖角还是圆角、粗边或细边,图标或文本 ——ToggleButtons widget 全都可以满足。请查看 ToggleButtons 示例,了解以上需求的具体实现。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

ColorFiltered widget 允许我们更改子 widget 树的颜色,这与利用算法 (部分算法见上图样例) 给图片重新上色差不多。该 widget 能够帮助我们处理许多用例,例如: 向用户提供更好的色彩无障碍服务等等。请查看 ColorFiltered 示例,了解该 widget 的工作细节。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

国际化支持

新增了对南非语 (Afrikaans)、祖鲁语 (Zulu) 等 24 种多国语言的支持。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Dart 2.5

在 Flutter 1.9 发布之际,Google 也推出了最新版本的 Dart 语言 —— Dart 2.5,内含预发布版本的 Dart: FFI (外部函数接口),它可用于实现 Dart 语言与 C 语言之间的互操作 (interop),以及由机器学习驱动的 IDE/编辑器代码补全功能。更多技术细节,请阅读后续发布的《Dart 2.5 发布说明》。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

优化工具链

从 Flutter 1.9 开始,iOS 新项目默认使用 Swift 语言,而非 Objective-C;Android 新项目则默认使用 Kotlin,而非 Java。由于许多 Flutter package 使用 Swift 编写,因此,一旦将 Swift 设置为默认语言后,开发者便无需再为启用默认设置的应用手动添加包。Swift 5 实现了 ABI 稳定,而且苹果在近期几个系统版本中也为应用瘦身做了许多工作,因此 12.2 或更高版本的 iOS 系统将不再包含用于 Swift 的动态链接库,从而大幅缩小了 Swift 应用的体积。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

考虑到 Android Studio 新项目现在已经默认采用 Kotlin 作为开发语言了,因此,很自然地,Flutter 开发团队把所有 Android 项目的默认语言统一为 Kotlin。flutter CLI 工具、IntelliJ/Android Studio 和 VS Code 插件均默认启用这些选项,不过,如有需要,我们可随时切换回之前的 Objective-C 或 Java 语言。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

此外,开发团队也在一直改善 Flutter 应用中的错误信息质量。优化之后,信息的可读性、简洁性和可操作性均有明显提升。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

Flutter 1.9 稳定版发布:Flutter for web 合并至 主仓库、支持 macOS Catalina 和 iOS 13文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

参考:谷歌开发者 《Flutter 1.9 正式发布!| 全平台创新开发体验》文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/16391.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/xcx/16391.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定