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来进行跨平台应用的开发。
20-10-18 跨平台应用开发