近期,谷歌开发者官方宣布,Flutter 1.7正式发布,这是继上次 I/O 时众多重要功能发布以来的一次小更新。Flutter 1.7 包含了对 AndroidX 的支持,满足了 Play 商店近期对应用提出的要求,包含了一些新的和增强过的组件,修复了开发者们提出的 bug 等。
支持 AndroidX
AndroidX 是 Android 团队用于在 Jetpack 中开发、测试、打包和发布库以及对其进行版本控制的开源项目,帮助 Android 应用通过最新的组件保持更新而无需牺牲向后兼容性。目前 AndroidX 已经稳定,很多 Flutter packages 已经更新和支持它,Flutter 现在可以支持创建一个 AndroidX 项目 (new Flutter project with AndroidX) 了,这也减少了与 Android 生态系统集成您所需要做的工作。
当创建 Flutter 项目时,可通过添加 --androidx 来确保生成的项目文件支持 AndroidX,更多关于将项目迁移到 AndroidX 的相关信息,请访问 flutter.dev。我们也在积极努力为使用了 AndroidX 和 Android 混合库的应用带去 AndroidX 或 Jetifier 的支持,也会将其作为 add-to-app 中的一项来支持,之后的文章中会为大家带来更多相关的内容。
支持 Android App Bundles 和 64 位的 Android 应用
从 2019 年 8 月 1 日开始,为了 target 到 Android Pie 版本,开发者们在 Google Play 上发布的应用必须支持 64 位架构。Flutter 一直都支持生成 64 位的 Android 应用,在 1.7 版本里,谷歌加入了对 Android App Bundles 的支持,开发者们可以在一次提交里同时 target 到 64 位和 32 位。也可以访问文档以了解到如何分别生成 32 位和 64 位的应用等更多内容。
如何分别生成 32 位和 64 位的应用
https://flutter.dev/docs/deployment/android
新一批的widget和框架的增强功能
希望你的应用在任何平台上都可以看起来平滑自然,会持续在平台相关的widgets上投入。
如下所示了一个名为RangeSlider的widget,帮助您在单个滑块上选择一组值:
△RangeSlider widget 支持连续或者分散的效果
RangeSlider
https://github.com/flutter/flutter/pull/31681
更新之后的SnackBar支持了最新的Material规范,文档里增加了许多样例代码。
SnackBar
https://github.com/flutter/flutter/pull/31275
Cupertino是用来构建精美的iOS体验的widgets库,我们对其进行了大量的更新。特别提出的是,我们提高了CupertinoPicker和CupertinoDateTimePicker widget的保真度,并增加了对非英语语言本地化的支持。
Cupertino
https://flutter.dev/docs/development/ui/widgets/cupertino
提高了CupertinoPicker和CupertinoDateTimePicker widget的保真度
https://github.com/flutter/flutter/pull/31464
提升了iOS上的文本选择和编辑体验。此外,新增了一个示例,关于如何使用同一份代码库,调整不同平台的操作体验和适配。
提升了iOS上的文本选择和编辑体验
https://flutter.dev/docs/resources/platform-adaptations#text-editing
示例
https://github.com/flutter/samples/tree/master/platform_design
文本渲染有了很大的提升,支持了丰富的排版样式:包括数字表格式对齐、旧式风格数字(tabular and old-style numbers)、斜线零(slashed zeros)、样式集(stylistic sets),如这个示例应用截图所示:
△有了OpenType的字体支持,您可以用Flutter进行复杂的文字排版了
最后,加入了游戏控制器的支持,这会有更好玩的应用出现吗?
丰富的排版样式
https://api.flutter.dev/flutter/painting/TextStyle/fontFeatures.html
游戏控制器的支持
https://github.com/flutter/flutter/pull/33868