20-10-18 跨平台应用开发

跨平台应用开发

公司新出的产品需要在多平台上发布,但却面临人手不足的问题,安卓与IOS客户端开发面临着手头任务过多,无法持续推进新项目的情况,导致项目进展缓慢。这个时候考虑通过跨平台开发来实现一次开发,多个发布,实现效率的提升。

开发技术比较

在技术选择中,我们选中了两个技术路线,一个是基于C++的QT,一个是基于nodejs的electron,我们仔细比价了两个产品的优缺点。

electron QT
开发简单,上手快速 上手慢,但是性能高
适用于一些单一功能的应用开发,一旦项目过大,会有严重的性能问题,适合想要把网页版和桌面端共享代码 较为底层,与系统相关联,全平台兼容性好。适合复杂系统
electron开发的一些应用样例一些大型electron项目,像是atom跟vscode也是主要集中文本处理方面,没有过多的其他功能。 适用于复杂较为大型的项目开发,像是yy,wps,vituralbox。与硬件相关的复杂系统像是地理信息系统,军工系统
使用JS开发 使用C++,绘制界面可以使用QML,标记语言类js
安全性能一般,开发流程短 安全性能高,但开发流程长

安装包体积比较

我们还去调研使用这两种技术的产品的安装包的体积

electron QT
atom win版170M mac版183M 斗鱼直播 win版87M winXP版71M MAC版73.4M
vscode win版59.1M mac版91M 网易战网客户端 下载器安装 安装包大小不明(安装需要空间390M)
skype win版78.1 mac版105M linuxdeb 80M YY win版74M
github desktop win版96M mac版103M WPS dmg288M app store显示345M win版本150M
飞书 win版247M mac版227M Virtual box win版103M mac版118M ubuntu 84M
Twitch win版83M mac版99M

技术选择

  • qt虽然效率高,但是比较复杂,目前的几个项目功能没有复杂到需要qt不可的程度,electron也能有不错的性能表现。同时qt需要c++的技术栈,公司技术c++技术栈实力也不是很雄厚。
  • 目前针对各平台分别开发应用才能达到最大的性能,公司的一些比较大型的项目也是分平台进行开发,所以不需要额外进行跨平台应用的开发。只有遇到一些工具类型的新app,同时无法分出足够的人手去分平台开发时会考虑。

我们综合考虑了以上的几点,最后选择了electron来进行跨平台应用的开发。

作者

Xingo

发布于

2020-10-18

更新于

2020-10-18

许可协议