祝福 Eric 的下一段旅程|Flutter 3.3 现已发布

2023-11-13

Flutter 团队及社区成员们在美丽的城市挪威奥斯陆向您发来问候,我们正在此参加社区举办的 Flutter Vikings 活动,这是一个为期两天的开发技术交流盛会,虽然线下门票已经售罄,但您还可以通过在线方式查看本次会议。本周,我们也有很多更新要分享给各位开发者们。

Flutter 的使用量和生态系统都在持续增长,每天有超过 1,000 款使用 Flutter 的、新的移动应用发布到 App Store 和 Google Play 商店,在 Web 端和桌面端的使用也在持续增长。Flutter 生态中目前也有超过 25,000 个以上的 package,这也进一步证明了 Flutter 的成熟和广泛应用。

cfdaad7661b359b997d35803dbd1174f.jpeg

今天,我们正式发布 Flutter 3.3。这个版本专注于完善和性能改进,以加强 Flutter 3 发布以来的新特性。Flutter 3.3 加入了一些新的组件并修复了一些错误以加强对 Material 3 规范的支持,也加入了对 iPad 上使用随手写输入文本的支持、可选择的文本分组和触控板支持等对平板电脑和桌面开发者有帮助的新支持。这个版本还包括了 Dart 2.18 的发布,它为使用 Swift 和 Objective-C 构建的库和代码加入了 FFI 的支持。使用这个 Dart 版本构建的应用,将会在桌面端、Web 端和移动端表现出更好的性能。因此我们强力建议您即刻运行命令 flutter upgrade 来升级到最新版。

发布 Wonderous 应用

我们与 gskinner 的设计团队通力合作,发布了一个名为 Wonderous 的应用,旨在向大家展示 Flutter 的强大功能——帮助您构建出高质量、精美的用户体验,而它本身就是一个非常精美的应用——从印度阿格拉市令人惊叹的泰姬陵到墨西哥尤卡坦半岛上的玛雅遗址,Wonderous 将世界上一些非常了不起的地方带到您的手机上,使用视频和图像来探索这些艺术、历史和文化的交集。

e6f1e1b3d084c11970bbc65a55125c27.jpeg

我们希望您与家人和朋友分享 Wonderous,更重要的是,它还作为一个开源项目供开发者们探索。作为一个真实上线运营的应用,它提供了一个完整且全面的示例,展示了我们希望为中高级开发者带去灵感和创想的最佳实践。未来的几周时间里,gskinner 团队将会分享关于这个应用的更多技术细节文章,包括对无障碍的支持、动画效果以及性能方面的技巧等内容。

引入新的图形引擎: Impeller

除了上面提到的 3.3 版本的改进内容之外,Flutter 团队还在努力开发 下一代的渲染层引擎: Impeller

Impeller 是对 Flutter Engine 核心部分的一次重大重写,使用一个定制的运行时环境来取代 Skia 代码,并充分利用现代的硬件加速的图形 API,如 iOS 上的 Metal 和 Android 上的 Vulkan。Impeller 提供了丝滑的动画效果,并很大程度提升了各种多平台 UI 工具包的 "门槛"。这个性能上的差异是肉眼可见的,使用 Impeller 的应用可以保持 60Hz 或者更快的刷新率的同时,能够比以前更进一步地突破界限。最值得注意的是,Impeller 完全消除了对运行时着色器编译的需要,而运行时着色器编译是丢帧卡顿的一个常见来源。

虽然 Impeller 现有的功能还不够完善,并且我们也还在优化它的性能,但我们现在正在一个 Google 级的产品应用上做内部测试。如果您在 App Store 下载刚刚提到的 Wonderous for iPhone,您就能提前感受 Impeller 在生产环境中的应用上运行的效果。

我们正在 iOS 上为 Impeller 做一个早期采纳者的预览版本 ,除了在命令中加入一个启用 Impeller 参数 (--enable-impeller) 之外,您无需对现有代码做任何改动就能启用它。更多的关于 Impeller 架构以及如何启用的文档您都可以在我们的 wiki 页面[1] 中找到。Impeller 正处于积极开发的状态,如果您想参与作为早期采纳者来使用的话,您需要切换到 Flutter 的 master 发布渠道来确保使用了最新的代码。

