Appearance
导言
本Flutter性能优化详解手册为JKKF.CN原创,不授权任何条件下的转载。我们从多年的Flutter开发经验中,为各位全方位总结Flutter性能优化的技巧。我们将完成手册的逐步更新,如果您有任何好的建议欢迎一同分享给诸多即将入坑的Flutter开发者。
Flutter的性能真的接近原生吗?这个答案因人而异,但从实际的情况来看,Flutter的性能其实得分端,分设备来看。对于IOS和Android都有不一样的性能查询表现,总体来看目前的最新版本的Flutter距离原生的水平差距并不大。
值得注意,这并非一个入门教程,如果你刚开始学习Flutter那么需要参考官方文档。有关于Dart和Flutter的基础教程,我们会在后续的编写中增加新的教程。
相比Uniapp 的性能优势
UniAPP无法和Flutter相比,也没有比较的必要。因为UniAPP的底层是H5,而Flutter的底层是原生。Uniapp的优势主要在于小程序的开发方式,可以快速开发,并且可以跨平台。但是Uniapp的缺点也很明显,因为Uniapp的底层是H5,所以性能和原生的差距还是很大。所以Uniapp在APP开发的未来已经很受限,Webview有多大的能耐,它就有多大的能耐。而Flutter则不一样,还有很多进化空间,而且从UI的体验来看,目前的Flutter在安卓下,动画也好,组件也好可以做到与原生一致。(不得不说在过去的版本中,掉帧真的非常明显)。除去QT这些经典,高入门成本的框架,Flutter的跨平台逻辑是目前最理想的。
当然,如果Uniapp适合你,那么优先选择它,因为有时候,Flutter的UI表现,在非极致的优化下,真的比不过Uniapp。这取决于开发者对Flutter实现的了解和能力。
专题Flutter和Uniapp哪个好?
相比React Native
React Native使用了JS来调用原生的API,从而实现UI的绘制。如果你在犹豫React Native和Flutter,那么React Native的优点就是和原生系统一致的组件,原生的体验。所以Flutter就是一个画板,核心的就是你在这个画板上,如何绘制你的UI,并轻易做到在多个平台上表现的一致。而RN则和系统组件耦合,在不同的设备中,要保证UI的一致性必须进行精细化的调试,甚至接受差异。
此外,使用React Native你无需在学习一门新的语言,Dart因为你只需要掌握JS。不过话说回来,如果你有C# Typescript等开发经验,那么这不是什么难事,因为语法上非常相近。
Pub.dev是一个很好的依赖管理库,如果你需要使用第三方库,那么Pub.dev是一个不错的选择,可以快速找到你要的库。但React native中,你就去搜遍全网吧。
好了,言归正传我们的重点是如何进行Flutter的性能优化,后续的内容我们会提到多种内容,总的来说就是:
- 语言层面的性能优化
- Flutter渲染时组件层面的优化
- 逻辑和UI的解耦,即阻塞预防
- 图片和网络的优化
- 缓存和数据存储的优化
- 代码优化
- 图片与内存
- 框架层面的优化
- 动画等 Flutter的优化是很复杂的,我们提到的内容,未必充足或者在不同的使用条件下,未必正确。
更多内容正在逐步更新。