Flutter 1.12 正式发布,为这一年画上圆满的句号!
多项重要的性能改进
https://github.com/flutter/engine/pull/12385
https://github.com/flutter/flutter/pull/36482
https://github.com/flutter/engine/pull/10182
https://github.com/flutter/flutter/pull/37275
Flutter 框架
全面支持 iOS 13 深色模式
△ 上图左侧为 CupertinoContextMenu
右侧为 CupertinoSlidingSegmentedControl
CupertinoContextMenu
https://api.flutter.dev/flutter/cupertino/CupertinoContextMenu-class.html
CupertinoSlidingSegmentedControl
https://api.flutter.dev/flutter/cupertino/CupertinoSlidingSegmentedControl-class.html
提高滚动条保真度 https://github.com/flutter/flutter/pull/41799 自适应对话框弹出模式 CupertinoAlertDialog https://github.com/flutter/flutter/pull/42967 在 CupertinoDatePicker 内添加最小/最大日期约束 https://github.com/flutter/flutter/pull/44149
Add-to-App 更新
Flutter 1.12 现已正式支持 Add-to-App 功能,允许开发者在应用中添加一个全屏 Flutter 实例。在支持这个功能的同时,我们还:
提高了 API 稳定性,以便在平台中集成 Java、Kotlin、Objective-C 和 Swift 代码,其中包括一套全新的 Android API。请参阅 Android 项目迁移说明,了解变更细节。
支持在内嵌 Flutter 模块中使用插件。
通过 Android AAR 和 iOS 框架提供额外的集成机制,以提高与现有构建系统的兼容性。
更新了命令行工具、VSCode 和 IntelliJ 插件中的 "flutter attach" 机制,方便开发者接入正在运行的 Flutter 模块,并进行调试,使用 DevTools 或者进行热重载。
Android 项目迁移说明 http://flutter.dev/go/android-project-migration Android AAR https://flutter.dev/docs/development/add-to-app/android/project-setup#option-a---depend-on-the-android-archive-aar iOS 框架 https://flutter.dev/docs/development/add-to-app/ios/project-setup#option-b---embed-frameworks-in-xcode
Add-to-App 文档 https://flutter.dev/docs/development/add-to-app 示例项目 https://github.com/flutter/samples/tree/master/add_to_app
Dart 2.7 现已发布 https://medium.com/dartlang/dart-2-7-a3710ec54e97
在 Flutter 1.12 稳定版之外也同样精彩
Rivet
https://rivet.area120.com/link/flutter
Flutter web 支持文章
https://docs.google.com/document/d/1cM50TfAJ8O6tS5LQ2_sFuqoY6jg6dyQ7vZIlGBafYiE/edit#heading=h.q2gs8pjlvvhv
上图展示的是桌面尺寸的新版 Flutter Gallery,经过彻底升级,现在它已经支持 Android、iOS、web 和 macOS。
新版 Flutter Gallery https://github.com/material-components/material-components-flutter-gallery
macOS 端支持的 alpha 版代表着 Flutter 在桌面支持领域的重大进展,其中包括全新的 DataTree、Split 示例 widget、已成功移植至 macOS 的多个插件、发布 (release mode) 和分析模式 (profiling mode) 内的构建支持、以及更为简便的工具体验。如果您通过 master 和 dev 渠道运行 Flutter,请在 Flutter 系统配置中启用 macOS 桌面端支持,以便获取 macOS 工具:
$ flutter config --enable-macos-desktop
示例
https://github.com/gspencergoog/density_sample
Material 视觉密度设计规范
https://material.io/design/layout/applying-density.html
最后一点,为了改善 Flutter 桌面应用的体验,我们还在键盘导航和键盘访问方面做了不少工作,包括:
在按键事件中同步修饰键信息
https://github.com/flutter/flutter/pull/43948
在下拉列表打开时管理项目选取
https://github.com/flutter/flutter/pull/43722
为主焦点添加便利访问器
https://github.com/flutter/flutter/pull/43859
为切换控件添加键盘导航、悬浮和快捷方式
https://github.com/flutter/flutter/pull/43384
勾选框和单选按钮
https://github.com/flutter/flutter/pull/43384
自动滚动以便让焦点项维持在视野内
https://github.com/flutter/flutter/pull/44965
基于键盘快捷方式的滚动
https://github.com/flutter/flutter/pull/45019
处理焦点和悬浮的新 widget
https://github.com/flutter/flutter/pull/44867
重写复制/粘贴和键盘选取
https://github.com/flutter/flutter/pull/44130
下拉列表键盘导航
https://github.com/flutter/flutter/pull/42811
视觉密度支持
https://github.com/flutter/flutter/pull/43547
添加 macOS 功能键支持
https://github.com/flutter/flutter/pull/44410
至于 Windows 和 Linux 支持,它们目前还处在技术预览阶段,不过,macOS alpha 版的开发经历很多值得借鉴的地方,有助于我们之后开展 Windows 和 Linux 的工作。我们近期就会和大家分享关于这两个平台的最新消息。如果您想进一步了解 Flutter 为 macOS、Windows 和 Linux 等桌面系统提供了哪些支持,请移步 flutter.dev/desktop。
了解 Flutter 桌面端支持 https://flutter.dev/desktop
Flutter 开发工具
DartPad 现已支持 Flutter
DartPad https://dartpad.dev
除了单独的 DartPad 网站之外,我们还在文档和 codelab (如 "Flutter 布局基础教程" 和 "隐式动画") 中加入了带 Flutter 支持的 DartPad,从而方便大家在浏览器中学习 Flutter。如果您想要了解更多关于 DartPad 的信息,请阅读《DartPad.dev 全面升级,现已支持 Flutter》。
Flutter 布局基础教程 https://flutter.dev/docs/codelabs/layout-basics 隐式动画 https://flutter.dev/docs/codelabs/implicit-animations DartPad.dev 全面升级,现已支持 Flutter https://medium.com/dartlang/a-brand-new-dartpad-dev-with-flutter-support-16fe6027784
在 IDE 中通过 Hot UI 直接构建 widget
如果您在自己的机器上安装了本地工具 (我们也希望您这么做),您会在 Flutter 的 IntelliJ/Android Studio 插件中找到一个新功能预览。现在您可以在开发 widget 的过程中,直接在 IDE 里进行预览并与之进行交互。
我们把这个功能起名为 Hot UI,它与热重启有点类似,当您在代码中做出改动的时候,Hot UI 就会直接更新对应的 UI。您也可以和 UI 进行互动 (比如像上图中这样更改颜色),所有改动会直接写入代码。如需启用 Hot UI 预览功能,请阅读 Github Flutter wiki 页面上的操作指南。
Github Flutter wiki 页面上的操作指南 https://github.com/flutter/flutter-intellij/wiki/HotUI-Getting-Started-instructions
无论您是选择自己手写代码,还是让 Hot UI 替写,代码中出现问题总是难免的。我们推出 Dart DevTools 工具的目的就是,帮助您找到并修复这些问题。在新版 DevTools 中,我们添加了一个名为 Layout Explorer 的功能,它能够以可视化的方式呈现应用的布局信息,从而让检查器可以更好地发挥功能。
Layout Explorer 不仅能以可视化的方式展现正在运行的应用中的 widget 布局,而且还允许您以交互的方式更改布局选项。我们希望这个功能预览可以让您更容易理解并修正布局问题。如需启用这一功能,请参阅 Layout Explorer 官方文档。
Layout Explorer 官方文档 https://flutter.dev/docs/development/tools/devtools/inspector#flutter-layout-explorer
使用 VS Code 进行多设备调试 https://github.com/flutter/flutter/wiki/Multi-device-debugging-in-VS-Code
Android 构建改进
迁移至 AndroidX https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
Golden 图像测试
GoldenFileComparator https://api.flutter.dev/flutter/flutter_test/GoldenFileComparator-class.html LocalFileComparator https://api.flutter.dev/flutter/flutter_test/LocalFileComparator-class.html 消除错误比较结果 https://github.com/flutter/flutter/issues/30036
社区
腾讯视频链接
https://v.qq.com/x/page/m3034tzisfx.html
Bilibili 视频链接
https://www.bilibili.com/video/av78943055/
Flutter Favorite 代码包
Verified Publishers https://medium.com/dartlang/verified-publishers-98f05466558a 评分系统 http://go/dart-2.7-annoucement
Flutter Favorite
https://docs.google.com/document/d/1rjdOE5lo9vAJItfTRzyQeit_dYFYJALJdsxOdKNTvJE/
请大家前往 flutter.dev 网站上的 Flutter Favorite 页面了解详情。您也可以前往 pub.dev 查看完整的 Flutter Favorite 代码包列表。关键是,如果您是应用开发者,而且您看到了 Flutter Favorite 徽标,那么您就可以认为这个代码包是可以信赖的。如果您是得到 Flutter Favorite 认证的代码包作者,我们非常感谢您对 Flutter 生态圈所做的贡献。
Flutter Favorite https://docs.google.com/document/d/1rjdOE5lo9vAJItfTRzyQeit_dYFYJALJdsxOdKNTvJE/ Flutter Favorite 代码包列表 https://pub.dev/flutter/favorites
谈到值得骄傲的贡献,就不得不说 Flutter 社区打造的众多出色工具。我们在下面列举部分成果。
△ Flutter 设备预览
△ Widget Maker
Flutter 设备预览
https://github.com/aloisdeniel/flutter_device_preview
FlutterHub
https://flutterhub.io/
Flutter Device Preview
https://github.com/aloisdeniel/flutter_device_preview
Widget Maker
https://www.widgetmaker.dev/
Panache
https://rxlabz.github.io/panache/#/
Remote Mac https://marketplace.visualstudio.com/items?itemName=codemagic.remote-mac
Codemagic - 企业功能及 VS 插件 https://docs.google.com/document/d/1ymvS3E15dUbvrnj1qv0PzeBi40s7y1-t-YYudkHkLCM/
其他工具开发伙伴们的进展也不容错过,欢迎阅读《Flutter: 首个面向环境计算打造的 UI 平台》了解 Supernove、2Dimensions 和 Adobe 最新发布的产品。
Flutter: 首个面向环境计算打造的 UI 平台 https://developers.googleblog.com/2019/12/flutter-ui-ambient-computing.html
结语
Flutter v1.12 发布说明 https://flutter.dev/docs/development/tools/sdk/release-notes/release-notes-1.12.13
Flutter 开发者社区中文资源: https://flutter.cn
想了解更多 Flutter 内容?
在公众号首页发送关键词 "Flutter",获取相关历史技术文章;
还有更多疑惑?欢迎点击菜单 "联系我们" 反馈您在开发过程中遇到的问题。
推荐阅读