標籤:
伴隨著移動互連網的興起,越來越多的企業將部分資源投入其中,想在互連網+的大潮中分一杯羹,並期望著站在風口上,成為時代的弄潮兒。
現在不會做一個app都不好意思說是搞互連網的,那麼開發一個app的方式有哪些呢?基於目前市面上比較流行的app都是基於android和ios的,所以我們只針對這兩種平台談app;雖然也有其他平台,但鑒於市場佔有率,不納入本系列的範圍。
第一種方式:native app
IOS:基於XCode開發工具,使用Swift或者OC開發語言,來進行原生態的IOS應用的開發。
Android:基於Eclipse或者Android Studio開發工具,使用Java開發語言,來進行原生態的Android應用的開發。
優點:
- 原生態的功能和效能體驗,可以完全控制所有的功能。
- 完善的API文檔和demo。
缺點:
- 學習曲線較陡峭。
- 開發成本較大。
- 部署審核時間較長。
第二種方式:hybrid app,基於開源的framework,使用HTML+CSS+JS程式設計語言,通過編寫web應用,並且轉化成native app的方式來進行開發,下面列舉的framework都基於開源的Cordova核心。
Sencha:使用Ext JS架構進行web開發,並通過Cordova提供的API來進行Device層面的互動。開發的應用能夠在多個平台上面運行,目前的流行度比較低,原因是因為架構太大、運行速度太慢。
JQuery Mobile:使用JQuery架構進行web開發,口頭禪是“write less,do more”。開發的應用能夠在多個平台上面運行,開發人員比較多,主要是是基於JQuery的。
Ionic:使用AngularJS進行web開發。ionic是目前為止流行度最高的hybrid應用開發架構,ionic生態圈比較好,有一堆豐富的工具和外掛程式。但是頁面的切換及動畫效果不是很理想。
Ionic 2:ionic的下一個主要版本。
OnsenUI:使用AngularJS或者JQuery進行web開發,OnsenUI是ionic的主要競爭者,其總是比ionic領先一步,擁有更好的performance。但是使用的人不是很多。
OnsenUI 2:OnsenUI的下一各主要版本,可以基於任何的Javascript語言,並不局限於AngularJS或者JQuery。對最近比較火爆的ReactJS有非常好的支援。
優點:
- Write once,run anywhere!
- 學習曲線比較平滑,web思維,開發簡單。
- 開源,有大量的社區支援以及豐富的案例。
- 可以線上部署,免去部署審核時間。
- 開發成本較小。
缺點:
- Web不能解決一切問題。
- 不適合高品質互動及動畫類應用,效能相比native app有一定的差距。
第三種方式:基於跨平台的開發工具,來進行原生態應用的開發。
Xamarin:基於VS開發工具,使用C#開發語言,進行native app的開發。隨著微軟產品的開源,相信Xamarin會有越來越多的人使用。需要針對不同的平台進行不同的編碼。
Titanium:使用Javascript語言,通過提供跨平台的Javascript運行時和mobile api來進行native app的開發。需要針對不同的平台進行不同的編碼。
優點:
- Lean once,write anywhere!
- 擁有native app的效能。
- 擁有web開發的效率。
缺點:
- 入門門檻比較高。
- 需要自己為不同的平台定製UI組件。
結論:
每種方式各有其優缺點,我們應該根據實際的應用情境、團隊成員的技術儲備來選擇合適的技術。
第一章:hybrid app開發之技術選型