前言
過去開個一款移動應(yīng)用,有兩種方式實現(xiàn),第一種是,使用原生開發(fā)App,比如基于android,ios等等。第二種是H5,說白就是網(wǎng)頁,只是長得像手機應(yīng)用。
16年的時候,混合開發(fā)(Hybrid App)開始流行,各大應(yīng)用都使用了混合開發(fā)的模式。比如微信、京東、天貓?zhí)詫毜鹊取?/p>
一、為什么要使用混合開發(fā)呢?
這就得說說,原生開發(fā)的局限性,具體有三大缺點。
1、不能跨平臺
安卓版本的應(yīng)用不能在蘋果手機上運行,ios版本的應(yīng)用不能在winphone上運行,等等。
2、更新周期長
一款應(yīng)用更新升級是常有的操作,但如果更新升級的時間很長,必然會耽誤你產(chǎn)品的計劃,甚至是市場的占有率。
3、開發(fā)成本高
由于不能跨平臺,和更新周期長,假如你想開發(fā)一款應(yīng)用,在全平臺推廣,就必須在各個平臺都開發(fā)一款應(yīng)用,比如要上蘋果應(yīng)用市場,就得開發(fā)一個ios版本的應(yīng)用,要上安卓市場,就得開發(fā)安卓版本的應(yīng)用等等。
這里的時間、開發(fā)成本必然會很高。
那用H5開發(fā)呢?
H5跨平臺啊,只要開發(fā)一個應(yīng)用,可以在任何平臺上運行,而且更新也是無感知,可以瞬間同步的各種客戶端。竟然H5有這么多優(yōu)勢,為什么不用H5開發(fā)呢?
H5雖然有這么多優(yōu)勢,但它也有自己的缺陷。
1、體驗差
2、上不了各大平臺
體驗差,目前已經(jīng)是個小問題了,現(xiàn)在很多js的框架,已經(jīng)可以做到幾乎和原生開發(fā)的體驗一樣了。足以以假亂真。最核心的問題是,不能上各大應(yīng)用平臺。
移動設(shè)備上的入口是應(yīng)用,如果不能上應(yīng)用平臺,那根本就無法觸達用戶。
二、什么是混合開發(fā)?
混合開發(fā),是介于H5和原生之間的一種開發(fā)模式,既有原生的部分,也有H5的部分,結(jié)合了各自有優(yōu)點,這種開發(fā)模式,既可以做到跨平臺,也能上各大應(yīng)用市場。
三、一套開發(fā)框架
cordova,ionic,angular
1、cordova —— 應(yīng)用的殼
cordova 是Apache的開源框架,是由PhoneGap演化而來的一套核心代碼??梢岳斫鉃閃ebkit和Google Chrome的關(guān)系。
cordova 提供了一系列移動平臺的殼,例如 iOS、Android、ubuntu phone os、Blackberry、Windows Phone、Palm WebOS、Bada和Symbian。
主要用于嵌套H5,將H5打成應(yīng)用市場認可的包,并且提供一套基于js的H5和各個移動平臺通訊的API。比如獲取手機文件、相機、手機信息、撥打電話等等基礎(chǔ)功能。
cordova 把這些和手機系統(tǒng)互相通訊的功能,封裝成一個個插件,需要用到某一個功能,添加即可調(diào)用。
如果cordova提供的插件不能滿足你和手機的通訊, cordova也支持自定義插件,可以自己開發(fā)一個插件。
2、ionic —— 應(yīng)用的界面
ionic 是一個強大的 HTML5 應(yīng)用程序開發(fā)框架(HTML5 Hybrid Mobile App Framework )。 可以幫助您使用 Web 技術(shù),比如 HTML、CSS 和 Javascript 構(gòu)建接近原生體驗的移動應(yīng)用程序。
ionic 主要關(guān)注外觀和體驗,以及和你的應(yīng)用程序的 UI 交互,特別適合用于基于 Hybird 模式的 HTML5 移動應(yīng)用程序開發(fā)。
ionic是一個輕量的手機UI庫,具有速度快,界面現(xiàn)代化、美觀等特點。為了解決其他一些UI庫在手機上運行緩慢的問題,它直接放棄了IOS6和Android4.1以下的版本支持,來獲取更好的使用體驗。
ionic 特點
1.ionic 基于Angular語法,簡單易學(xué)。
2.ionic 是一個輕量級框架。
3.ionic 完美的融合下一代移動框架,支持 Angularjs 的特性, MVC ,代碼易維護。
4.ionic 提供了漂亮的設(shè)計,通過 SASS 構(gòu)建應(yīng)用程序,它提供了很多 UI 組件來幫助開發(fā)者開發(fā)強大的應(yīng)用。
5.ionic 專注原生,讓你看不出混合應(yīng)用和原生的區(qū)別
6.ionic 提供了強大的命令行工具。
7.ionic 性能優(yōu)越,運行速度快。
3、angular—— 應(yīng)用核心
angular一個套js庫,類似jQuery 。
主要用于,界面的數(shù)據(jù)綁定,和界面邏輯的處理。
三、總結(jié)
原生開發(fā),由于更新,重新發(fā)布,上傳,審核等等這一系列流程,在這個產(chǎn)品需要快速迭代的時代,顯得有點慢。為了合適迅速的迭代節(jié)奏和好的用戶體驗,發(fā)展出了混合模式。這種開發(fā)模式,可以使得包的體積更小,更方便推廣,和獲取無感知的更新體驗,以及使得開發(fā)可以跨平臺、節(jié)省成本。這是一種更符合當下移動開發(fā)的一種選擇。