2024年了,是时候选择Flutter了吗

关于咸鱼和FLUTTER是我最早关于Flutter的一篇文章,里面基本上都是一些对Flutter的吐槽,其实我接触Flutter比这更早,但是仅仅是跑了几个简单的demo,看过部分开源项目,实际上我并没有用它来开发过项目。如今快四年过去了,在这几年里,我也用Flutter做了一些开发工作,包括自己的和商业项目,累积了一些经验,正好可以写点东西,是否可以考虑全面切换到Flutter

优势

先说Flutter优势,开发UI效率高,可以说是极高,如果项目同时需要支持iOSAndroid平台,选用它至少节省一半的界面时间,第三方库丰富,相对于几年前,现在pub.dev上的库相当丰富了,大部分跟平台相关的库都有能用的了,一般用Flutter开发过几个项目之后是不太想回到原生开发的,毕竟开发效率差距太大。

性能

目前版本已经到3.x了,相对于之前的版本性能上提升了不少,我们知道各种跨平台对性能的描述常用语是接近原生Flutter也一样,目前开发出来的应用体验确实已经不错了,但是我们要冷静,你需要这样理解,所谓的接近原生只是在高端设备上,中低端和陈旧设备上差距依然明显,如果你的APP需要兼容这些老的设备,选择Flutter开发,一定得慎重。
开发效率和性能很大一部分空间上是冲突的,UI开发的时候效率高几乎就意味着嵌套层级多,冗余元素随处可见,这个其实在Web前端圈搞出一大堆框架后就很明显,直接加速硬件淘汰,说好听点是促进产业发展,但是手机的性能毕竟不能跟pc比,即使采用Flutter,我们也要尽量减少布局的复杂性,比如跨平台一向做不好的列表项复用,以前ReactNative就迟迟无法解决,而Flutter发展到今天,这个问题依然解决的不够理想,说是可以复用,实际使用跟原生差距非常大,以至于很长一段时间我一直怀疑自己使用方式有问题,事实上pub.dev好多列表类型的控件都有问题,item数量和复杂度一上来,帧率直接暴降,有的干脆直接崩了。

缺点

插件不稳定

插件很多存在问题,毕竟是开源贡献的,如我自己的一个应用,做到后面发现有11个插件是有问题的,提PR可能很长时间没有人看,只能把源码拉下来自己修改,或者干脆自己完全实现。

跟系统相关的功能需要对原生开发有一定的了解

如果你的应用很多地方设计到原生系统,需要你对原生开发熟悉程度非常高才能解决一些问题,因此如果你只是熟练掌握Flutter开发对原生开发不熟悉的话只能做一些与系统耦合度很低的应用。

安装包比较大

Flutter的安装包需要带入框架本身的一些东西,要比原生的大很多,比如安卓原生开发可能几M或者十几M就够了,但是用Flutter开发打包出来起步就是几十M或者上百M,有点Windows上原生开发和使用Electron开发的感觉,调试版本的包更大,通常是200M以上,做界面开发还好,可以热加载,做插件对接原生系统开发就很麻烦了,你需要一个高端的手机,至少是闪存写入非常快的手机,否则每次调试安装都得等半天。

应用展示

这是我用flutter开发的一个应用,可可便签,这是我两年前的一个想法,具体见准备做个小的商品管理系统可可小店,当初本来想用原生开发配合服务端后台,后来一拖再拖,没有什么时间弄,于是就换成了Flutter,断断续续的做了这么久,勉强能用。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

 桂ICP备15001694号-3