Flutter1.22 Release 简短介绍

时间:2021-7-21 作者:qvyue

原文: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

  1. 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应用程序)
  1. 针对 iOS 新的 SF Symbols字体更新支持, CupertinoIcons 的图标更新。
  2. 在Flutter 1.22 中可以创建 iOS 14的App Clips,给出了对应的开发文档:flutter.dev上的文档 和 简单的示例项目。

Android 11

  1. 可以通过使用 MediaQuery 和 SafeArea API, 对 Android 的多屏幕进行适配。
  2. 在显示软件键盘的动画与Android 11同步。
  3. Android 嵌入 API,已经默认从v1 版本切换到v2,v1版本将不再得到支持。

Flutter 框架相关

扩展”Button”的通用性

目前的Flutter中的按钮易用性太差,(个人感觉确实,很多地方直接用Gesture代替了)。引入了新的 Widgets 和 Themes。

Flutter1.22 Release 简短介绍
image.png

新的国际化和本地化支持

自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;
         },
       ),

查看Flutter中的声明式导航和路由的文章。

预览: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命令。

Flutter1.22 Release 简短介绍
image.png

新增 App 大小分析工具

Flutter 1.22 中发布的工具中包含App大小分析工具,可以在 build 任何平台包的时候添加--analyze-size flag 生成对应包大小的情况。

Flutter1.22 Release 简短介绍
image.png

同时会生成 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扩展的最新版本中,优化了从终端或堆栈跟踪中的错误输出中的链接。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。