Google 发布 Flutter 2:其中的新功能
已发表: 2021-04-02谷歌推出了 Flutter 2.0 版——一个开源 UI 开发工具包,使应用程序开发者能够制作跨平台应用程序。 此次升级突出了 Flutter 的全新功能包和增强的可移植性,以支持不同平台上的应用程序。
今天,我们将探索 Flutter 2 提供的功能。 阅读博客到最后。
Flutter 2:完整概述
网络支持
Flutter 的高端 Web 支持是 Flutter 2 在 Flutter Engage 发布活动中最关键的宣言。 早些时候,Web 的基础主要是以文档为中心。 现在,丰富的平台 API 促进了使用绘图 API、硬件加速 2D 和 3D 图形以及灵活布局的复杂应用程序开发。
Flutter 2 提供稳定的 Web 支持,在 Web 上呈现与在移动设备上相同的体验。 移动应用程序开发服务专家可以使用相同的代码库为 Android、iOS 和浏览器构建应用程序。 可以将用 Dart 编写的现有 Flutter 代码编译成出色的 Web 体验,因为在 Flutter 2 中,Web 只是您应用程序的另一个设备目标。
新版本重点关注 3 个应用场景:
- 单页应用 (SPA)
- 渐进式 Web 应用程序 (PWA)
- 将现有的基于 Flutter 的移动应用程序引入 Web 并提供相同的体验
Flutter 不会转译为其小部件的 HTML 等价物。 相反,Flutter 的 Web 引擎提供了两种渲染器之间的选择:
- 一个 CanvasKit 渲染器,它利用 WebGL 和 WebAssembly 将 Skia 绘制命令渲染到浏览器画布
- 针对广泛的兼容性和大小进行了优化的 HTML 渲染器
还构建了一个 Flutter Plasma 演示,以展示使用 Dart 创建复杂的 Web 图形体验的简便性,该体验可以在移动设备和桌面上无缝运行。
社区还添加了一些特定于 Web 的功能,例如文本自动填充、PWA 清单以及对路由和地址栏 URL 的控制。
桌面支持
它仍处于测试状态,稳定版可能会在今年晚些时候发布。 不过,让我们来看看它提供了什么。
对于桌面浏览器,社区添加了键盘快捷键、交互式滚动条、屏幕阅读器支持,以便在 Chrome OS、Windows 和 macOS 上轻松访问,并增强了桌面模式下的默认内容密度。
谷歌做了几项改进——将 Flutter 桌面质量提高,确保文本编辑在每个支持的平台上提供原生体验,集成文本选择枢轴点等基础功能。它还在 TextField 中添加了一个内置的上下文菜单和Cupertino 和 Material 设计语言的 TextFormField 小部件。 抓取手柄被添加到 ReorderableListView 小部件。
更新后的滚动条小部件提供了您可以在桌面上使用的各种引人入胜的功能。 Flutter 2 还允许对 Flutter 应用程序进行命令行参数管理。 这样,在 Windows 文件资源管理器中双击数据文件之类的操作可用于在应用程序中打开文件。
颤振修复
Flutter Fix 是各种东西的集合。 它有一个名为 Dart Fix 的 Dart CLI 工具的专有命令行。 它有助于查找已弃用的 API 列表并使用它们升级代码。 它还允许访问 Flutter SDK 中包含的可访问修复列表。
此外,它还为 Android Studio IDE、VScode 和 IntelliJ 提供了一组更新的 Flutter 扩展,可以提供类似的可访问解决方案列表,并帮助开发人员简单地使用鼠标更改代码。
扩展的便携性
Google 重点介绍了最近的 3 个团队,它们展示了 Flutter 的最大可移植性。
首先,微软将扩大对 Flutter 的支持。 除了最近在 Flutter 中提供优质 Windows 支持的合作外,微软还将为 Flutter 引擎做出贡献,以促进可折叠 Android 设备的应用程序开发。
其次,Canonical 正与 Google 合作将 Flutter 带到桌面。 它将支持 Linux 上的应用程序开发和部署。 Canonical 承诺在多种硬件配置上提供极好的体验。
最后,领先的汽车制造商丰田宣布采用一些开创性策略,通过创建由 Flutter 支持的各种信息娱乐系统,为汽车提供下一代数字体验。 由于 Flutter 的智能手机级触摸系统、快速迭代、开发人员人体工程学和始终如一的高性能,丰田试图聘请 Flutter 开发人员。 Flutter 的嵌入式 API 将允许丰田定制 Flutter 并满足构建尖端信息娱乐系统的要求。

