Flutter 3.0 发布啦~快来看看有什么新功能-2022 Google I/O

打印 上一主题 下一主题

主题 518|帖子 518|积分 1554

  1. 本次 Flutter 3.0 主要包括 macOS 和 Linux 的稳定版发布,以及相关的性能改进等。原文链接 https://medium.com/invertase/please-welcome-flutter-3-0-44b22d8a5675
复制代码

我不敢相信又到了另一个主要的Flutter稳定版本的时候了。是的,各位,欢迎Flutter 3.0。
去年,在Google I/O上,Flutter团队宣布了Flutter 2.2。从那时起,Flutter有一些重大改进和稳定的发布。AtInvertase,作为一家开源公司,我们也感谢数百名社区贡献者为Flutter所做的所有辛勤工作;荣誉,大家!它显示了Flutter的表现有多出色,以及其团队在解决关键问题、升级Flutter并将其提升到一个新的水平方面的响应能力。
本文将总结Flutter和Dart的新功能。
介绍Flutter 3.0
Flutter主要设计为便携,能够创建漂亮的应用程序。Flutter开发人员工具专注于使我们的开发过程快速高效。
在Google I/O 2022上,Flutter 3.0宣布了!让我们看看这个主要版本有什么新功能!

macOS和Linux终于稳定了!
Windows、Web、Android和iOS已经稳定了一段时间,最后,我们可以欢迎macOS和Linux加入稳定支持列表。Flutter 3是Flutter迄今为止旅程中最重要的里程碑之一,因为Flutter 3.0正式支持稳定频道上的所有六个平台。

Flutter Web上的改进
Flutter web在这个版本中没有收到很多升级。然而,有一些重大的增强,特别是在性能方面。
应用程序生命周期API
一个新的API,为您提供对Flutter框架、引擎和内容的完全控制。这允许您在网络上以无头模式运行Flutter。一个例子可能是在显示登录屏幕或进度条时预加载内容!
您可以在 gallery.flutter.dev(源代码)上看到这一新更改,在那里您将看到一个启动屏幕,可以放大并加载整个应用程序。
更快的图像解码和滚动
适用于Web的Flutter 3在图像解码和滚动方面有了很大的改进,特别是使用Chrome 99+。
事实上,Flutter正在利用浏览器中新的Web编解码器API来改进解码图像,并引入了更好的滚动方式,在解码图像时很有可能获得60 fps。
Flutter Dev工具
Flutter DevTools是Flutter的绝佳补充,有助于尽可能高效地调试任何Flutter应用程序。Flutter DevTools 2.12.2中有一些更新


  • 增强性能选项卡下的跟踪
  • “网络”标签页上的改进
  • 提供商跟踪更改通知器的专用插件

Android和iOS更新
Android和iOS从一开始就是领先的平台,在Flutter 3中,他们进行了一些重大升级。
可折叠设备支持
Flutter团队和微软合作,为可折叠设备提供更好的支持。
材料3个小部件
我们都一直在等待Material 3,是的,它已经登陆了Android版Flutter。这是对Material小部件的大规模更新,它使开发人员能够欢迎Material You进入他们的Android应用程序。
Material 3(也称为Material You)是下一代Material Design。重大变化包括色彩系统改进、排版改进和许多组件的更新。
Flutter中的Material 3小部件具有一些功能,包括


  • 自适应颜色
  • 新按钮
  • 新应用程序菜单
  • 可变字体支持

在Flutter 3.0中使用Material 3需要做的是通过参数启用它ThemeData
  1. return MaterialApp(
  2.     theme: ThemeData(useMaterial3: true),
  3.     // ...
  4. );
复制代码
增强的平台视图
Android上的平台视图支持已重新架构,使原生内联添加更加流畅。
让Flutter工作
该项目是一个演示,旨在通过将Flutter集成到现有应用程序中来帮助人们测试Flutter。此回购协议中包含一个Flutter插件模块,其中包含显示弹出窗口以捕获用户反馈的用户界面和逻辑(“净推广者分数”)。除了该模块外,还有三个适用于iOS、Android和Web的新闻提要应用程序,分别使用SwiftUI、Kotlin和Angular构建。在这里阅读更多关于让Flutter工作
Flutter休闲游戏工具包
Flutter正在利用Flutter和Flame等开源游戏引擎提供的硬件加速图形支持,使休闲游戏开发人员更容易开始。

