当今app开发,选择之多可以用混乱来形容了。
做了下面的表格,罗列了各大流行框架的各个维度对比,供大家参考。
框架对比
对比
Flutter
Flutter是其中当之无愧的明星产品。其生态还在不断扩大,只是国内不怎么火。他的开发体验也是极好。只是为啥是Dart?
React Native
依然是开发混合应用框架的中流砥柱,只是需要开发者掌握一部分原生的知识。同时有需要维护两套代码的弊端。
Electron
Electron是最早进入人们视野的hybird框架之一。经久不衰,足见其有独到之处。同时专注桌面应用,众多程序员吃饭的家伙VS Code, Atom就是用它开发的。国内优秀的复杂应用如 Cocos Creater,一款3D游戏开发引擎。
ionic5
ionic有优秀的文档,丰富的api,在更新到ionic5之后,性能大幅提升,同时支持react。只是流失的用户不会那么容易回来的
uniapp
uniapp可以说是从国内一众hybird开发框架中,杀出重围的优秀框架。兼容iOS、Android、H5、以及各种小程序、快应用。可以这个框架是非常符合快节奏,拼效率的国情的。另外和国内vue的大火也有一定关系。
怎么选?
大家有没有看花眼,小编这里只是挑选了一些易用,生态良好和发展优秀的框架。众多其他框架比如weex已不再维护等种种原因,不再比较范围。那应该怎么来选择这些框架呢?
前期技术调研
对应用要实现的功能有个预估,看看现有的生态是否有插件或者api,评估使用和改造难度后再行选择,以免路走不通换框架,浪费大量宝贵的时间。
团队技术栈
首先希望大家可以从团队的技术栈去考虑,团队众人的学习成本和学习意愿在推广新技术的时候的复杂,可以另外写一篇文章了。比如一个人使用新的技术开发了项目,但是若这个人离职了,对于公司和项目就是不小的技术风险。
发布平台
一定要明确,应用会在哪些平台发布,了解平台的规则之后,再去选择。之前苹果应用商城就下架了一批滥用热更新的应用。用户损失了可不是那么容易回来的。
开发设备
如果你的团队电脑配置不好,请一定选择有热更新的框架,或者用真机调试。
最后放上jetbrains年中的时候,统计的跨平台框架使用情况。
可见大部分混合应用的开发是通过调用原生控件的方式,而使用jsBridge的有大幅降低。这很大程度是反应的国外的情况。国内社区都是uniapp打遍天下的情况。难道,这是一种程序员的东西方文化差异的体现?
希望上面的看法,对你在选择框架的时候有所帮助。或许不久的将来要讨论鸿蒙系统的应用开发了。