Google发布Flutter 1.17开始支持Metal,大幅提升iOS应用性能

开源Flutter框架发布了最新1.17版本,全面提升性能以及内存使用效率,最终用户将明显感受到用户接口更加顺畅,而且因为Flutter开始支持iOS平台的绘图API Metal,因此iOS应用程序执行性能将更好,另外,Flutter还更新了一些好用Material小工具,使开发者可在应用程序提供更好的视觉效果。

性能改进是这个版本的更新重点,只要开发者将应用程序中的Flutter升级到1.17版本,则用户可以明显看到接口动画表现更加平滑快速,而且应用程序整体的容量也更小,内存使用率更低。

在这个版本,默认导航案例执行速度提升20%到37%,对于简单的iOS动画,CPU和GPU使用率最多减少40%,不过,具体效果与实际的硬件规格有关。另外,这个版本还改进应用程序的大小,以Android的Flutter Gallery范例为例,2019年底的版本容量为9.6 MB,而现在则为8.1 MB,总共减少了18.5%。而在内存的使用上,这个版本在快速卷动画面浏览大图像时,可减少70%的内存使用,这将能提高应用程序性能,但是具体提升的程度,仍取决于本身设备的内存容量。

这个版本最大的性能改进,便是开始支持Metal,Apple在iOS设备上对Metal的支持,几乎到了可直接访问底层GPU的程度,让Flutter得以大幅提升渲染效率,现在于完全支持Metal的iOS设备,Flutter会默认使用Metal,使得Flutter应用程序在大部分情况能够执行得更快,平均可提高渲染速度50%(下图)。而对于不支持Metal的设备,也就是使用A7处理器以下的设备,或是iOS 10以前的版本,将会跟过去一样继续使用OpenGL。

官方提到,他们根据用户的反馈,改进Flutter中的Material设计系统实例,在Flutter 1.17中,新加入几个Material小工具,包括由Google的Material Design团队设计和实例的NavigationRail,这是个回应式应用程序导航模型小工具,适用于需要在移动设备和桌上计算机间切换的应用程序,可以随着应用程序屏幕尺寸增加切换使用BottomNavigator。

Material DatePicker则有新版本,更新加入了新的视觉效果,以符合新的Material准则以及新的文本输入模式,在Android和iOS,文本选择菜单的呈现更良好,菜单过长的时候不会超出屏幕。另外,Flutter 1.17也加入了新的动画组件(下图),提供开发者许多预构建的动画。

官方提到,发布Flutter 1.17版本比其他版本花费了更多的时间,他们花了许多时间在提升框架品质上,在今年,他们修复的问题(Issue)比创建的还要多,总数减少了约800个,从所有231位贡献者那整合了3,164个拉取请求。