写点什么

Flutter 3.3 发布,带来新的预览版渲染引擎

作者:Karsten Silz

  • 2022-09-12
    北京
  • 本文字数:1496 字

    阅读完需:约 5 分钟

Flutter 3.3发布,带来新的预览版渲染引擎

用户可以用谷歌 UI 框架 Flutter 基于一个代码库构建出原生编译的移动、Web 和桌面应用程序。谷歌刚刚发布了Flutter 的 2022 年第 3 个版本,即版本3.3。随之一起发布的还有Dart 2.18。这两个版本都是改进版,没有添加重大的新特性。新添加的渲染引擎 Impeller 只限于预览并且只适用于 iOS。谷歌还推出了一个新的展示应用 Wonderous,它用 Flutter 3.3 开发,并使用了新渲染引擎 Impeller。

Flutter 3.3 的新特性

Flutter 应用程序不使用底层平台的 UI 元素,而是模拟它们。Flutter 自带的 Material UI 适用于所有平台,还提供了一个 iOS UI 元素集。其他开源库则提供了 Windows、macOS 和 Linux 的 UI 元素集。


Flutter 网页应用程序中的文本选择现在可以像预期的那样——用户可以一次选择多行文本。触控手势在桌面应用程序中的效果变得更好。Windows 应用程序现在可以从 pubspec.yaml 构建文件中获取版本号。iPad 应用程序可以使用苹果手写笔进行手写输入。


在这个版本中,一些 Material 3 组件得到了改进——IconButton, Chips 和 AppBar。使用新的 ui.ImmutableBuffer.fromAsset()方法加载包含在应用程序中的图像速度更快,使用的内存更少。现在在 iOS 上禁用了指针压缩,将更多的内存用于 Flutter 应用程序的非 Dart 部分。


Flutter 团队提供的 go_router 包通过基于 URL 的声明简化了应用程序中的路由,4.3 版本支持异步代码。Flutter Visual Studio Code 扩展和 Flutter DevTools 也得到了改进。


Flutter 3.3 不再运行在 32 位的 iOS 设备上,包括 iPhone 5C(2014 年推出)和更早的机型,以及第二代至第四代 iPad(2012 年推出)。即将到来的 2022 年第四季度发布的 Flutter 也不支持 macOS 10.11(2015 年推出)和 10.12(2016 年推出)。


苹果在即将发布的秋季 iOS 和 iPadOS 版本中取消了 Bitcode,这也是为什么 Flutter 也会在未来的版本中移除对比 Bitcode 的支持。


Flutter 从一开始就使用 Skia 作为它的图形引擎。Skia 支持 Chrome、Firefox、Android、ChromeOS 等。相比之下,Impeller 是为 Flutter 定制的,“充分利用了现代硬件加速图形 API,如 iOS 上的 Metal 和 Android 上的 Vulkan。”这样就可以实现更好的动画效果,并消除了一个常见的问题——动画和转场不连贯。


发布之前的版本时,Flutter 团队将 50 万款现有的 Flutter 应用程序作为取得成功的指标。这一次,Flutter 团队表示,“每天都有超过 1000 款使用 Flutter 开发的新的移动应用发布到苹果和谷歌应用商店”。但这两个数字都缺乏背景支持,比如竞争平台之间的表现如何。

Dart 2.18 的新特性

Dart 是强类型的编程语言,并针对 UI 开发进行了优化。一开始它是“JavaScript 和 Java 的混合体”,现在它拥有这两种语言都没有的特性(比如全面空安全)。


Dart 于 2021 年 3 月推出了全面空安全性(Sound Null Safety),涵盖了应用程序和库。这一特性与 Swift 相同,但与 Kotlin 不同,Kotlin 不能保证库的空安全。排名前 250 的 Flutter 和 Dart 库都迁移到了空安全,而排名前 1000 的库只有 2%没有迁移。在 2022 年 7 月运行的所有 Flutter 应用程序中,超过 80%都使用了全面空安全。所以 Dart 计划在 2023 年中停止支持没有空安全的 Dart 版本。


Dart 包含了一个多平台 HTTP 库,它为两个特定于平台的库提供了实验性支持。一个是针对 iOS 和 macOS 的 cupertino_http,它使用苹果的 NSURLSession 来实现 WiFi 专属网络或 VPN 接入等功能。第二个是用于 Android 的 cronet_http,它建立在流行的 Cronet 库之上。


