純Native開發, C++/C#/duilib+C++(Windows), Objective-c(Mac)
Qt(Windows/Mac)
NW.js/Electron(Windows/Mac)
CEF(Windows/Mac)
一個典型的方案是:用Rust來寫業務邏輯,用Neon來作中間鏈接,用Electron來作UI層。分開作,UI層有UI的框架,業務邏輯有業務邏輯的框架,鏈接件也有相關框架。html
微信電腦版:duilib
VisualStudioCode:electron+typescript
網易雲音樂:c++ + js+cef框架
有道詞典:Hex,網易自家的引擎,相似於node-webkit,當初作這個的時候node-webkit還不是很完善,因此他們本身搞了一個(http://hex.youdao.com/zh-cn/about/index.html)node
Chromium Embedded Framework (CEF)是個基於Google Chromium項目的開源Web browser控件(俗稱谷歌親兒子),支持Windows, Linux, Mac平臺, 其包含C/C++程序接口,可以完美的與C++庫集成,完善的支持Html5 Web頁面開發,而且能夠經過修改編譯選項和源代碼後編譯的方式來實現剪裁CEF和提供原CEF沒有的功能,定製本身的窗口類型。
優勢:
CEF能夠經過編譯和修改源代碼的方式來定製
能夠經過C++控制窗口類型,支持透明窗口
可以使用最新的CEF來兼容最新的Javascript標準和CSS,或者固定CEF的版原本支持Windows XP
底層與C++集成容易
可使用Javascript來開發UI,C++實現大計算量的任務
缺點:
與操做系統相關的功能,如讀取註冊表、寫文件等功能,須要C++實現,增長了一些C++開發的工做量
不通過裁剪的CEF,安裝包會過大
對於要實現透明窗口和集成大量的C++模塊的應用,CEF是個不錯的選擇。c++
隨着PC機不斷提高的機器性能以及H5標準的發展,利用JS語言依靠Browser爲載體的B/S體系軟件,有着很強的交互表現力,使用Html/JS做爲UI的開發語言,能夠十分高效快速的完成各類複雜界面(尤爲是各類動畫效果)開發。
隨着Nodejs和Chromium的CEF愈來愈成熟,出現了將Nodejs與Webkit集成的開源框架,比較成熟的有NW.js(前身node-webkit)和Electron(前身atom-shell), 該類型的框架既能使用Html/JS來開發UI界面,又能集成C++庫來完成大計算量的任務,使得開發基於Web和Native混合的應用很是方便。git
https://www.zhihu.com/question/19903210
https://segmentfault.com/a/1190000016229749
https://github.com/fanfeilong/cefutil (cef中文文檔)
https://bitbucket.org/chromiumembedded/cef/src/master/ (cef官網)
https://electronjs.org/ (electron官網)
https://www.jianshu.com/p/c6bdb087e60d (搭建一個electron應用)
http://xzper.com/2016/04/17/vscode%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90/ (vscode源碼解析)
https://www.zhihu.com/question/43666493 (vscode的界面用的是什麼技術)
http://www.ayqy.net/blog/vs-code源碼簡析/ (vscode源碼解析)github