前言
就在本周二(11月16日)Google 开发者大会发布了一系列技术专题的 Talk,周末抽空整理了一下 Flutter 相关系列的专题,大家可以快速浏览,找自己感兴趣的进行观看。
使用 Flutter 构建自适应跨平台应用|点击观看
Flutter 现在已经不仅是移动端开发框架,Web 以及桌面端也是它发光发亮的地方,而我们仅使用一套代码做多端适配的时候,势必会遇到各种问题。在这个 Talk 中 Flutter 产品经理 Kevin Moore 分享了如何做平台自适应的应用。主要分为三个方面:
- 适配外形规格和尺寸
- 适配不同平台的输入方式,例如鼠标,键盘和触控屏
- 遵循不同平台的风格和规范,让用户获得熟悉的使用习惯
在这篇官方文档中你可以获得更多信息。
Flutter 的 Deferred Components|点击观看
这篇 Talk 主要是讲的使用延迟加载组件减少 Flutter 包体积的能力。Google Play 很早之前就推出 AAB (AndroidApp Bundle 通过将组件拆分,让用户不需要下载全部代码,就能够先安装应用,之后用到了再按需下载组件提供对应的服务,能够减少相当可观的安装时包体积,但这项功能仅能在 Play Store 上使用)。Flutter 的延迟加载能力(Deferred Components)也同样支持了这一点。
dart 2.13 支持了拆分 AOT 编译产物的能力,让我们能够在 runtime 的时候下载对应编译的代码以及资源然后再进行加载。「Deferred Components 包含了拆分出来的 Dart AOT 代码,以及资源文件。」
对于在 PlayStore 上架的应用来说,Deferred Components 能够直接使用 Android 提供的动态加载功能,而其他不支持的该能力的应用商店,你也可以通过 Deferred Components 提供的 API 自行实现该功能,也就是说理论上国内的应用也可以搞这个了。然而这个能力也是有局限性的,仅 Android 可以支持延迟加载组件。
如果你对包体积缩减也有很强的诉求的话,可以尝试用这个方式进行优化,更多详细信息可以查看这篇官方文档。
利用懒加载提升 Flutter 应用性能|点击观看
Flutter 在许多可滚动的 Widget (例如常见的 ListView.builder
)上都使用了懒加载的策略,提升应用在这种场景下的流畅度。Flutter 工程师 Justin 在这次的 Talk 中分享了 Flutter 是如何使用懒加载策略的,以及如果不开启这个的话我们会遇到什么样的问题,以及这个能力的局限。
为何要使用「空安全」功能 |点击观看
空安全是一项能够将 Runtime 的空检查提升到编译期的能力,开启了空安全功能之后我们代码中的类型将默认是非空的,意味着除非你声明它们可空,它们的值都不能为空。这能够让我们编写更加健壮的代码,最近 Dart 在 2.12 版本正式启用了空安全功能。在这个 Talk 中,Dart 的软件工程师 Bob 分享了为什么我们需要使用空安全,以及 Dart 的静态分析器是如何推断的。
空安全是一项强大的功能,在许多现代编程语言都已经支持了(例如 Kotlin、Swift),每一位 Dart 开发者都应该了解这项能力。推荐各位阅读这篇官方文档。