用于调用本地 C API 的 Dart 外部函数接口(FFI)现在可以在 iOS 和 macOS 上与 Objective-C 和 Swift 代码交互。改进的类型推断可以更好地检测一些非空参数的情况。异步代码的体积更小,运行得更快。


原文链接


Flutter 3.3 Previews New Rendering Engine


相关阅读:

Flutter 3.0 正式发布:稳定支持 6 大平台,字节跳动是主要用户

2022-09-12 08:0010964

评论 1 条评论

发布
用户头像
Wonderous里面好多流失文物
2022-09-13 09:40 · 北京
回复
没有更多了
发现更多内容

云上创新,阿里云视频云分享全场景音视频服务背后的场景探索与技术实践

阿里云CloudImagine

阿里云 音视频 在线教育 视频会议 直播技术

国内首篇云厂商 Serverless 论文入选全球顶会:突发流量下,如何加速容器启动?

Serverless Devs

Serverless 容器 云原生

AT智能量化炒币机器人系统开发详解案例

系统开发咨询1357O98O718

Tapdata 实时数据融合平台解决方案(三):数据中台的技术需求

tapdata

oracle mongodb

6月2日,讲一个鸿蒙的故事

这不科技

华为 鸿蒙

一封MySQL之父Monty的回信,开启彭立勋的数据库之路

华为云开发者联盟

MySQL 数据库 opengauss GaussDB 华为云数据库

写给想做程序员的半吊子应届毕业生们

北游学Java

Java Python 求职 秋招

从零开始学习3D可视化之控制对象(1)

ThingJS数字孪生引擎

物联网 可视化 3D 3D可视化 数字孪生

webRTC实现音视频通话与屏幕共享

侠客行

WebRTC 屏幕共享 iOS屏幕共享 web屏幕共享

🔎【Java 源码探索】深入浅出的分析HashMap(JDK7)

码界西柚

Java hashmap 6月日更 JDK7

华为云携手马栏山文创园助力湖南广电荣获国家广电总局多项大奖

华为云开发者联盟

AI 5G 视频 华为云 马栏山

🏆未来可期,WebRTC成为实时通讯方案的行业标准

码界西柚

音视频 WebRTC 实时通信 6月日更

我把 Spring Boot 项目从 18.18M 瘦身到 0.18M,部署起来真省事!

xcbeyond

微服务 springboot 6月日更

Tapdata 实时数据融合平台解决方案(一):现代企业数据架构及痛点

tapdata

mongodb

Tapdata 实时数据融合平台解决方案(二):理解数据中台

tapdata

oracle mongodb

Tapdata 实时数据融合平台解决方案(五):落地

tapdata

大数据

毕业设计So Easy:珠穆朗玛FM音频电台APP

不脱发的程序猿

android 软件开发 APP开发 毕业设计 移动应用开发

【LeetCode】你能在你最喜欢的那天吃到你最喜欢的糖果吗?Java题解

Albert

算法 LeetCode 6月日更

带你认识大模型训练关键算法:分布式训练Allreduce算法

华为云开发者联盟

分布式训练 Allreduce算法 集合通信 分布式通信算法 大模型训练

【译】JavaScript 代码整洁之道-异常处理篇

KooFE

JavaScript 大前端 异常处理 6月日更 整洁代码

一文回顾 Java 入门知识(上)

逆锋起笔

Java 后端 javase

架构实战营 - 模块 5- 作业

carl

Tapdata 实时数据融合平台解决方案(四):技术选型

tapdata

大数据

面向对象的Python编程,你需要知道这些!

华为云开发者联盟

Python 面向对象 oop 面向对象编程

TCP协议

IT视界

TCP 传输协议 网络通信

我的树莓派居然偷偷的学会了日语

IT蜗壳-Tango

IT蜗壳教学 6月日更

《堂食点餐》APP前后端全部免费开源啦!

YonBuilder低代码开发平台

源码 大前端 APP开发 APICloud 外卖app

架构实战营模块五作业

竹林七贤

网络攻防学习笔记 Day33

穿过生命散发芬芳

网络攻防 6月日更

奇亚Chia挖矿系统开发方案丨奇亚Chia挖矿源码功能

系统开发咨询1357O98O718

智能炒币机器人系统开发案例解析,智能炒币机器人源码设计

系统开发咨询1357O98O718

Flutter 3.3发布,带来新的预览版渲染引擎_大前端_InfoQ精选文章