天天看點

HTML5會取代App應用嗎?

大量新生移動裝置的興起,改變了網際網路的未來。在技術的發展上,HTML5會取代App應用嗎?或者說能夠在多大程度上取代呢?在HTML5規範中,已經加入了相機、磁力羅盤、GPS資訊的支援。很多新興浏覽器也已經開始支援這些新特性。能否用一個統一的HTML5來替代android和ios并行開發的雙重成本呢?以下譯自Michael Mahemoff的一篇文章,詳細分析了HTML5能否取代Android和iOS應用程式。       介紹   移動應用程式(App)和HTML5都是目前最火的技術,二者之間也有不少重疊之處。在移動裝置浏覽器裡運作的html5的web頁面,也可以重新打包成不同平台上運作的app。目前很多浏覽器都有很好的跨平台支援,(譯注:firefox居然可以在android中使用和windows下同樣的浏覽器核心),HTML5的web方案,對開發者來說更為友善。完成一次,即可多平台使用。但這确實可行嗎?仍然有許多必要原因,使得開發者選擇了app開發。很明顯,很多人已經在這麼做了。本文将詳細分析兩種方案的優劣。       功能豐富   正方:App裡可以開發出更豐富的功能   我們把移動功能分成兩類。程式本身和程式與系統的結合。比如android裡,加入widget圖示或者通知提醒之類的。App對這兩者都沒問題。不用多說,這是肯定的。       反方:APP是挺強,但Web也正在迎頭跟進   确實很多原生app實作的功能是HTML5望塵莫及的。不管你的web做的再牛,如果停留在一個沒有攝像頭支援的沙盒中,很多場合還是玩不轉。幸運的是,現在沒有這樣的沙盒限制了。如果你需要你的web照相片,可以做一個負責照像的app,再把你的web打包進這個應用裡面。開源的PhoneGap架構是這麼幹的。這樣widget,手機提醒也都沒問題了。   但這種混合開發的問題在于,增加了複雜性,而且不象傳統web那樣可以直接在浏覽器裡運作。這個問題短時間内恐怕沒轍。好在現在網絡标準在不斷的高速擴充,先進的浏覽器也在一直跟進。Android 3.1已經支援camera了。iOS浏覽器也支援WebSocket和裝置方向檢測了。   總得來說,移動裝置在發展,而web也同樣在快速變化。桌面浏覽器本身,有5家主要浏覽器開發商在改進現有标準,豐富新的功能。是以原生App在快速前進,同時,web也在縮小差距。       運作效率   正方:原生APP速度更快   原生APP沒有瓶頸,而且可以直接調用GPU加速、使用多線程。       反方:現如今Web已經快多了,而且多數應用也用不着那麼快。   這說法有點落伍了。Chrome釋出之時帶來的Javascript V8,給Web速度帶來的飛躍。而現在,計算速度變得更快了:   圖檔處理引擎已經使用web加速。現在硬體加速也已經開始應用了。看看用上硬體加速的canvas(圖表來源)    

HTML5會取代App應用嗎?

  要開發3D遊戲的就不用擡杠了,但對于平而來說,新聞、郵件、時間管理、社交網絡,這些用Web都夠用了。試試Steve Souders的手機性能測試工具。 另外,越來越多的架構結合WebGL,可以發揮OpenGL的優勢了。比如ImpactJS,幫助開發JS遊戲。    

HTML5會取代App應用嗎?

    開發感受   正方:原生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就是一切通吃。

繼續閱讀