【編者按】本文做者@徐珂銘,一位看好Html5的移動互聯網的從業人士。喜好玩技術,會點JAVA、HTML及CSS,有本身的想法及姑且能表達想法的文字,所以有了本身的文章。html
基於HTML5的Web App在移動端接受實用性檢驗後,開發者從熱情轉爲觀望。這時候Hybrid App做爲現階段HTML5技術的落腳點正悄然興起!Native App和Web App的論戰加入了一個新的角色Hybrid App。html5
但究竟什麼是Hybrid App?如何定義?vim
汽車有混合動力Hybrid,移動應用一樣也有混合模式。Hybrid App(混合模式移動應用)兼具「Native App良好用戶交互體驗的優點」和「Web App跨平臺開發的優點」。不少人不知道市場上一些主流移動應用都是基於Hybrid App的方式開發,好比國外有Facebook、國內有百度搜索等。但究竟什麼是Hybrid App?如何定義?瀏覽器
Hybrid App:Hybrid App is a mobile application that is coded in both browser-supported language and computer language. They are available through application distribution platforms such as the Apple App Store, Google Play etc. Usually, they are downloaded from the platform to a target device, such as iPhone, Android phone or Windows Phone. The subscribers need to install to run them.架構
咱們來拆解一下里面的含義:app
一、mobile application:Hybrid App就是一個移動應用框架
二、both browser-supported language and computer language:同時使用網頁語言與程序語言編寫iphone
三、available through application distribution platforms:經過應用商店進行分發搜索引擎
四、a target device:區分目標平臺編碼
五、install to run:用戶須要安裝使用
綜合一下就是:「Hybrid App同時使用網頁語言與程序語言開發,經過應用商店區分移動操做系統分發,用戶須要安裝使用的移動應用」。整體特性更接近Native App可是和Web App區別較大。只是由於同時使用了網頁語言編碼,因此開發成本和難度比Native App要小不少。所以說,Hybrid App兼具了Native App的全部優點,也兼具了Web App使用HTML5跨平臺開發低成本的優點。
Hybrid App的興起是現階段移動互聯網產業的一種偶然。移動互聯網的熱潮颳起後,衆多公司前赴後繼的進入。可是很快發現移動應用的開發人員太少,因此致使瘋狂的人才爭奪。市場機制下移動應用開發人才的待遇扶搖直上,最終變成衆多企業沒法負擔養一個具有跨平臺開發能力的專業移動應用開發團隊。而HTML5的出現讓Web App露出曙光,HTML5開發移動應用的跨平臺和廉價優點讓衆多想進入移動互聯網領域的公司開始心動。但是當下基於HTML5的Web App更是霧裏看花,在用戶入口習慣、分發渠道和應用體驗這三個核心問題沒解決以前,Web App也很可貴以爆發。正是在這樣是機緣巧合下,基於HTML5低成本跨平臺開發優點又兼具Native App特質的Hybrid App技術殺入混戰,而且很快吸引了衆人的目光。大幅的下降了移動應用的開發成本,能夠經過現有應用商店模式發行,在用戶桌面造成獨立入口等等這些,讓Hybrid App成爲解決移動應用開發困境不錯的選擇,也成爲現階段Web App的代言人。Hybrid App像刺客同樣,在Native App和Web App混戰之時,偶然間的在移動應用開發領域佔有了一席之地。
Hybrid App一般分爲三種類型:多View混合型,單View混合型,Web主體型。
多View混合型:
即Native View和Web View獨立展現,交替出現。目前常見的Hybrid App是Native View與WebView交替的場景出現。這種應用混合邏輯相對簡單。即在須要的時候,將WebView當成一個獨立的View(Activity)運行起來,在WebView內完成相關的展現操做。這種移動應用主體一般是Native App,Web技術只是起到補充做用。開發難度和Native App基本至關。
單View混合型:
即在同一個View內,同時包括Native View和Web View。互相之間是覆蓋(層疊)的關係。這種Hybrid App的開發成本較高,開發難度較大,可是體驗較好。如百度搜索爲表明的單View混合型移動應用,既能夠實現充分的靈活性,又能實現較好的用戶體驗。
Web主體型:
即移動應用的主體是Web View,主要以網頁語言編寫,穿插Native功能的Hybrid App開發類型。這種類型開發的移動應用體驗相對而言存在缺陷,但總體開發難度大幅下降,而且基本能夠實現跨平臺。Web主體型的移動應用用戶體驗的好壞,主要取決於底層中間件的交互與跨平臺的能力。國外的appMobi、PhoneGap國內的AppCan和Rexsee都屬於Web主體型移動應用中間件。其中Rexsee不支持跨平臺開發。appMobi和PhoneGap除基礎的底層能力更可能是經過插件(Plugins)擴展的機制實現Hybrid。而AppCan除了插件機制,還提供了大量的單View混合型的接口來完善和彌補Web主體型Hybrid App體驗差的問題,接近Native App的體驗。
多View混合型,單View混合型,Web主體型優劣勢對比
多View混合型 |
單View混合型 |
Web主體型 |
|
常見主體 |
Native |
Native |
Web |
開發成本 |
中 |
高 |
低 |
用戶體驗 |
良 |
優 |
差 |
從分析可見,Hybrid App中的Web主體型只要可以解決用戶體驗差的問題,就能夠變成最佳Hybrid App解決方案類型。
國內外Hybrid App的開發框架衆多。如何選擇又成爲一個難題。下面對開發者比較關心的集中知名跨平臺開發移動應用中間件進行列表和對比,以便選擇最適合您的移動應用中間件。
PhoneGap是相對比較早進入公衆視線的一種選擇。可是,開發者簡單的基於PhoneGap來開發移動應用確定會發現結果和Web App比較差的用戶體驗相似。這也是爲何基於PhoneGap有實用性的移動應用主要集中在iOS上。但是PhoneGap這種現狀弱化了HTML5的跨平臺價值。
AppCan在技術架構上和PhoneGap相似是Web主體型中間件,可是經過結合了一些原生交互效果可以達到iOS、Android平臺都比較一致的用戶體驗。可是相比PhoneGap的開源,AppCan相對封閉的路線顯得過於謹慎。
Titanium是一種基於翻譯機制的跨平臺中間件,可以開發出具備Native體驗的移動應用,可是由於翻譯機制的限制致使移動應用開發不能像真正的HTML5開發同樣靈活。哪怕一個按鈕也不能像普通HTML同樣來編寫,而必須按照Titanium約定的特定格式。
Hybrid App這個領域雖然還處於比較初期的階段,可是已經有不少優秀的公司和技術團隊在致力於跨平臺開發移動應用中間件技術的研究,給了開發者衆多選擇。開發者能夠根據實際的項目需求來選擇中間件。Web App雖被瀏覽器廠商和搜索引擎公司所推崇,但存在用戶體驗差、盈利模式不明確等現階段沒法解決的問題,或最終夭折。Hybrid App正在被愈來愈多的公司和開發者所認同,勢必會成爲新世界的王。