APP的三種開發模式
開發者們都知道在高端智能手機系統中有兩種應用程序:
- 一種是基於本地(操作系統)運行的APP —-Native App;
- 一種是基於高端機的瀏覽器運行的App —-WebApp
因為這些高端智能手機(Iphone、Android)的內置瀏覽器都是基於webkit內核的,所以在開發WEBAPP時,多數都是使用HTML5和CSS3技術做UI布局。當使用HTML5和CSS3l做UI時,若還是遵循着一般web開發中使用HTML4和CSS2那樣的開發方式的話,這也就失去了WEBAPP的本質意義了 - 一種是基於上兩種發展出來的產物 —-Hybrid App
Hybrid App(混合模式移動應用)是指介於web-app、native-app這兩者之間的app,兼具“Native App良好用戶交互體驗的優勢”和“Web App跨平台開發的優勢”。
移動產品的實現方式主要有三種:
- Native App;
- Web App;
- Hybrid App
目前移動互聯網基本采用了
NativeApp
、WebApp
、HybridApp
三種開發模式,很難說這三種模式那種更優越,目前的情況可以說是三分天下吧,不同的開發者可以根據自己的實際情況選擇不同的開發模式。談論那種模式最好實際上事非常無聊的事情。
NativeApp指的是本地化應用,就是我們從應用商店下載安裝的獨立應用
- 開發成本非常大。
一般使用的開發語言為JAVA、C++、Objective-C。 - 更新體驗較差、同時也比較麻煩
每一次發布新的版本,都需要做版本打包,且需要用戶手動更新(有些應用程序即使不需要用戶手動更新,但是也需要有一個惡心的提示)。 - 非常酷
因為native app可以調用IOS中的UI控件以UI方法,它可以實現WebApp無法實現的一些非常酷的交互效果 - Native app是被Apple認可的
Native app可以被Apple認可為一款可信任的獨立軟件,可以放在Apple Stroe出售,但是Web app卻不行。
開發成本過高
,跨平台性不好
是開發者們選擇放棄這種開發模式的重要原因。開發語音主要采用Object-C、Java
等語言。由於我不是做Native
端開發的,這里不多說了。
WebApp通常是指觸屏站,就是我們通過手機瀏覽器訪問的Html5網站,Html5支持一些新標簽和腳本,可以做出類原生應用的效果和動畫
- 開發成本較低
使用web開發技術就可以輕松的完成web app的開發 - 升級較簡單
升級不需要通知用戶,在服務端更新文件即可,用戶完全沒有感覺 - 維護比較輕松
和一般的web一樣,維護比較簡單,它其實就是一個站點
Webapp說白了就是一個針對Iphone、Android優化后的web站點,它使用的技術無非就是HTML或HTML5、CSS3、JavaScript,服務端技術JAVA、PHP、ASP。
HTML5技術的興起給Web App注入了新的生機。
Web App具有開發成本低
、周期短
、使用方便
、維護簡單
等特點。
隨着HTML5被過度熱炒和實際開發中遇到的性能以及體驗問題,WebApp逐漸勢弱。
同樣,以AppStore為首的App分發平台當然是不希望webapp破壞自己建立的生態系統的
。html5遲遲沒有得不到一個公認的標准,也阻礙着webapp的發展。但是這些都不足以阻礙webapp的發展。現在APP的數量已經達到數以百萬計,實際上用戶根本不需要這么多的App,很多App被用戶下載后,一個月都不會被打開一次。
而webapp用戶根本不需要安裝
,只需要打開手機瀏覽器,輸入網址或搜索目標
,點擊即可到達想要的網頁,基本和PC互聯網的思路是一致的
,這也說明百度同樣在移動入口上有這很大的優勢。在NativeApp上用戶只有安裝了App,才能瀏覽,而webapp是直接通過手機瀏覽器為入口,或者推送的信息為入口,這么看webapp在流量上是有很大的優勢的。
但是目前webapp得不到很好的發展主要有以下幾個方面的原因:
- 無有效且廣泛的webapp發行渠道(NativeApp有AppStore等);
- webapp表現和體驗不佳(這點算硬傷吧);
- 適配難度(一套web很難兼容所有的手機,特別是國內某些自以為很牛B的手機,大可樂算一個吧,哈哈);
- 配套的標准尚未成熟(主要指html5吧)。
網站移動化是必然的,目前知道webapp比較好的解決方案有如下幾個:
- 雲適配 號稱引入一段神奇的代碼就能將PC網站移動化。陳本峰老師也是我學習的榜樣,html5布道官。了解更多信息可以鏈接到http://www.yunshipei.com/
- 百度site App 網址:http://siteapp.baidu.com/
- 還知道個做微站的網站,號稱把微信、微博入口都已打通,企業用戶營銷很好的平台:http://www.weizhan360.com/
HybridApp是指混合模式應用,同時使用網頁語言與程序語言編寫,包含原生視圖和Web視圖兩種方式,使用方式和Native App一致,而又繼承了Web App實時更新開發成本低等優點。
汽車有混合動力Hybrid,移動應用同樣也有混合模式。Hybrid App兼具“Native App良好用戶交互體驗的優勢”和“Web App跨平台開發的優勢”。很多人不知道市場上一些主流移動應用都是基於Hybrid App的方式開發,比如國外有Facebook、國內有百度搜索等。但究竟什么是Hybrid App?如何定義?
- mobile application:Hybrid App就是一個移動應用
- both browser-supported language and computer language:同時使用網頁語言與程序語言編寫
- 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,這種既有跨平台開發周期短
、成本低的基因
,又能發揮Native App體驗和性能
的優勢,HybridApp混合式移動應用開發逐漸成為企業移動開發的首選。
Hybrid App通常是基於第三方跨平台移動應用引擎框架
進行開發,
在國內開發者中比較知名的有PhoneGap、Titanium和AppCan這些引擎框架
一般使用HTML5和Javascript
作為編程語言,調用引擎封裝的底層功能如照相機、傳感器、通訊錄、二維碼
等。HTML5和Javascript只是作為一種解析語言,真正調用的都是NativeApp一樣封裝的底層功能,這是和Web App的最大區別和不同
。因為使用了瀏覽器技術
,所以Hybrid App通常具有跨平台的特性
,並且開發成本和WebApp接近
,開發效率也遠高於Native App
。
說實在的,從表面上看的話,很難區分一個App到底是Native App還是Hybrid App,但實際上我們更多的是把Hybrid App當做是Webapp的一部分
,因為他是一部分Native(比較少),絕大部分的web頁面(html5頁面)。
Hybrid App和Native App一樣都是需要用戶在各種App分發渠道上下載並安裝到手機上才能用的
。Hybrid App的體驗當然是沒話說,比較棒的,有這Native App的全部優點。html5很好的解決了跨平台性的問題,也解決了開發成本過高的問題。
One Web more native 可以很好的形容Hybrid App這種開發模式。
Hybrid App是如何實現網頁語言與程序語言的混合?誰占主體?
Hybrid App通常分為三種類型:多View混合型,單View混合型,Web主體型
。
從分析可見,Hybrid App中的Web主體型只要能夠解決用戶體驗差的問題,就可以變成最佳Hybrid App解決方案類型。
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正在被越來越多的公司和開發者所認同,勢必會成為新世界的王。
Web App、Hybrid App、Native APP對比
—- | Web App(網頁應用) | Hybrid App(混合應用) | Native App(原生應用) |
---|---|---|---|
開發成本 | 低 | 中 | 高 |
維護更新 | 簡單 | 簡單 | 復雜 |
體驗 | 差 | 優 | 優 |
Store或market認可 | 不認可 | 認可 | 認可 |
安裝 | 不需要 | 需要 | 需要 |
跨平台 | 優 | 優 | 差 |
HybridApp開發,現階段主流的平台包括PhoneGap(Cordova),AppCan,appMobi,Titanium等,它們基於webkit開源內核,使用HTML5 標准開發,適配機型簡單,支持開發者自定義插件,並能很好的應用於商業,教育,娛樂等行業,成為移動開發者的首選開發平台。