其他更新


  • 增强code lints
  • 改善桌面可访问性
  • 层叠菜单
  • 桌面系统菜单支持
  • 主题扩展
  • iOS 的简化发布模式
  • CJK桌面支持
  • 已签名的可执行文件
  • Apple Silicon原生二进制文件(在此处阅读更多内容)
介绍Dart2.17
Dart 2.17稳定版与Flutter 3.0一起宣布,以及开发人员一直在等待的许多期待已久的功能。Dart是Flutter背后的秘密酱汁,Dart的任何改进都将有助于改善Flutter的发展。我们来看看新功能。

增强的枚举
A massive update has landed for enum to super-charge them. We use leverage extensions to extend the functionality of enums including defining methods. Starting from Dart 2.17, we no longer need to use our older model to work with enum .
  1. enum Cars {
  2.   tesla('Model X', 200);
  3.   bmw('X6', 120);
  4.   porsche('Tycon', 220);
  5.   final String name;
  6.   final int price;
  7.   const Cars(this.name, this.price);
  8.   String get nameAndPrice => '$name:$price';
  9.   String greeting(String yourName) {
  10.     return 'My name is $yourName and I have a $name that costs $price!';
  11.   }
  12.   @override
  13.   String toString() {
  14.     return 'The name is $name and price is $price';
  15.   }
  16. }
  17. void main() {
  18.   print(Cars.tesla.greeting('Majid'));
  19.   print(Cars.bmw);
  20.   print(Cars.porsche.name);
  21. }
复制代码
超级构造函数
这可能是我最喜欢的方法之一,它将速记我们的编码,您可以在其中将构造函数参数传递给超类。
让我们来探索一下新语法的样子。我们以前有下面的旧语法
  1. class Animal {
  2.   Animal(this.name);
  3.   final String name;
  4. }
  5. // Old way: before Dart 2.17
  6. class Dog extends Animal {
  7.   Dog(String name, this.age) : super(name);
  8.   final int age;
  9. }
复制代码
新的语法很简单
  1. class Animal {
  2.   Animal(this.name);
  3.   final String name;
  4. }
  5. // New way: Dart 2.17 and above
  6. class Dog extends Animal {
  7.   Dog(super.name, this.age);
  8.   final int age;
  9. }
复制代码
在任何地方命名args
以前,我们必须在构造函数的最后位置添加名称参数。从Dart 2.17开始,我们不再需要这样做。您可以将命名参数放在构造函数的任何地方。
  1. class Animal {
  2.   Animal(this.name);
  3.   final String name;
  4. }
  5. class Dog extends Animal {
  6.   Dog(super.name, {required this.age});
  7.   final int age;
  8.   void bark() => print('$name is $age year-old and is barking');
  9. }
  10. void main() {
  11.   Dog(age: 4, 'Lucy').bark();
  12. }
复制代码
下一步是什么?
我试图总结并为您提供Flutter 3.0的最佳功能。然而,我建议观看主旨演讲,享受精彩的演讲和激动人心的采访。
您可以阅读Introducing Flutter 3Dart 2.17:生产力和集成博客以获取更多信息。
我相信Flutter继续以更多功能给我们带来惊喜,我希望Flutter社区是Flutter成功的重要组成部分,可以帮助增强Flutter生态系统。
尽管如此,我们在Invertase的目标是以不同的方式支持Flutter社区,并希望改善Dart和Flutter生态系统。我们开始填补我们认识到的空白,并努力以我们的开源心态和努力服务。
事实上,我们已经开始通过FlutterFire、Melos、Spec等项目来做这件事!在接下来的几周里,我们为您和Flutter社区提供了精彩的新闻和更新。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表