Qt之聊天软件(技术选型-0)

1,189 阅读3分钟

我正在参加跨端技术专题征文活动,详情查看:juejin.cn/post/710123…

即时通讯软件一直是跨端需求最旺盛的一类软件

聊天软件/即时通讯软件绝对算得上跨端最强烈以及跨端数最多的一类软件,大家可以看看列表统计的国内互联网大厂的即时通讯软件的设备支持情况

image.png

确实支持的设备越多能满足的用户数目也就越多,而且使用场景也将更加丰富。大家都希望无论在任何设备上都能无缝衔接流转信息。

记得有一个使用Telegram有一个小细节确实打动到了我,就是在上厕所用手机还没有发完的一条消息,回到电脑前手机这个还在输入框里面正在输入的内容竟然同步到了电脑端消息输入框内。

国产化

还以一个契机就是近两年的国产化软件的需求,就是要求软件可以运行在国产操作系统设计有些要求CPU等主要零部件也必须是国产化的。于是我们看到钉钉以及飞书纷纷跟进国家政策推动,都推出了支持多种CPU架构下的Linux客户端。

钉钉

image.png

飞书 image.png

至于腾讯吗,哎呀,不说也罢~

因此使用跨端技术对于即时通讯软件的开发尤其重要,这样更利于保持多端一致性以及能更加轻松覆盖更多的平台。

技术选型

Electron

就桌面端而言,常见的跨平台开发技术有现在比较火的Electron基于前端技术实现的,可以同时运行在Windows,Mac以及Linux。在如今2022年这个节点选择Electron作为桌面端开发的公司也越来越多。早期的飞书也是基于Electron开发的。而技术热度方面,从掘金上越来越多的Electron话题更新来看看,也可以看出,这项技术受到越来越多的欢迎。

Flutter

而之前版本Flutter在移动端方面有非常好的成绩,在Flutter3.0之后,已经可以稳定在Windows,Mac以及Linux上运行,而且也成为很多新项目很不错的技术选型。

Qt

Qt则属于比较老牌的跨平台开发技术,像国外的即时通讯软件Telegram就是使用Qt进行开发,我们在github上也可以看到其完整开源的代码。我曾经有段时间尝试去阅读相关源码,不过最后还是放弃了光先把代码拍起来,没有半个星期以上是很难搞定的。

国内大厂都是用哪个?
  1. 钉钉,在PC端没有选用跨端技术,至少在UI层面我看到的是这样的。钉钉在Windows下使用的duilib+cef的方案,而Mac则使用的是原生开发,在Linux上则是最近两年用Qt重新开发的。
  2. 飞书从一开始的Electron+Rust到后期也是使用Chromium+Rust的技术进行开发,很好实现Windows,Mac,Linux以及网页版的多端统一。
  3. 企业微信Windows和Mac上的技术选型和钉钉是一样的,不过Linux客户端貌似还没有。
最后

而选择哪种技术,并没有那个对和错,也许都是某个时间段团队基于自身情况的选择。 如果有点赞将很快更新下一篇系列文章。 Qt之聊天软件(会话列表-1)