我们期待着更多使用 Impeller 的应用出现,同时也非常欢迎使用了 Impeller 的开发者向我们提出当下版本的、可复现的、对应用当前版本性能影响或者保真度失真的 报告[2]

祝福 Eric 的下一段旅程

最后,我们想要以对 Flutter 的联合创始人之一、Flutter 工程主管 Eric Seidel 的祝福作为结尾,他将于本月离开谷歌并开启新的冒险旅程。2015 年的 Dart 开发者峰会上,Eric 首次向全世界介绍 Flutter,当时 Flutter 还木有名字和吉祥物,在 Flutter 的过去和现在的大部分时间里,Eric 一直在带领和管理 Flutter 的工程团队,简单说,没有 Eric 就没有 Flutter。

Eric 是一个天生的创业者,他的 "superpower" ("超能力",superpower 也是 Eric 最喜欢用的词语之一) 便是创造和发起新的构想和理念,因此,当 Eric 决定开启下一段冒险旅程的时候,我们衷心为他祝福。

以 Flutter 1.0 发布[3] Eric 在当时 Flutter Live 大会上对 Flutter 的愿景作为结尾: Flutter 是一个长期主义的赌注,希望从根本上做出改善并构建一个美好的用户体验。这仍是我们的愿景,因为这个结果还没有最终实现。全球有数百万开发者信赖 Flutter,Flutter 生态有成千上万的贡献者,Google 的 Flutter 团队也正在蓬勃发展,我们希望您可以继续加入我们的 Flutter 之旅,谢谢!

文内链接

[1]

Impeller 概览: https://github.com/flutter/flutter/wiki/Impeller

[2]

提交性能影响或者保真度失真问题报告: https://github.com/flutter/flutter/issues/new?assignees=&labels=created+via+performance+template&labels=impeller&template=4_performance_others.md&title=%5BImpeller%5D

[3]

Flutter 1.0 发布视频: https://developers.google.cn/events/flutter-live

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

