HTML5能取代IOS原生應用嗎

介紹html

  移動應用程序(App)和HTML5都是目前最火的技術,兩者之間也有很多重疊之處。在移動設備瀏覽器裏運行的html5的web頁面,也能夠從新打包成不一樣平臺上運行的app。目前不少瀏覽器都有很好的跨平臺支持,(譯註:firefox竟然能夠在android中使用和windows下一樣的瀏覽器內核),HTML5的web方案,對開發者來講更爲方便。完成一次,便可多平臺使用。但這確實可行嗎?仍然有許多必要緣由,使得開發者選擇了app開發。很明顯,不少人已經在這麼作了。本文將詳細分析兩種方案的優劣。html5

  功能豐富java

  正方:App裏能夠開發出更豐富的功能android

  咱們把移動功能分紅兩類。程序自己和程序與系統的結合。好比android裏,加入widget圖標或者通知提醒之類的。App對這二者都沒問題。不用多說,這是確定的。ios

  反方:APP是挺強,但Web也正在迎頭跟進程序員

  確實不少原生app實現的功能是HTML5可望不可即的。無論你的web作的再牛,若是停留在一個沒有攝像頭支持的沙盒中,不少場合仍是玩不轉。幸運的是,如今沒有這樣的沙盒限制了。若是你須要你的web照相片,能夠作一個負責照像的app,再把你的web打包進這個應用裏面。開源的PhoneGap框架是這麼幹的。這樣widget,手機提醒也都沒問題了。web

  但這種混合開發的問題在於,增長了複雜性,並且不象傳統web那樣能夠直接在瀏覽器裏運行。這個問題短期內恐怕沒轍。好在如今網絡標準在不斷的高速擴充,先進的瀏覽器也在一直跟進。Android 3.1已經支持camera了。iOS瀏覽器也支持WebSocket和設備方向檢測了。chrome

  總得來講,移動設備在發展,而web也一樣在快速變化。桌面瀏覽器自己,有5家主要瀏覽器開發商在改進現有標準,豐富新的功能。因此原生App在快速前進,同時,web也在縮小差距。canvas

  運行效率windows

  正方:原生APP速度更快

  原生APP沒有瓶頸,並且能夠直接調用GPU加速、使用多線程。

  反方:現現在Web已經快多了,並且多數應用也用不着那麼快。

  這說法有點落伍了。Chrome發佈之時帶來的Javascript V8,給Web速度帶來的飛躍。而如今,計算速度變得更快了:

  圖片處理引擎已經使用web加速。如今硬件加速也已經開始應用了。看看用上硬件加速的canvas(圖表來源

HTML5能取代Android和iOS應用程序嗎?

  要開發3D遊戲的就不用擡槓了,但對於平而來講,新聞、郵件、時間管理、社交網絡,這些用Web都夠用了。試試Steve Souders的手機性能測試工具。 另外,愈來愈多的框架結合WebGL,能夠發揮OpenGL的優點了。好比ImpactJS,幫助開發JS遊戲。

HTML5能取代Android和iOS應用程序嗎?

  開發感覺

  正方:原生APP好寫

  原生APP使用強壯的程序語言(Java, Objective C, C++)。適合寫複雜程序,通過歷史驗證,API豐富。在桌面環境能夠方便的用模擬器測試。而Web程序的runtimes和亂七八糟的各路瀏覽器讓人頭大。

  反方:通常都是Web更簡單,特別是須要兼容不一樣設備的時候。

  Web最初的功能只限於文檔展現,而不是程序應用,貌似最近倆星期纔有了JS。但有了JS後,web的世界立刻就不同了。更況且web不僅是靜止的,HTML5,CSS3,EcmaScript Harmony(誰知道這是什麼?)都給開發者極大幫助。你是喜歡C++,java, JavaScript,那你的我的愛好,也是基於你已經攢下的代碼。可是如今沒人可否認JavaScript也和前者站在同一擂臺上。

  瀏覽器/runtime的互不兼容(碎片),反過來看作APP也是同樣。用Java寫了Android app,而後又要面對iOS的Objective C。若是能寫一個程序,立刻能在Android和iOS上運行,多省事啊。這咱還沒提WebOS, BlackBerry,Windows Mobile呢。固然,這是理論上的。要是想讓程序在每一個平臺都跑得很漂亮,得作很多調試和妥協。這對不少原生APP也是同樣的。不一樣OS版本,不一樣的設備。。。

  所謂的Web碎片化,一直都是如此。但好消息是如今已經有不少不錯的解決辦法。Modernizr庫,用得好的話,能夠幫你兼容一大批主流設備,無論是啥系統,哪一個牌子的。看看咱們2011年的Google IO演示

  用戶體驗

  正方:原生APP更切合原有平臺

  操做感覺的定義之一,就是用戶但願在你的程序裏,用與系統連貫統一的方式來操做。不一樣的平臺,都有一些約定俗成的習慣。好比長按按鈕會有啥反應。你不能期望用一套統一的HTML5 App去知足全部用戶。

  此外,整個平臺的操做感覺都由用平臺自有的軟件庫協調。直接調用平臺工具包就能直接免費得到完整支持。

  反方:咱們Web有本身的傳統,你要特想作原有平臺那種感受的web,也同樣能作出來

  前面說了,Web開發的方式,是先作一個大致適合全部平臺的版本,而後再針對不一樣平臺不斷改進。當這些改進主要是針對功能時,你能夠選擇幾個你最關心的平臺作優化。相似於瀏覽器檢測。技術論壇裏的悲催技術員們,常常抱怨這事。太多不一樣的瀏覽器版本了。不過若是你優先關注兩三種主流平臺,是值得爲他們多花點時間作作優化。

  web原本就有本身的操做感覺。咱們也能夠說,不一樣的默認瀏覽器以及運行環境造就了獨特的"Web感覺"。從更廣的角度看,這自己就是一種用戶公認的方式。此外,還有不少成功的案例並不遵循移動設備的原生操做習慣,人家也成功了。想一想你最喜歡的手機遊戲的界面?不少更傳統的app也是同樣,好比Twitter客戶端。

  傳播途徑

  正方:原生應用更容易接觸客戶

  象Google Play和Apple Store這樣的app發佈機制這幾年勢不可擋,推進了整個移動行業。每一個程序員都能在市場裏發佈本身的應用。用戶都擠在市場裏瀏覽,搜索,接受推薦。不只如此,只要你的程序夠好,現有用戶的打分會幫助你說服更多新的客戶。

  反方:其實web才容易接觸到客戶

  經過web找到內容,這是通過論證的可靠途徑。利用URL,每一項發佈的內容都有一個獨立的地址,包括在網站上發佈的應用程序。搜索引擎幫助發現內容,其餘網站提供連接,還有一些相似應用市場的分類網站。用戶還能夠郵件、短信、在社交網站分享你的連接。你的應用連接能夠直接在不一樣設備上直接打開。

  web上尚未一個統一的評分系統,但這個狀況也在發生改變。往下看。。。

  收費

  正方:App收費:應天意,順民生

  「六歲孩子午餐時作app,$3一個,賣出幾百萬」。最近常聽看到這樣的新聞。各類大小廠商也跟着蜂擁而至,等着圈錢。應用商點幫開發商直接收費。最簡單的辦法,一次性收費。也有在app裏再另行收費或者作訂閱收費的,這幫助開發商贏得長期穩定的回報。

  此外,傳統網站的廣告、贊助,在app裏也一樣適用。

  反方:網站賺錢,歷來都不是問題。如今機會還愈來愈多

  Web能成爲如今社會的推進力,有能力用多種方式取得回報,這是基本條件。雖然使用付費並不廣泛。但SaaS的模式已經至關普及了。成功案例包括Google Apps,37Signals的系列產品,各種郵件的收費版。另外,直接收費並非web應用的惟一模式。廣告、會員連接,贊助,其餘產品服務的交叉推廣都是可選的模式。

  看着能在應用市場裏直接賺錢而眼紅的Web開發商們,大家不能直接把你的URL發進市場,可是作一個瀏覽web的app的殼子來連到本身的web上怎麼樣?如今市場中若是不說數以千計,至少也有上百的app這麼幹了。有些包裝的好的,你甚至察覺不到他是一個web程序。

  之後應用市場會直接支持web程序嗎?這個如今還很差說,但去年Google已經建了個Chrome web store。雖然還只能從桌面電腦放問,但這已經挑起了瀏覽器廠商的興趣。如今還只是個初步概念,但看起來挺有前途。

  結論

  如今還看不出完勝的一方。有些應用適合作app,有一些適合用html5。目前的狀況,原生APP確定是一個很重要的選擇。上面提到的混合式開發,多是一個不錯的妥協方案。能用web的時候用app調用web。web實現不了的功能用app開發。

  若是你選擇web方式,要在web標準和不斷的改進上用心。web技術自己的優勢就是能兼容大批不一樣的操做系統和設備。消極的看,你也能夠這是碎片,但web就是一切通吃。

  英文原文:HTML5 VS NATIVE: THE MOBILE APP DEBATE

  中文翻譯:unicom-china

相關文章
相關標籤/搜索