原文:https://medium.com/flutter/announcing-flutter-1-22-44f146009e5f
Flutter最新发布版为1.22,本次更新主要为题集中在兼容了最新的 iOS 14 和 Android 11系统,可以预见Flutter作为一个款平台开发的框架,以后只要各平台有新的重大版本更新。Flutter为兼容各个平台都会有可能进行一次版本的更新。
那么来看下本次 Flutter 版本更新的要点:
支持最新的iOS 14 和 Android 11系统
iOS 14
- iOS方面主要是对 iOS14 兼容和Bug修复(对详细不感兴趣的以下可以略过)。
- Xcode 12需要iOS 9.0或更高版本,Flutter将默认模板的版本默认值从8.0增加到9.0。
- 修复iOS 14的奔溃问题和字体渲染问题。
- 从Flutter 1.20.4起,修复了部署真机设备问题
- 从Flutter 1.20.4起,修复App在访问其剪贴板时显示使用通知,导致在Flutter应用程序中出现虚假通知。
- 应用程序访问其剪贴板时显示使用通知,导致在Flutter应用程序中出现虚假通知
- 针对本地调试的Flutter应用程序的有关网络安全的新策略使iOS 14显示一次性确认对话框(仅在开发过程中,不适用于已发布的Flutter应用程序)
- 针对 iOS 新的 SF Symbols字体更新支持, CupertinoIcons 的图标更新。
- 在Flutter 1.22 中可以创建 iOS 14的App Clips,给出了对应的开发文档:flutter.dev上的文档 和 简单的示例项目。
Android 11
- 可以通过使用 MediaQuery 和 SafeArea API, 对 Android 的多屏幕进行适配。
- 在显示软件键盘的动画与Android 11同步。
- Android 嵌入 API,已经默认从v1 版本切换到v2,v1版本将不再得到支持。
Flutter 框架相关
扩展"Button"的通用性
目前的Flutter中的按钮易用性太差,(个人感觉确实,很多地方直接用Gesture代替了)。引入了新的 Widgets 和 Themes。
新的国际化和本地化支持
自Flutter创立以来,Flutter已提供您的应用程序国际化(i18n)和本地化(l10n)所需的核心功能。但是,在此版本中,我们将最佳做法的意见纳入了我们的工具中,甚至在添加新的l10n信息时启用了热重装支持来更新您的应用。
Google Maps和WebView插件准备投入生产
相当于Flutter的开发人员认为Google Maps、WebView两款插件已接近于稳定可以放心使用了,大天朝的Google Maps还是算了。
Navigator 2.0
Flutter 通过Navigator.push()、Navigator.pop() 进行导航管理。在Navigator1.0时,我们并不能显示控制同时push几个页面,但是在Navigator2.0时我们可以通过显示创建一个导航器:
Navigator(
// you can see and decide on every page in this list
pages: [
MaterialPage(
child: ColorListScreen(
colors: _colors,
onTapped: (color) => setState(() => _selectedColor = color),
),
),
if (_selectedColor != null) MaterialPage(child: ColorScreen(color: _selectedColor)),
],
onPopPage: (route, result) {
if (!route.didPop(result)) return false;
setState(() => _selectedColor = null);
return true;
},
),
预览:Android的状态还原
支持Android的状态还原,当App 在后天运行时,被操作系统杀死时,我们可以通过保存App的UI状态,方便用户回到App时能够无缝操作。
预览:平滑滚动以提供不匹配的输入和显示频率
void main() {
GestureBinding.instance.resamplingEnabled = true;
run(MyApp());
}
根据所涉及的频率差异,启用此标志可以使滚动时的颤动减少多达97%。计划在以后的版本中默认启用此标志。
Flutter 开发工具相关
新增 Dart 命令行指令
Flutter 1.22 SDK开始,您会发现/ bin文件夹(您可能在PATH中包含该文件夹)同时包含flutter和dart命令。
新增 App 大小分析工具
Flutter 1.22 中发布的工具中包含App大小分析工具,可以在 build 任何平台包的时候添加--analyze-size
flag 生成对应包大小的情况。
同时会生成 json 文件,通过Dart DevTools我们可以查看更多细节。flutter.dev上的“使用应用大小工具”文档。
预览:DevTools中更新的网络页面
在 DevTools 中可以在查看 HTTP / HTTPS 响应体。
IntelliJ中的托管DevTools检查器选项卡
IntelliJ中的Inspector窗格和Dart DevTools中的Inspector选项卡,存在重复,Flutter 1.22开始直接从IntelliJ内部的Dart DevTools托管“Inspector”选项卡的功能。
优化Visual Studio Code中的输出链接
在适用于Visual Studio Code的Flutter扩展的最新版本中,优化了从终端或堆栈跟踪中的错误输出中的链接。