• 中文
    • English
  • 注册
  • 查看作者
  • Flutter 3.3发布,带来新的预览版渲染引擎

    用户可以用谷歌UI框架Flutter基于一个代码库构建出原生编译的移动、Web和桌面应用程序。谷歌刚刚
    Flutter的2022年第3个版本,即
    。随之一起发布的还有
    。这两个版本都是改进版,没有添加重大的新特性。新添加的渲染引擎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代码交互。改进的类型推断可以更好地检测一些非空参数的情况。异步代码的体积更小,运行得更快。

    原文链接

    相关阅读:

  • 0
  • 0
  • 0
  • 174
  • 请登录之后再进行评论

    登录
  • 任务
  • 实时动态
  • 发布
  • 单栏布局 侧栏位置: