Flutter 1.9 稳定版本发布:Flutter for web 已合并到主存储库,支持 macOS Catalina 和 iOS 13
昨天在上海举行的 Google 中国开发者日上,Flutter 团队在主题演讲中发布了 Flutter 最新稳定版本:颤振1.9。该版本据说是 Flutter 迄今为止最大的版本更新,在这个开发周期内有超过 100 名贡献者提交了超过 1500 个 PR。新功能和其他更新涵盖范围广泛,从对 macOS Catalina 和 iOS 13 的支持到改进的工具链,以及对新 Dart 语言功能和新材质风格小部件的支持。
在主题演讲中,Flutter 团队还宣布了 Flutter 支持 Web 的一个重要里程碑:开发团队已成功将之前独立的 Flutter for Web 集成到 Flutter 的主存储库中。
Flutter for Web 是 Flutter 的代码兼容实现版本。在 2019 年 Google I/O 大会上,开发团队发布了 Flutter for web 的首个技术预览版,并宣布 Flutter 正在与包括 Google 在内的项目合作。它为包括Home Hub在内的谷歌智能显示平台提供支持,并通过与Chrome操作系统集成迈出了支持桌面级应用程序的第一步。
Flutter Web 使用基于标准的 Web 技术(HTML、CSS 和 JavaScript)进行渲染。借助 Flutter for Web,用 Dart 编写的 Flutter 代码可以编译成嵌入浏览器中并部署到任何 Web 服务器的客户端体验。开发者无需浏览器插件即可使用Flutter的所有功能。
现在,Flutter Web 版已集成到 Flutter 存储库中,这意味着开发人员可以使用相同的代码库来编写移动、桌面和 Web 应用程序。
下面简单介绍一下Flutter 1.9中的新功能。
Web 上的 Flutter
如前所述,flutter_web 的 GitHub 存储库现已停止使用,该实现 Flutter Web 支持的存储库已合并到 Flutter 的主存储库中。这意味着,如果我们从 master 或 dev 分支获取了最新版本的 Flutter,我们只需要运行命令 flutter run -d chrome 就可以使用最新的实验版 Flutter 来开发 Web 平台的应用程序。
当我们创建项目时,Flutter 现在会通过一个缩小的 web/index.html 文件生成一个 Web 运行引擎(web runner),其中 web/index.html 文件主要用于启动。基于网络编译的Flutter代码。有了这个文件,我们就可以使用Flutter CLI工具或者IDE中的Flutter插件来编辑或运行为Web平台开发的Flutter应用程序。
上图是启用了 Flutter Web 支持的 VS Code 界面截图。请注意 web/index.html 文件和顶部的下拉菜单,允许开发人员选择 Chrome 作为目标设备。尽管对 Flutter 的 Web 支持仍处于早期阶段,但 Flutter 1.9 代表了使用 Flutter 为 Web 开发提供生产支持的重要一步。
以下是使用Flutter开发Web应用的两个案例:
Flutter Widget Livebook 使用Flutter构建Web,可以在网页上显示实时运行的Widget。
Panache 是一个为 Flutter 创建主题的工具。开发者可以下载创建的主题,然后直接添加到代码中。
支持macOS Catalina和iOS 13
Apple将在不久的将来发布新版本的macOS Catalina操作系统。为此,团队付出了巨大的努力,确保Flutter做好升级准备,能够灵活适应新平台。例如,新版本进一步优化了端到端的工具体验,确保Flutter工具能够与Xcode正确互操作,帮助开发者为Catalina开发高质量的应用程序。具体优化项目包括:
- 提供对新的 Xcode 构建系统的支持
- 完整的工具链实现 64 位支持
- 简化平台依赖
此外,很快 iOS 13 团队将积极推动相关支持工作确保 Flutter 应用程序在新 iPhone 设备的界面上保持美观。 Flutter 1.9 实现了 iOS 13 的拖放工具栏功能,允许长按和从右向左拖动两种操作,并提供触觉反馈的支持。许多开发者提交的 Flutter 支持 iOS 夜间模式的 Pull Request 已经合并,团队已经开始解决这些需求,并争取尽快发布解决方案。
最后,新的开发版本使我们能够启用 Bitcode 实验支持。 Bitcode 是 Apple 添加的新编译功能。开启Bitcode功能后,开发者只需在编译过程中上传与平台无关的中间表示(中间文件)即可。以Bitcode的形式上传应用程序后,苹果可以在后期直接优化二进制文件,省去开发者二次上传的麻烦。同时,这也为Flutter开辟了更多的使用场景,比如为watchOS、tvOS等需要上传Bitcode文件的平台提供支持。
引入新的 Material 风格小部件
Flutter 1.9 还升级了 Material 组件和功能。作为全球最好的开源设计系统,Material 提供丰富多彩、灵活且易于使用的视觉元素,帮助开发者实现高度交互的跨平台用户体验。
在 Flutter 1.9 中,开发团队添加了几个新的 widget,包括 ToggleButtons 和 ColorFiltered。
▲ ToggleButtons
▲ ColorFiltered
ToggleButtons 小部件将多个 ToggleButton 小部件分组在同一行中,每个小部件由一组图标和文本小部件组成。通过这种组合,开发人员可以获得一组外观和行为完全可定制的按钮。它可以为您的应用程序按钮实现更加多样化的设计——无论是单选还是多选、至少选择一个或零、尖角还是圆角、粗边还是细边、图标还是文本——ToggleButtons widget 每个人都能满意。查看 ToggleButtons 示例,了解上述要求的具体实现。
ColorFiltered 小部件允许我们更改子小部件树的颜色,类似于使用算法为图像着色(有关某些算法,请参阅上面的示例)。这个小部件可以帮助我们处理许多用例,例如为用户提供更好的颜色可用性等等。查看 ColorFiltered 示例以了解该小部件如何工作的详细信息。
国际支持
增加了对 24 种多语言的支持,包括南非荷兰语和祖鲁语。
Dart 2.5
在 Flutter 1.9 发布之际,Google 还发布了 Dart 语言的最新版本——Dart 2.5,其中包括 Dart 的预览版:FFI(Foreign Function Interface),可以通过用于实现 Dart——与 C 语言的互操作语言,以及由机器学习支持的 IDE/编辑器代码完成。更多技术细节请阅读稍后发布的《Dart 2.5 发布说明》。
优化工具链
从Flutter 1.9开始,新的iOS项目默认使用Swift语言而不是Objective-C;新的 Android 项目默认使用 Kotlin 而不是 Java。由于许多 Flutter 包都是用 Swift 编写的,当 Swift 设置为默认语言时,开发人员不再需要为启用默认设置的应用手动添加包。 Swift 5 已经实现了 ABI 稳定性,苹果也做了很多工作来瘦身较新系统版本中的应用程序。因此,iOS 12.2或更高版本将不再包含Swift的动态链接库,从而显着减小应用程序的大小。 Swift 应用程序的大小。
考虑到现在新的 Android Studio 项目默认使用 Kotlin 作为开发语言,Flutter 开发团队很自然地将所有 Android 项目的默认语言统一为 Kotlin。Flutter CLI 工具、IntelliJ/Android Studio 和 VS Code 插件都默认启用这些选项,但如果需要,我们可以随时切换回以前的 Objective-C 或 Java 语言。
此外,开发团队还提高了 Flutter 应用程序中错误消息的质量。优化后,信息的可读性、简洁性和功能性显着提高。
参考:Google开发者《Flutter 1.9 正式发布!| 全平台创新开发体验》
相关链接
- Flutter详细介绍:点击查看
- Flutter下载地址:点击下载
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。