从Google IO学习Flutter

Dart语法持续进化

Sound null safety:可以理解为如果声明为可为空的属性,需要判断是否为空;如果声明为不可为空的属性,就不需要判断是否为空,一定非空。示例代码如下:

scss 复制代码
void main() {
  printAge(null);
  printAge(12);
}

void printAge(int? age) {
  if (age != null) {
    print('age is $age');
  } else {
    print('age is null');
  }
} 

Dot Shorthand:允许你在上下文已知的情况下引用枚举值,而无需重复类型。这意味着更少的输入、更少的错误以及更简洁的代码。可以理解为推断出类名称。示例代码如下:

yaml 复制代码
 body: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[...],),)

简写成:

yaml 复制代码
 body: SafeArea(
        child: Column(
          mainAxisAlignment: .spaceBetween*,
          crossAxisAlignment: .stretch,
          children: <Widget>[...],),)

flutter和dart都升级到了最新的版本,执行命令行中添加--enable-experiment=dot-shorthands也不能正常执行。 Dot Shorthand仍处于实验阶段,在稳定的Flutter版本中不受支持。

null aware elements:尽可能在集合文字中使用可空感知元素。 示例代码如下:

scss 复制代码
void main() {
  print(f(null));
  print(f('key'));

}

f(String? key) => {?key: "value"};

示例结果:

css 复制代码
{}
{key: value}

Property Editor

Flutter插件的85.3版本才增加Add Property Editor,但是Android Studio中的plugins中最新的版本是85.2.2,等85.3版本发布出来之后我们才能体验。 85.3

  • Add Property Editor side panel (#7957)
  • Support removed for IDEA 2024.1 (Koala) and 2024.2 (Ladybug) (#8073)
  • Various cleanups including migrating slow operations to non-blocking calls (#8089)

平台线程和UI线程合并

Impeller Android默认渲染器

从Flutter 3.29版本开始,Flutter开始使用Impeller作为Android的主渲染器在Android API28以上的设备上,在28以及以下的设备上继续使用Skia。

Flutter web with Hot reload

Flutter web终于实现了热重载。

Canonical开发多窗口

AI

AI已来,未来已来。AI赋能的应用将会发布到各个平台。

参考资料

docs.flutter.dev/release/rel...

dart.dev/null-safety

www.youtube.com/watch?v=v6R...

dart.dev/tools/linte...

plugins.jetbrains.com/plugin/9212...

相关推荐
Android-Flutter8 小时前
flutter GetX 详解
android·flutter
坚果的博客13 小时前
Flutter OHOS 环境搭建实战:oh-3.44.9-dev 从 0 到 1 完整记录
flutter·华为·harmonyos
Crazy_MT14 小时前
Android Studio 运行 Flutter iOS 真机白屏,但 Xcode 和命令行正常的排查记录
flutter·android studio
Android-Flutter15 小时前
flutter async/await 详解
android·flutter
SoaringHeart16 小时前
Flutter 进阶 | 组件封装:用 CustomPainter 实现光环动画组件AnimatedHalo
前端·flutter
Light Gao16 小时前
企业级移动端 APP 架构设计:从原生双端到 Hybrid、React Native 与 Flutter
flutter·react native·react.js
末代iOS程序员华仔1 天前
iOS 5.6 条例解决方法
flutter·ios·swift
末代iOS程序员华仔2 天前
Guideline 5.6 - Developer Code of Conduct
flutter·ios·swift
恋猫de小郭2 天前
聊个比较有意思的 Flutter Web 问题
android·前端·flutter
2501_915918412 天前
Flutter项目配置iOS混淆的详细步骤与工具推荐
android·flutter·ios·小程序·uni-app·cocoa·iphone