sc3263
2021-02-03 14:40:45 +08:00
主要做桌面端。用过 Qt5 、PyQt5 、Electron 、原生,调研过 Flutter 。
Qt5 性能接近原生,上手后开发速度其实很快的。QML 其实很不错,但是学的人用的人都太少,很多坑只能自己填。对各平台下的特性支持的一般,需要自己封装。如果用到了 Qt Web Engine,可能会遇到显卡兼容性相关的问题。
PyQt5 开发速度极快,但 PyInstaller 打包时不时的会出点幺儿子。以及 Python 本身的性能瓶颈,同样的动画效果,C++实现好不费力,Python 实现能跑满单个核心。
Electron 开发速度快,各平台下的特性支持全,开发到打包到分发到异常收集,都有完善的解决方案。社区活跃度很高,有啥需求 /bug,很快就能处理。唯一的缺点大概就是体积占用大,运行效率稍微低一点了。
Flutter 桌面端目前还是玩具,不建议自己去踩坑。
心中最理想的跨平台方案:核心业务逻辑用 C/C++实现。在各平台下用原生语言去实现界面交互和使用系统特性。但绝大部分场景下,不需要这么重的方案。
确定下公司当下是否真的需要跨平台方案,是否真的需要移动端和桌面端使用同一套方案。目前并没有哪套框架能够完美通吃桌面端和移动端。各个框架依然需要针对各个端进行适配开发。实际工作量并不比单独维护要小,甚至难度会更高。
快速出产品的话,桌面端除非有历史经验 /包袱,否则建议无脑 Electron 。移动端没有上线的项目,没有发言权。