祝福 Eric 的下一段旅程|Flutter 3.3 现已发布 的相关文章

  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat
  • jsf 中的类型未找到属性

    我正在尝试调用 jsf 中使用 primefaces 的属性 但我有错误 500 在托管bean PersonelBean 类型上找不到 我正在使用 hibernate jsf 和 spring PersonelBean java Mana
  • 如何在 Python 中从 HTML 页面中提取 URL [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须用Python 编写一个网络爬
  • 求解不等式系统时“多项式错误:仅允许使用单变量多项式”

    我想找到以下两个常数的区间cons1 and cons2我写了下面的代码 from sympy import Poly from sympy import Abs from sympy solvers inequalities import
  • 为什么“return self”返回 None ? [复制]

    这个问题在这里已经有答案了 我正在尝试获取链的顶部节点getTopParent 当我打印出来时self name 它确实打印出了父实例的名称 然而 当我回来时self 它返回 None 为什么是这样 class A def init sel
  • 如何在颤动中添加行之间的空间?

    主要问题是我想在行之间添加一些空格 并且该行是SingleChildScrollView 我的小部件树 child SingleChildScrollView child Column mainAxisAlignment MainAxisA
  • numpy.cov() 返回意外的输出

    我有一个 X 数据集 有 9 个特征和 683 行 683x9 我想获取这个 X 数据集和另一个与 X 具有相同形状的数据集的协方差矩阵 我使用np cov originalData generatedData rowvar False 代
  • Django 接受 AM/PM 作为表单输入

    我试图弄清楚如何使用 DateTime 字段在 Django 中接受 am pm 作为时间格式 但我遇到了一些麻烦 我尝试在 forms py 文件中这样设置 pickup date time from DateTimeField inpu
  • 如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它

    我有一个 Spring 3 JPA 2 0 应用程序 在我的 Controller我需要一个初始化的对象 但我有代理 我需要能够以编程方式初始化它 我需要类似的功能org hibernate Hibernate initialize Obj
  • 如何映射 Map

    I tried ManyToMany cascade CascadeType ALL Map
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • 如何检测java控制台中而不是GUI中的箭头键? [复制]

    这个问题在这里已经有答案了 我正在编写一个应用程序 我需要检测其中的箭头键 C 有getch 函数 我们想要获取输入 然后添加对 ASCII 值的检查 我们如何检测输入箭头键 谢谢 我写了一个Java类原始控制台输入 http www so
  • servlet 如何获取 servlet 之外的文件的绝对路径?

    我们一直在使用 System getProperties user dir 来获取属性文件的位置 现在它已经部署在 Tomcat 上 通过 servlet 系统调用将位置指定为 tomcat 而不是属性文件所在的位置 我们如何动态调用属性文
  • 如何在jpa中共享EntityManagerFactory

    我是 jpa 的新手 这是场景 我正在开发一个 Web 应用程序 其中 多个用户可以登录 当 user1 注销时 我正在使用下面的代码 public static void closeEntityManagerFactory if enti
  • 从 AJP 连接器请求中检索 Shibboleth 属性

    当我在 Apache 上运行 Shibboleth 身份验证时遇到了一个奇怪的问题 当 Tomcat7 在后端运行时 Apache 通过 mod proxy ajp 发送所有内容 Shibboleth 的参数也是如此 In the 文档 h
  • 使用 Tomcat 和 gradle 进行休眠

    免责声明 我是 Java 新手 我正在尝试使用 Tomcat 和 Gradle 设置 Hibernate 构建运行正确 但看起来像persistence xml文件未被读取 我的项目结构如下 build gradle src main ja
  • 如何使用Featuretools按列值从单个数据框中的多个列创建特征?

    我正在尝试根据之前的结果来预测足球比赛的结果 我在 Windows 上运行 Python 3 6 并使用 Featuretools 0 4 1 假设我有以下代表结果历史记录的数据框 原始数据框 https i stack imgur com
  • 将数据放入短信发送意图中?

    我想发送短信 如果文字太长 我会将其分成多条消息 我试图将一些额外的信息放入 已发送 意图中 以了解哪个部分已发送 以及所有部分何时完成 ArrayList
  • 为什么用字符串和时间增量转置 DataFrame 会转换数据类型?

    这种行为对我来说似乎很奇怪 id列 字符串 在转置后转换为时间戳df如果另一列是时间增量 import pandas as pd df pd DataFrame id 00115 01222 32333 val 12 14 170 df v
  • 从 pandas 数据框中绘制堆积条形图

    我有数据框 payout df head 10 复制以下 Excel 绘图的最简单 最智能和最快的方法是什么 我尝试过不同的方法 但无法让一切都到位 Thanks 如果您只想要一个堆积条形图 那么一种方法是使用循环来绘制数据框中的每一列 并

随机推荐

  • ARP报文头部格式和请求流程

    文章目录 ARP头部格式 ARP请求流程 ARP头部格式 格式说明 硬件类型 16位字段 用来定义运行ARP的网络类型 每个局域网基于其类型被指派一个整数 例如 以太网的类型为1 ARP可用在任何物理网络上 协议类型 16位字段 用来定义使
  • 随记:Flutter获取widget的大小位置,状态栏高度

    也可参考 https www jianshu com p 8117fbc5b4d3 1 获取状态栏高度 MediaQueryData fromWindow WidgetsBinding instance window padding top
  • Spring Boot日志

    目录 1 日志的作用 2 自定义打印日志 3 日志级别 4 日志持久化 5 使用lombok输出日志 1 日志的作用 日志是程序的重要组成部分 其实我们几乎无时无刻都在接触日志 简单的说它其实就是程序运行过程中产生的信息 它的主要作用就是帮
  • k8s之Deployment篇

    Deployment控制器 概念 原理解读 Deployment官方文档 https kubernetes io docs concepts workloads controllers deployment Deployment概述 Dep
  • 大数据——Ubuntu配置docker的阿里云镜像加速

    Ubuntu配置docker的阿里云镜像加速 阿里云镜像加速 阿里云镜像加速 由于docker的官方的镜像源速度太慢 在国内可以通过使用阿里云或者网易云的镜像源提高下载速度 通常使用阿里云的镜像源 下面介绍怎么使用阿里云的镜像加速器 注册阿
  • python编程练习题:随机生成的各科成绩,60分以下为10-15%之间,60-90分的占70-75%之间,90分以上10%-15%之间

    d 题目 python编程练习题 随机生成的各科成绩 60分以下为10 15 之间 60 90分的占70 75 之间 90分以上10 15 之间 分析 各分数之间生成分数的概率并不是独立的 而是相互影响的 比如60分以下的占10 那么为了满
  • html纵向导航,【练习实例】HTML+CSS制作导航栏(横向与纵向)

    纵向导航栏 建立一个列表 主页 新闻 联系 关于 2 定义列表基本样式 ul 去掉列表的样式 list style type none width 200px background color DDDDDD li a 将内联元素转换为块级元
  • 安装并使用 iDRAC 服务模块

    DELL服务器 Integrated Dell Remote Access Controller 8 7 默认增加了iDRAC Service Module 但是根据官方文档 这个功能默认是没有打开 需要在服务器上安装 未安装前方法如下 1
  • linux下,用crontab定时执行scrapy任务

    之前尝试过很多方法用crontab执行scrapy的爬虫任务 但是都没出成功 总结下来有两点错误与相应的解决方法 1 手动执行时 在工程目录下输入scrapy crawl xxx就可以执行爬虫脚本了 但是用crontab时 如果直接在cro
  • 请收藏——QKL123!它能帮你挖掘项目价值(附2019年3月排行榜)

    QKL123区块链排行榜包括区块链项目 区块链交易平台 区块链媒体 区块链公众号 区块链矿机 区块链矿池 EOS Dapp ETH Dapp 区块链钱包九大榜单 相对第二期 2019年02月 榜单 该期首次新增ETH Dapp排行榜 并改进
  • 今天给大家分享一个绘图的 RGB COLOR TABLE

    如果大家觉得有用 就点个赞让更多的人看到吧
  • unity 触摸屏幕

    if Event current type EventType MouseDown 这里写鼠标按下 屏幕触摸按下 的代码 if Event current type EventType MouseDrag 这里写鼠标拖动 屏幕触摸滑动 的代
  • docker学习笔记--狂神

    Docker入门 Docker能做什么 虚拟机技术 虚拟机技术缺点 资源占用十分多 冗余步骤多 启动很慢 容器化技术 容器化技术不是模拟的一个完整的操作系统 比较Docker 和 虚拟机技术不用 传统虚拟机 虚拟出一条硬件 运行一个完整的操
  • springboot+mybatis实现多数据源

    1 前言 最近做项目碰到了一个需要连4个不同数据库的需求 其中db1 db2表结构都不相同 另外两个数据库same db private same db public表结构完全相同 一个对内一个对外 只是从物理上隔离了数据而已 所以打算通过
  • # Arduino小车PID调速——整定参数初试水

    Arduino小车PID调速 整定参数初试水 在实现了小车较为可靠的测速基础上 便可以正式开展PID调速实验了 本文是基于使用Arduino平台上由Brett Beauregard大神写的PID库进行参数整定的 侧重于在对PID算法有基本了
  • ubuntu下安装Docker

    ubuntu下安装Docker 注意 由于Docker需要在Linux Kernel 3 8及以上才可以很好的工作 本人在ubuntu12 04 lts 内核3 2也正常安装 官方更是推荐Ubuntu系统 这里有两种选择 Ubuntu 12
  • go语言面试题:简述bitmap的应用场景有哪些

    数据库索引 用来高效地进行数据查询 Web 日志分析 用来统计访问者信息 布隆过滤器 用来判断一个元素是否属于集合 缓存位图 用来高效地实现缓存管理 图像处理 用来表示和操作图像数据
  • 在服务器设置中smtp协议是指什么,outlook中的smtp协议具体是指什么

    outlook中smtp协议是指应用层的服务 可以适用于各种网络系统 outlook是微软办公软件套装的组件之一 它对windows自带的outlook express的功能进行了扩充 学习视频分享 编程视频 详细说明 Microsoft
  • ntp服务器超时无响应,设备从ntpd获取时间,但“ntpq -p”命令正在等待超时

    在我们的代码中 我们使用ntpd从服务器获取时间并设置时间 执行ntpd命令后 我们运行 ntpq p 来检查服务器偏移量 我们在不同的进程中运行ntpd的命令 并在完成ntpq之后运行 设备从ntpd获取时间 但 ntpq p 命令正在等
  • 祝福 Eric 的下一段旅程|Flutter 3.3 现已发布

    Flutter 团队及社区成员们在美丽的城市挪威奥斯陆向您发来问候 我们正在此参加社区举办的 Flutter Vikings 活动 这是一个为期两天的开发技术交流盛会 虽然线下门票已经售罄 但您还可以通过在线方式查看本次会议 本周 我们也有