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