1、Windows、Ubuntu:Electron + node C++扩展,macOS:wkWebView + Swift
优势:一套UI,界面基本完全一致,业务功能的性能由C++或Swift保证,MIT协议,完全免费,可上架Windows Store商店和Apple Store商店
缺点:每个平台都有与平台相关的代码,得维护UI代码、windows业务代码、ubuntu业务代码、swift业务代码一共四套代码,全栈人员可以抵挡一面。
普遍应用:上架应用百度网盘(windows版和mac版)、上架应用有道笔记(windows版和mac版),基本基于此类Hybird方式。
2、Qt
优势:一套UI,界面基本完全一致,业务功能性能由C++保证,有闭源商业版,一般用于嵌入式等更接近底层的系统开发。
缺点:不能使用Qt的webView,你会发现它似乎是单线程的或者它的QWebViewEngine就是个bug,很卡;其次,商业版价格499刀,很贵。如果,Qt商业版249刀,估计很多人会支持Qt,因为全套JetBrains也才249刀,而Qt个人商业版价格499刀,贵。
普遍应用:车载系统,linux应用开发
3、JavaFX
优势:一套UI,界面基本完全一致,性能比不上C++但比得上Js
缺点:APP内购等操作需要特殊处理,而且有难度。
普遍应用:一般适用于企业级应用开发,成功上架Apple Store的JavaFX应用很少
个人开发支持了一回Qt,499刀,太贵。现在开始完全使用第一种方案,虽然维护4套代码,但,对于全栈开发来说,省掉了不需要花的499刀,而且Qt的发展方向在向统一所有UI为Qt自身的灰褐色UI方向发展,而不再使用各个平台上的native的UI,这就失去了使用Qt来适配原生UI的意义。而且方案1长期可行。
转载请注明出处——张人杰