Flutter 合并了 5,687 个拉取请求,在Flutter 3.3中引入了更多 Material 和 Dart 小部件,新可用的渲染器Impeller用于加快应用程序性能,以及在社区驱动的会议Flutter Vikings服务唯一焦点的就职日第一天的更多变化关于增强性能的颤振和飞镖改进和优化。此更新还引入了材料 3 新组件和涂鸦支持,无需对 ipad 用户做任何事情,可选择文本分组, dart 2.18 包括对库和用 swift 编写的代码的 FFI 支持。
在桌面、网络和移动使用中获得更高的性能
最近更新版本的主要变化是:
全局选择
Flutter 现在通过使用小部件包装小部件,可以轻松地通过单个滑动手势选择 Web 应用程序中的整个数据SelectableArea
。这不仅提供了更丰富和更流畅的控制,而且还减少了某些地方的错误。
Wonderous:UI 参考应用
为了向世界展示 Flutter UI Making 的隐藏能力,Flutter 团队与 gskinner 团队一起开发了Wonderous应用****程序作为一个开源项目来展示 Flutter 美丽的 UI 体验,展示世界奇观,如印度泰姬陵从阿格拉到墨西哥尤卡坦半岛奇琴伊察的玛雅遗址,再到您使用视频和图像表示的电子设备,探索艺术、历史和文化的完美融合。该应用程序是一个视觉上的享受,以及一些看起来像 Flutter 开发人员的临时功能,包括动画、性能技术,团队也将在未来几周内进一步分享这些技术以及一些泛化和性能技术。更多新闻和代码导航到Flutter 博客和相应的 Playstore 上的单独文章。
在 github <Developers> 中检查这个
[## GitHub - gskinnerTeam/flutter-wonderous-app: Flutter SDK 的展示应用程序。奇妙的意志…
Flutter SDK 的展示应用。当您发现有关某些...的信息时,Wonderous 将进行教育和娱乐
github.com](https://github.com/gskinnerTeam/flutter-wonderous-app)
在 Playstore 中检查这个
[## 奇妙 - Google Play 上的应用
当您发现有关世界上一些最著名的建筑的信息时,Wonderous 将进行教育和娱乐……
play.google.com](https://play.google.com/store/apps/details?id=com.gskinner.flutter.wonders)
叶轮:新的图形引擎
一个新的渲染引擎作为实验性尝试——在这个版本中还提供了Impeller以取代具有自定义运行时的 skia 渲染引擎,以证明充分利用现代硬件加速图形 API 的合理性,例如iOS上的Metal和 Android 上的Vulkan提供瞬态动画,提供更快的刷新率和消除运行时着色器编译的作用,是当今应用程序使滚动流畅的主要痛点。虽然它仍处于生产阶段,并且正在进行大量优化,但它在 iOS 中作为早期预览版提供。
学习启用它:可以在我们的 wiki 上找到
在 Apple App Store上进行测试:Wonderous for iPhone
报告任何问题,如果发现在: 可重现的问题报告
材料设计更新
Material 更新现在带有许多更新,主要是对芯片、appbar 和 IconButton的更改
这些材质小部件增强功能不是现在的默认设置,但您可以选择使用Material3
图标按钮
[图片上传失败...(image-fe6c21-1662387807433)]
芯片
[图片上传失败...(image-29cd85-1662387807433)]
大中型AppBar
[图片上传失败...(image-f7adfe-1662387807434)]
[图片上传失败...(image-fd73cb-1662387807433)]
一些小的变化是:
涂
现在 Flutter 3.3 版本默认支持涂鸦CupertinoTextField
,TextField & EditableText.
Flutter 现在支持在 iPadOS 上使用 Apple Pencil 进行涂鸦手写输入
go_router
Navigation 可以在应用程序开发过程中扭转局面,flutter 提供它自己的本机导航 API,go_router
打包它的新版本已经推出,按照声明性方法在移动、桌面和 Web 上无缝工作,使包能够轻松地通过深层链接导航并使用迁移指南中的异步代码进行重定向,可在颤振主页上的导航和路由页面查看。
文字输入
Flutter 现在还提供了从平台接收细粒度文本更新的能力,该平台TextInputPlugin
最初提供了新状态,没有旧和新的增量,TextEditingDeltas
现在DeltaTextInputClient
填补了这个空白。访问这些增量允许您构建一个带有样式范围的输入字段,该范围随着您的书写而扩展和收缩。
要了解更多信息,请参阅富文本编辑器演示。
VS Code 扩展增强
VS Code 扩展现在提供了使用Dart以逗号分隔的方式应用多个依赖项的灵活性:添加依赖项。
[图片上传失败...(image-694b85-1662387807433)]
开发工具更新
DevTools 正在经历与 Flutter 3 版本相比的重大变化,包括 UX 和优化以显示表格以获得更快的数据,减少大量事件列表的挂起滚动。
查看 devtools 的发行说明:Flutter DevTools 2.16.0 发行说明
视窗
目前,窗口桌面应用程序版本是由特定于窗口应用程序本身的文件设置的,这使得它与设置版本控制的其他平台不一致,现在它也可以从pubspec.yaml
文件设置并构建参数,使客户更容易自动更新以获得最新版本每次有新版本可用时的应用程序
光栅缓存改进
通过消除副本和减少 Dart 垃圾收集 (GC) 压力来提高图像加载能力的性能。最初,它被复制了多次,以便在打开时压缩到本机堆,并将其作为类型化数组引入 dart,然后第二次压缩到内部存储器ui.ImmutableBuffer
。
加上,压缩的图像字节可以直接加载到ui.ImmutableBuffer.fromAsset
用于解码的结构中。这种方法需要更改ImageProviders
. 根据我们的标准,此过程将所需时间减半。
检查在颤振主页上添加 ImageProvider.loadBuffer 。
[图片上传失败...(image-e5c370-1662387807433)]
<figcaption class="ll bl gt gr gs lm ln bm b bn bo cn" data-selectable-paragraph="" style="box-sizing: inherit; font-weight: 400; text-align: center; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; color: rgb(117, 117, 117); margin-left: auto; margin-right: auto; max-width: 728px; margin-top: 10px;">光栅缓存要求</figcaption>
API 改进
PlatformDispatcher.onError
不再需要通过创建自定义Zone
来手动配置以捕获会减慢应用程序启动时间的应用程序错误和异常。现在通过设置回调****来捕获所有错误和异常。**PlatformDispatcher.onError**
要了解更多信息,请查看Flutter 中的处理错误。
对支持平台的更改
32 位 iOS 弃用
Flutter 将不再支持 32 位 iOS 设备和 iOS 版本 9 和 10,这也意味着进一步推出也不会支持 iPhone 4S、iPhone 5、iPhone 5C 以及第 2 代、第 3 代和第 4 代iPad 设备使某些应用程序无法在此类设备中运行。
位码弃用
在即将发布的 Xcode 14 版本中, Bitcode 可能会被淘汰,并且对于 iOS 应用程序提交是不可接受的,这使得它在当前版本的构建制作中发出警告,flutter 也将在未来的稳定版本中放弃对 bitcode 的支持。
虽然它不会影响许多开发人员,因为它默认是关闭的,而且通常没有多少开发人员在他们的应用程序项目中启用它,但是如果您在迁移到 Xcode 14 后禁用它。
请参阅Apple 的文档以了解有关位码分发的更多信息。
[图片上传失败...(image-2c6240-1662387807433)]
<figcaption class="ll bl gt gr gs lm ln bm b bn bo cn" data-selectable-paragraph="" style="box-sizing: inherit; font-weight: 400; text-align: center; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; color: rgb(117, 117, 117); margin-left: auto; margin-right: auto; max-width: 728px; margin-top: 10px;">比特码贬值</figcaption>
概括
随着25,000 个 Flutter 包可供开发者选择,并且使用它们的开发者每天继续向 Apple App 和 Google Play 商店发布超过 1,000 个新应用程序,显示了 Flutter 的社区实力。主要是没有那么显着可能会吸引您当前项目的重大更新,但对应用程序有一些可靠的性能改进。这个新版本提出了一些令人兴奋的功能,这些功能将由社区进行优化,以更快地推动颤振。期待每个 Flutter 开发者体验这些新功能。