放弃Flutter
原本打算新的应用采用Flutter实现,这样可以实现多端同步开发,减少工作量。但看了几天文档后,还是决定放弃。
Flutter的入门指引,算是做得非常好,几乎一看就懂,文档很全面。但是,越全面的文档,看了之后越怕。
- UI设计。早些年,各语言或开发框架,都进化到了UI设计器阶段了,虽然还是有大量的开发者直接代码硬编码方式写UI,但从大型或长期维护的角度看,使用设计器可以保证代码可读性。而Flutter虽然也有UI设计器的插件,但其语言特性决定了和UI设计器的天生对立,更像是网页开发,而不是客户端开发。
- 中间层。中间层是性能的最大瓶颈。比如,Windows的分层设计过于繁琐,性能就是要差一些。Java虚拟机也导致Java应用就是没法和C++的应用对比性能,Android因为VM的存在就是比不上IOS。所以,追求性能的情况下,应该缩减中间层。但是,Flutter还增加了中间层,尤其是对Android这种存在VM的系统框架,还得再加一个中间层,实在忍无可忍。当然,uniapp,react native 这种就更别说了。
- 代码复用。对于程序员而已,代码复用是很关键的。开发库是一个方式,更多的情况下,可能从以往的项目中直接复制代码片段、程序界面及其代码文件。Flutter的UI树的方式,使得代码复用变得困难很多。
- 代码关联。以往的软件设计,一直强调解耦。Flutter开发中,解耦就变得非常难了。
- Flutter的文档告诉我们,软件开发就是写UI。可能对于网页开发来说,很多是这样,因为网页只需要显示一次就行,数据从服务器获取。但是,客户端应用需要自己的本地存储、内存数据处理、状态管理、线程管理等等,不是仅仅UI显示,实际上,UI只是其中较少的一部分。所以,如果为了这较少的一部分去使用Flutter,显然似乎得不偿失。
无论从性能上,还是长期维护或代码规模等角度,又或者是多项目的代码借鉴方面,Flutter都不友好。因此,放弃尝试Flutter。
转载请注明来源,谢谢。
有偿解决C++编程问题,承接项目定制开发;寻一份全职或兼职Windows C++开发工作。联系邮箱:[email protected]。