添加到应用程序
Flutter 2 旨在减少任何应用程序开发机构的开发人员的工作量,同时确保高质量的结果。 Add-to-App 是另一个突出这一目标的功能。
开发人员可以将 Flutter 添加到现有的 Android 或 iOS 应用程序中。 Add-to-App 功能是在两个平台上重用 Flutter 代码的好方法,同时存储当前的本地数据库。 随着这一变化,谷歌建议可能将 Flutter 引擎集成到本机应用程序中。
颤振对开本
正如我们已经讨论过的,Flutter 现在支持 3 个平台——Android、iOS 和 Web,还有 3 个处于测试阶段的平台——Windows、Linux 和 macOS。 如何创建一个可以更改为多种形式(小、大和中型屏幕)、多种习语(Web、移动和桌面)和多种输入模式(键盘、鼠标和触摸)的应用程序?
Flutter Folio 给出了这个问题的答案。
Flutter Folio 是一款剪贴簿应用程序,旨在利用 Flutter 的功能来创建可在各种平台和设备上无缝运行的应用程序:Android、iOS、Mac、Windows、Linux 和 Web。 它是与 gskinner 和 Flutter 团队合作构建的自适应应用程序的完美示例。
Flutter 开发工具
Flutter DevTools 用于调试 Flutter 应用程序。 引入了一项新功能,该功能甚至在启动 DevTools 之前就关注任何问题,即 IntelliJ、Android Studio 或 Visual Studio Code 能够在出现异常时通知并提供在 DevTools 中显示它以启动调试过程。
在运行 DevTools 时,选项卡上的新错误标记有助于追踪应用程序中的各种问题。
在 DevTools 中,添加了另一个新功能,可以轻松地以比其特征更高的分辨率查看图片。 它有助于减少额外的内存使用和应用程序大小。 开发者可以允许 Flutter Inspector 中的 Invert Oversized Images 开启这个功能。
谷歌还增加了显示固定布局的能力。 这允许开发人员调试不同类型的布局。
Flutter DevTools 2 中可用的其他功能包括:
- 性能视图现在重命名为 CPU Profiler。 同样,时间轴视图重命名为性能。 这些更改突出了它们提供的功能。
- 新的内存视图图表更小、更易于使用且速度更快。 它包含一个新的悬停卡,可以解释特定时间的活动。
- 搜索和过滤功能已添加到“日志记录”选项卡中。
- Flutter Frames Chart 中包含平均 FS 数据和各种可用性增强功能。
- 时序网格包含在 CPU Profiler 火焰图中。
- Tracklogs 表单已启动,因此开发人员可以在启动时检查总的日志记录历史。
- 不成功的网络请求将在网络分析器中被调用以进行即时修复。
适用于 Flutter 的 Google 移动广告
Google 宣布推出适用于 Flutter 的 Google Mobile Ads 测试版。 新的 SDK 可与 AdMob 和 AdManager 完美配合,提供不同的广告格式,包括横幅广告、原生广告、插页式广告和奖励视频广告。
谷歌还宣布了对主要 Firebase 服务(如 Cloud Messaging、Cloud Firestore、Cloud Function、身份验证、云存储、Crashlytics)的 Flutter 插件的各种更新,集成了可靠的 null 安全帮助以及 Cloud Messaging Package 的更新。
飞镖 2.12
这是谷歌的又一重大启示。 Dart 2.12 支持健全的 null 安全性。 它有可能删除任何空引用异常。 这样,它可以确保在开发和运行时,如果开发人员明确选择,类型只能包含空值。
该更新还包括 FFI(外来函数接口)的一致应用。 它使开发人员能够使用 dart:ffi 库来调用本机 C API。
是时候结束了
如您所见,Flutter 2 正在为应用程序开发领域带来一些突破性的变化。 使用网络和移动应用程序之间的界限正在逐渐消失,有利于为各种平台和设备提供卓越的用户体验。 如果您想顺其自然,是时候使用 Flutter 2 构建应用程序了!
