伴隨着移動互聯網的興起,越來越多的企業將部分資源投入其中,想在互聯網+的大潮中分一杯羹,並期望着站在風口上,成為時代的弄潮兒。
現在不會做一個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的開發。需要針對不同的平台進行不同的編碼。
React Native:使用Javascript語言,通過JavascriptCore與Native API進行通信來進行native app的開發,由Facebook開源。
優點:
- Lean once,write anywhere!
- 擁有native app的性能。
- 擁有web開發的效率。
缺點:
- 入門門檻比較高。
- 需要自己為不同的平台定制UI組件。
結論:
每種方式各有其優缺點,我們應該根據實際的應用場景、團隊成員的技術儲備來選擇合適的技術。
