偶遇大神言論,摘錄
phonegap出的早,自然用的人多。
phonegap自己的定位是混合開發hybrid,用原生+js;
HBuilder的定位是純js搞定一切。
5+ 和 phonegap在能力、性能、開發便利性上都優於phonegap。
先看能力:
- 5+ 有HTML5+和Native.js技術,HTML5+包含常用的跨平台的幾百個API,能滿足常規開發需求,而Native.js把40w原生api映射成js對象,這樣js可以直接調原生。HTML5+和Native.js的組合形成了最強大的能力引擎。 而phonegap需要用原生工程師寫原生插件並給js開發者封裝接口才能實現js調原生能力,開發成本、對人的要求都不一樣。
- 當然5+ 也支持原生插件,這點和phonegap類似。一個已經寫好的原生sdk,無需使用Native.js重寫,也可以通過5+ sdk來集成。詳見文檔中心 - 5+ App - 5+ SDK
- 5+的直接封裝的跨平台api比較全,二維碼、搖一搖、地圖、微信分享、語音輸入、推送這些常用api都是跨平台的,使用方便簡單。詳見 http://www.html5plus.org/
再看性能:
phonegap做的app,在低端Android手機上很難流暢運行,否則HTML5早就火了,原生開發早就被擠壓了。Phonegap為了避免HTML5的體驗不佳,采用了spa模式,但這個模式其實在低端機上也玩不轉,而且代碼非常復雜。
5+ App的性能更高,它的動態效果都是被我們的增強引擎處理的,通過增強的引擎,可以在低端機上流暢的運行各種動態效果,比如側滑菜單、下拉刷新、長列表滾動,見 官網首頁 - App選項卡- 性能視頻
最后看開發便利性:
phonegap沒有專業開發工具,語法提示、調試、打包都很麻煩。
而在HBuilder里,5+的語法api提示非常完善;
把手機通過數據線連上電腦,HBuilder可以真機運行,保存一個頁面立即在手機上看到效果,Android上還可以看console.log。而用phonegap,你改完一個頁面,不得不先打包,然后安裝在手機上,然后發現不對,然后改下代碼,然后繼續打包。。。
關於打包,phonegap由adobe提供了雲打包,但需要先在本機准備資源,然后提交到國外的服務器,而HBuilder是一鍵打包,更加方便。當然phonegap和HBuilder都支持本地打包,那樣就需要點原生開發知識了。
除了工具和runtime,還有mui框架
phonegap只是一個手機runtime,沒有HBuilder工具,更沒有Mui框架。
mui是目前最接近原生App的HTML5框架,它的體驗比jqm、bootstrap等框架更接近原生,它的性能遠高於jqm、bootstrap、Ionic、framework7等框架。
這種性能差別原因有2,一方面是設計思路不同,mui堅持用原生js做,不依賴jquery或angularjs,因為框架的依賴越多,App性能越差;另一方面是因為mui調用了5+的底層原生加速,這比不帶原生加速的框架更快。
mui詳見:http://dcloudio.github.io/mui/
當然phonegap有一個優勢,就是能支持windows phone、blackberry,這方面5+確實沒有支持。