隨著智能手機的普及,移動端應(yīng)用幾乎成為每個互聯(lián)網(wǎng)產(chǎn)品的標(biāo)配。在快速迭代的互聯(lián)網(wǎng)戰(zhàn)場中高效開發(fā)、低成本上線產(chǎn)品,是每個應(yīng)用開發(fā)團(tuán)隊追求的目標(biāo)。此時,選擇合適的應(yīng)用類型和開發(fā)模式便至關(guān)重要。移動應(yīng)用可以粗分為三種:原生應(yīng)用(native app), 網(wǎng)頁應(yīng)用(web app,或HTML5 app),以及它們的混血兒——混合模式移動應(yīng)用(hybrid app)。
今天就來和大家簡單聊聊近年來蓬勃發(fā)展的hybrid app。
一、什么是Hybrid Mobile App
Hybrid app從外觀上來看是一個native app,實則只有一個,里面訪問的是一個web app,如新聞類和視頻類的應(yīng)用普遍采取該策略:native的框架加上web的內(nèi)容。不同于native app需要針對不同的平臺使用不同的開發(fā)語言(如使用-C、Swift開發(fā)iOS應(yīng)用,使用Java等開發(fā)Android應(yīng)用,使用C#開發(fā)Windows Phone應(yīng)用),hybrid app允許開發(fā)者僅使用一套網(wǎng)頁語言代碼(HTML5+CSS+),即可開發(fā)能夠在不同平臺上部署的類原生應(yīng)用 。由于hybrid app結(jié)合了native app良好用戶交互體驗和web app跨平臺開發(fā)的優(yōu)勢,能夠顯著節(jié)省移動應(yīng)用開發(fā)的時間和成本,hybrid app得到越來越多公司的青睞。
Source: Native, HTML5, or Hybrid: Your Mobile Options
按照網(wǎng)頁語言和程序語言的混合,hybrid app通常可以分為三種類型:
多View混合型: native view和web view獨立展示,交替出現(xiàn)。 其應(yīng)用主體通常是native app,web技術(shù)作為補充。即在需要的時候,將web view作為獨立的view運行,在web view內(nèi)完成相關(guān)的展示操作。開發(fā)難度與native app相當(dāng)。舉個栗子:的使用的是web view。
單View混合型: 在同一個view內(nèi),native view和web view為層疊關(guān)系,同時出現(xiàn)。開發(fā)成本較高,難度較大,但是體驗較好。舉個栗子:百度搜索同時實現(xiàn)充分的靈活性和較好的用戶體驗。
Web主體型: 應(yīng)用主體是web view,穿插native功能,主要以網(wǎng)頁語言編寫。整體開發(fā)難度低,基本可以實現(xiàn)跨平臺;而用戶體驗好壞,主要取決于底層中間件的交互與跨平臺能力。舉個栗子:項目管理工具 使用web view呈現(xiàn)內(nèi)容,調(diào)用系統(tǒng)原生API實現(xiàn)界面導(dǎo)航等功能來提高用戶體驗。
二、 什么時候選擇Hybrid App
在hybrid app備受追捧的今天,我們也許會隨大流優(yōu)先考慮開發(fā)hybrid app。但是,每個產(chǎn)品各具特色,還沒有哪一種解決方案可以完美地應(yīng)萬變。hybrid app的中庸讓它大放異彩,也限制了它的應(yīng)用場景 。在決定采用一種開發(fā)模式之前,有許多因素需要考慮,諸如:
如果要設(shè)計Angry Birds一類對圖形要求很高的游戲,那么在暫不考慮技術(shù)團(tuán)隊能力的情況下,native app是最優(yōu)選擇;如果要設(shè)計如Yelp一類內(nèi)容導(dǎo)向的應(yīng)用,那么hybrid app會是很好的選擇;如果項目時間緊張,沒有足夠的人手和資金,對圖形和系統(tǒng)原生特性沒有要求,那么web app將是性價比最高的解決方案。
表一對比了native app,hybrid app和web app在不同方面的表現(xiàn),可以幫助你根據(jù)實際情況選擇最佳的解決方案。
區(qū)分三者
什么叫做原生App?
原生App是專門針對某一類移動設(shè)備而生的,它們都是被直接安裝到設(shè)備里,而用戶一般也是通過網(wǎng)絡(luò)商店或者賣場來獲取例如 The App Store 與Android Apps on Google Play 隨便說幾個原生App的例子,比如iOS的Camera+以及Android的
什么叫做移動Web App?
一般說來,移動Web App都是都是需要用到網(wǎng)絡(luò)的,它們利用設(shè)備上的瀏覽器(比如iPhone的Safari)來運行,而且它們不需要在設(shè)備上下載后安裝。
什么是混合app?
Hybrid App是指介于web-app、native-app這兩者之間的app,它雖然看上去是一個Native App,但只有一個UI WebView,里面訪問的是一個Web App,比如街旁網(wǎng)最開始的應(yīng)用就是包了個客戶端的殼,其實里面是HTML5的網(wǎng)頁,后來才推出真正的原生應(yīng)用。再徹底一點的,如掌上百度和淘寶客戶端Android版,走的也是Hybrid App的路線,不過掌上百度里面封裝的不是WebView,而是自己的瀏覽內(nèi)核,所以體驗上更像客戶端,更高效。
拿酒來形象化這三種模式的話:
區(qū)分native APP ,web APP,hybrid APP
1、Native App
Native App是一種基于智能手機本地操作系統(tǒng)如iOS、Android、WP并使用原生程式編寫運行的第三方應(yīng)用程序,也叫本地app。一般使用的開發(fā)語言為JAVA、C++、-C。
想創(chuàng)建Native App,開發(fā)者必須編寫源代碼,使用由操作系統(tǒng)開發(fā)商提供的工具,對源代碼進(jìn)行編譯。代碼編譯之后以2進(jìn)制或者字節(jié)碼的形式運行在操作系統(tǒng)上,直接調(diào)用操作系統(tǒng)的Device API。
雖然不同操作系統(tǒng)上進(jìn)行的開發(fā)過程常常很相似,但是每一種移動操作系統(tǒng)都隨帶各自的獨特工具。平臺之間的這些區(qū)別導(dǎo)致了Native開發(fā)方法的最重大缺點之一:為一種移動平臺編寫的代碼無法在另一種平臺上使用。Native App的優(yōu)缺點總結(jié)如下:
優(yōu)點
缺點
2、Web App
Web App是運行于網(wǎng)絡(luò)和標(biāo)準(zhǔn)瀏覽器上,以HTML+JS+CSS等WEB技術(shù)開發(fā)實現(xiàn)特定功能的應(yīng)用。通過瀏覽器來調(diào)用Device API,但是只有數(shù)量有限的這些API向瀏覽器里面運行的Web App公開。基于當(dāng)下開始普及流行的HTML5,Web App可以實現(xiàn)很多原本Native App才可以實現(xiàn)的功能,,比如LBS的功能、本地數(shù)據(jù)存儲、音視頻播放的功能,甚至還有調(diào)用照相機和結(jié)合GPU的硬件加速功能。
由于它不依賴于操作系統(tǒng),因此開發(fā)了一款Web App后,基本能應(yīng)用于各種系統(tǒng)平臺。并且還有版本升級容易的優(yōu)勢(畢竟服務(wù)器是受自己控制的)。但是這種方案的缺點也很明顯——無法使用系統(tǒng)級API,只能做為一個臨時的入口,用戶很難留存。Web App的優(yōu)缺點總結(jié)如下:
優(yōu)點
缺點
3、Hybrid App
Hybrid App是一種用Native技術(shù)來搭建App的外殼,殼里的內(nèi)容由Web技術(shù)來提供的移動應(yīng)用,兼具“Native App良好交互體驗的優(yōu)勢”和“Web App跨平臺開發(fā)的優(yōu)勢”。
根據(jù)實現(xiàn)的不同,可以細(xì)分為兩種實現(xiàn)方案:
(1)在Native App中使用WebView加載遠(yuǎn)端Web資源
這種方案的Web資源放置在服務(wù)器上,開發(fā)者不必經(jīng)歷提交和批準(zhǔn)過程——有些App商店要求這個過程,就可以對App進(jìn)行小幅更新。遺憾的是,這個方法擯棄了任何離線可用性,因為設(shè)備與網(wǎng)絡(luò)沒有連接時,無法訪問設(shè)備。
(2)將一組HTML、、CSS和媒體文件,封裝到App代碼中,存儲在設(shè)備本地,使用Cordova/等框架通過WebView加載本地資源進(jìn)行頁面渲染
把Web代碼封裝到App里面在一定程度上緩解從遠(yuǎn)端加載靜態(tài)資源導(dǎo)致UI展示延遲的問題,可以提高性能和可訪問性,并且還可以通過橋接Native和Web來調(diào)用一些Device的API。
但是其劣勢也很明顯,一是不允許遠(yuǎn)程更新;二是安裝包變大;三是如果想調(diào)用相關(guān)平臺的API,需要針對平臺單獨進(jìn)行開發(fā),如果在應(yīng)用中用到了大量的Device API,那么開發(fā)的效率將大大降低。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。