从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...

相关推荐
lichong95112 小时前
Android studio release 包打包配置 build.gradle
android·前端·ide·flutter·android studio·大前端·大前端++
旧时光_13 小时前
第3章:基础组件 —— 3.6 进度指示器
flutter
旧时光_14 小时前
第3章:基础组件 —— 3.3 图片及ICON
flutter
GISer_Jing15 小时前
跨端框架对决:React Native vs Flutter深度对比
flutter·react native·react.js
猪哥帅过吴彦祖19 小时前
Flutter 从入门到精通:深入 Navigator 2.0 - GoRouter 路由完全指南
android·flutter·ios
恋猫de小郭21 小时前
来了解一下,为什么你的 Flutter WebView 在 iOS 26 上有点击问题?
android·前端·flutter
你听得到112 天前
肝了半个月,我用 Flutter 写了个功能强大的图片编辑器,告别image_cropper
android·前端·flutter
旧时光_2 天前
第3章:基础组件 —— 3.2 按钮
flutter
旧时光_2 天前
第3章:基础组件 —— 3.1 文本及样式
flutter
旧时光_2 天前
第2章:第一个Flutter应用 —— 2.8 Flutter异常捕获
flutter