移動(dòng)App是移動(dòng)設(shè)備上的應(yīng)用軟件。目前,移動(dòng)App開發(fā)主要分為三種模式:Native App、Web App和Hybrid App。
1.Native App。
Native App是指本地應(yīng)用程序,后來(lái)稱為原生應(yīng)用,如圖1-1所示。

從圖1-1可以看出,二進(jìn)制數(shù)據(jù)(機(jī)器代碼)在原生App中運(yùn)行;也就是說(shuō),原生語(yǔ)言最終直接轉(zhuǎn)化為二進(jìn)制數(shù)據(jù),可以直接調(diào)用手機(jī)振動(dòng)、攝像頭、日歷、地理位置等底層設(shè)備API。
本地App是利用相應(yīng)平臺(tái)的獨(dú)特開發(fā)工具和語(yǔ)言(如Android App)開發(fā)出來(lái)的,這使得應(yīng)用的外觀和性能都非常出色,但是開發(fā)成本更高,因?yàn)槊總€(gè)移動(dòng)操作系統(tǒng)都需要獨(dú)立的開發(fā)項(xiàng)目,對(duì)企業(yè)的人員需求很大。
2.Web App。
Web App指的是網(wǎng)頁(yè)應(yīng)用程序,后面稱為移動(dòng)Web,移動(dòng)Web需要依靠Mobile Browser(移動(dòng)設(shè)備中的瀏覽器)來(lái)運(yùn)行,內(nèi)部執(zhí)行普通的網(wǎng)頁(yè)代碼,也可以理解為在移動(dòng)設(shè)備瀏覽器中運(yùn)行的Web應(yīng)用。
HTML5移動(dòng)Web技術(shù)主要用于移動(dòng)Web技術(shù)的開發(fā),包括HTML5、CSS3和JavaScript。由于只依賴移動(dòng)設(shè)備瀏覽器,可以實(shí)現(xiàn)一次編寫,在多個(gè)設(shè)備上運(yùn)行。盡管開發(fā)人員只能使用HTML5和JavaScript來(lái)構(gòu)建復(fù)雜的應(yīng)用程序,但仍有一些局限性,比如沒(méi)有訪問(wèn)本地設(shè)備的API功能。
3.Hybrid App。
Hybrid App是指混合模式的移動(dòng)應(yīng)用,后來(lái)稱為混合App。

在圖1-2中可以看到,混合App需要依靠Native Container(原生容器)運(yùn)行,網(wǎng)頁(yè)代碼可以在Native Container中運(yùn)行,設(shè)備API也可以調(diào)用。
混合App主要是通過(guò)Web前端技術(shù)實(shí)現(xiàn)的,這是一種介于移動(dòng)Web和本地App之間的App開發(fā)方式?;旌螦pp開發(fā)的具體實(shí)現(xiàn)方式是:在本地App中嵌入一個(gè)輕量級(jí)瀏覽器,然后使用HTML5開發(fā)一些本地功能,可以在不升級(jí)APP的情況下動(dòng)態(tài)更新。因?yàn)榍短自诒镜谹PP中,這使得混合APP有能力訪問(wèn)本地設(shè)備API。一次開發(fā),多平臺(tái)運(yùn)行的特點(diǎn),使得混合App開發(fā)方式在不影響用戶體驗(yàn)的情況下,節(jié)約開發(fā)成本。
從開發(fā)成本、維護(hù)更新和安裝等角度對(duì)上述三種移動(dòng)App開發(fā)模式進(jìn)行比較,如表1-1所示。

從表1-1可以看出,原生App的開發(fā)成本最高,所以也是跨平臺(tái)App技術(shù)。為什么混合App的成本比移動(dòng)Web高?混合App具有原生App和移動(dòng)Web的優(yōu)勢(shì),混合App開發(fā)的技術(shù)要求高于普通移動(dòng)Web開發(fā)。因此,在相同的資源需求下,混合App的開發(fā)成本高于移動(dòng)Web。
混合App嵌套在原生殼中,所以這些App在AppStore或Market(手機(jī)應(yīng)用商店)都是公認(rèn)的。