為什麼移動平台還是 Native 更流行,較少 HTML5 應用?

現在一款應用,需要做iOS、Android和Windows Phone等多個平台,每個平台做應用成本太高了,為什麼不使用HTML5實現?HTML5有無法實現NATIVE應用的技術瓶頸嗎?


2017.6.6

現在是RN, Weex, 微信小程序百花齊放的年代,H5這麼幾年終究還沒達到native的標準。於是有了以上的這種方案,RN強於生態,小程序也終於開放了流量入口。

小米推出了直達服務,一種更進化的中間態。

本人仍然固執地相信,C/S到B/S的轉變仍然會在移動端發生,就像當年在PC上的改變,但是應該是一種更酷炫的方式。
——————————————————————

2016.9.23
我隱隱感覺微信小程序類似於ReactNative的了,既然用了React為什麼不多走一步呢?
你們可以高潮了。
——————————————————————
2016.9.22
這個三年前的問題,馬上就不成立了。

微信公眾號早就成為H5的容器了,為什麼公布幾個API,提供個Node React打包開發環境整個行業就高潮了呢。
其實如果微信放下身段接受FB的Native(不是已經用React了么,RN結合才是G點),行業才應該高潮,現在只能算ZX。

「某國內一流Android APP分發商店跟我說他們移動客戶端全要換成WebAPP了~」去年說的,就是小米應用商店,界面幾乎全是H5了,並且局部試水RN。

五年前我們用ActionScript做類似RN的事情結果看到Phonegap/Cordova更受歡迎,事實證明只是你缺少技術和產品市場的話語權而已。

——————————————————————
今天2015.4.22,距離這個回答過去兩年了。
mark一下。
如今WebAPP發展到啥樣了呢?
現如今五六百的手機都可以流暢的跑JS動畫了~ 感謝紅米~
微信給H5提供了一個不錯的撒歡兒打滾兒的窩~
某國內一流Android APP分發商店跟我說他們移動客戶端全要換成WebAPP了~

Andy Rubin辭職Sundar Pichai接任Android,於是你已經看到chrome正式入住Android,chrome內核在Android自升級,前兩天chrome有搞了一個ARC,Android APP跑到了chrome里。Sundar肯定是要把Android和Chrome揉在一起的,也許三年後我們討論的WebAPP的概念也變了,變成啥呢?

Google把spdy推演到http2成為標準,科技還總是靠巨頭推動的。

當移動互聯網帶寬又進一步升級的時候,也許離線的WebAPP也不需要了,c/s到b/s的轉變又要像當年的pc上一樣在mobile終端上演,當然歷史總是相似的,總又有令人驚喜的不同。

——————————————————————

主要還是Html5 Native渲染不過關(尤大提到DOM內存問題在列表類界面的確需要優化處理),Network Access已經不是問題了

優秀的Html5Javascript Container出現才能根本解決問題,現在要想效果好只能拼硬體

本人經驗是硬體越好效果越好,iOS webkit效果好於Android webkit,Samsung 的Rom對Browser core有優化同樣的配置效果更好些

Html5渲染效果比不上Native App 跟 Android App沒有iOS App流暢是一樣一樣滴,中間隔太多層了,除非OS內核直接嵌入渲染引擎,也許我想多了

——————————————————————下面反駁@水雲逸

  • 每次使用都要打開瀏覽器(多重的打開步驟

現在Html5跨平台應用的解決方案是一次開發,分平台打包,請把思維從desktop繞過來吧

  • 反複讀取同樣的素材和function(花費額外的流量和等待時間,服務器壓力也會更大)(你得再等個好幾年,讓網路上去了再說

Html JS Resource files 都是打包的本地的,不佔流量,何況這年頭的網速還不夠快么

  • 沒有或很少有足夠流暢的圖像,比如按鈕和列表效果(打斷用戶享受的心情

有足夠的效果,性能的確是問題,不過CSS3硬體加速提高很多

  • 離開網路和瀏覽器無法工作,對於內容型的產品是個什麽效果?還是說你打算要求用戶每次保存網頁?(無法離線使用)(要是有解決方案請務必告訴我)

請參照前兩點,打包,或者以後會有Chrome App的類似方式,現在Chrome OS的App也是有離線可以用的,哪天Html5雄起了,Google Android一秒鐘變 Chrome Mobile(firefox mobile os 太超前了,逃不了壯烈的命運)

  • 缺少與平臺相適應的功能或風格,比如手勢【1】、分享【2】(需要用戶改變使用習慣

去查查Html5的Touch API吧,drag神馬的應有盡有,以後會更全哦

  • 真的能夠跨平臺?現在都爲了網銀保留著IE呢,瀏覽器那不同的HTML5實現和網頁那不同的瀏覽器目標擱一起你打算怎麼辦?(跨平臺成本並不低

講Mobile您怎麼能提到IE,好遠古啊,想MS windows phone的browser即使是desktop的IE10,也不敢不遵循標準了,當然有的實現Chrome跟Firefox對象名都不一樣,但是適配的工作比分平台開發代價低很多,何況Mobile的實現還是比較統一的

————————————————————————————

好吧~ 我真的不是Html5的腦殘粉,我是吃過虧的好不好,我們用Html5做殼跨平台,下面還要跑C的協議棧,協議棧性能再高也受不了webkit總是給我卡啊!

Html5取代Native App?過五年再議吧~


就 h5 渲染的問題說兩句,CSS3 用得好,界面基本上是分不出原生還是 h5 的。以一個典型的非遊戲應用來說,iPhone 4S 的時候我就可以 60fps 實現 90% 的動態 UI 需求,現在 5S 上我可以讓你完全看不出是 h5 做的,甚至讓你不相信是 h5 做的。Galaxy S4 或者 Nexus 5 這樣的高端安卓上,尤其是 KitKat 改用 Chrome 作為 WebView 內核之後,效果也相當 ok。真正沒辦法的是那些渣配置、舊版本、連原生應用都要卡的安卓機…

但是,不得不承認現有的 DOM 和 CSS layout model 效率確實差得可以,因為當初就不是以 60fps 為目標來設計的… 以至於現在想要流暢的動態 UI 幾乎必須全部用 CSS transform 來實現… 另外還有各種不知道就會被坑的小地方,比如 box-shadow / text-shadow 這種屬性在移動設備上渲染代價相當昂貴...

再補充一下。在實際應用中,h5 比較致命的問題不是渲染,而是 DOM 元素過多帶來的內存問題。當年 Facebook 拋棄 h5 其實主要就是其無限滾動導致頁面內容越來越多最後越來越卡。Sencha 和 LinkedIn 都採用過管理一個可復用 DOM 元素池來規避這個問題,但在實現上就相對複雜。如果應用的設計中沒有無限滾動的設定,那就基本不用操心這個問題。


看樣子很多(比較)高票的答案都是沒做過HTML5開發也不願意去了解的人,或者是產品經理。

目前的最高票 @王樂 的答案基本靠譜——主要原因就是渲染性能問題,這一點 @王樂已經解釋得很明白,就不再多說了。補充一些我遇到的問題。

首先聲明,以下的webapp是指打包成apk/ipa的所謂"Hybrid App",不管你用phonegap也好titanium也好,甚至自己寫一套簡單的webapp平台也好,它具有如下特徵:

  1. 使用HTML5/CSS/JavaScript做UI(廢話,否則就不叫webapp了)
  2. 所有網頁和資源文件保存在本地,app啟動時利用webview調用這些網頁,不存在到伺服器下載腳本和圖片的問題
  3. 可以簡單地利用Ajax和伺服器通信
  4. 可以在網頁中通過native bridge訪問native app的(幾乎)各種特性,如各種感測器、相機、本地存儲、資料庫等

WebApp標榜的好處是什麼呢?跨平台,對,一次開發多次分發,這也恐怕是使用webapp的唯一理由吧。

(當然還有個「理由」是web前端工程師做起來更容易,實際上這不能成為理由。一個優秀的前端的工資並不比移動工程師少。)

那麼跨平台究竟可行與否,就成了webapp的關鍵。我認為,webapp要想跨平台還有許多路要走。

  1. 最大的難題就是設備碎片化。對,Android,說的就是你。各種屏幕大小各種硬體設備,還有各種奇葩廠商不遵循標準聲稱自己支持某某特性其實做得渣渣一樣或者根本不支持的,連Android上的native都搞不定的問題,你能指望webapp搞定?好歹Android還有各種過濾器允許你根據不同尺寸的屏幕設計不同的界面布局,webapp只有media query這一個法寶,能走多遠呢?
  2. 第二個難題就是原生界面模擬。想在網頁上做出跟native UI一樣的界面,不是不可以,但難度相當大。當然現在iOS7採用扁平設計後UI難度小了很多,幾條css規則就能搞定,以前iOS6時代做個按鈕需要幾張圖片和各種css規則拼接,相當麻煩。——等等這句話好像有哪兒不太對?不是說webapp要跨平台嘛?怎麼還要區分iOS6和iOS7?看來不同操作系統甚至同一操作系統的不同版本,界面風格都大相徑庭,所以得為每種風格單獨做一套樣式表?三星的Android設備用的還是三星家自己的ROM,也得單獨弄一套吧,要不出來個google風格的界面怎麼辦?

    要知道,native app根本不存在這個問題,寫一個iOS app,一個Android App,所有版本的設備上都能跑得很漂亮。

    當然這個問題也不是無解,只要有個優秀的設計團隊,做個通用界面就好了。當然你也可以付出性能的代價採用jQuery Mobile等龐大的界面庫。

可見,其實webapp宣稱的跨平台並不完美,的確不用再為每個平台寫代碼,但需要做的額外工作也很多,算下來實際效果如何,要看你的項目如何定義了。外加HTML5的渲染性能實在不怎麼樣。

那麼為什麼不直接寫幾個native app呢?


主要還是因為 HTML5慢,比不上 Native App,而且這個差距永遠不會被追上。

大佬 Facebook 已經承認過了:

Facebook: 「Betting on HTML5 Was a Mistake」

Mark Zuckerberg: Our Biggest Mistake Was Betting Too Much On HTML5

如果有興趣的人,強烈推薦閱讀下面這篇文章,超長,但是如果讀完了,you won"t regret

Why mobile web apps are slow


Web App 在移動應用的競爭中主要的優勢是跨平台, 主要的劣勢是性能. 但是過去幾年, Android 還沒有出 KitKat (在此之前的內置瀏覽器並非 Chrome/Chromium, 性能很差), Windows Phone 雖然有帶硬體加速的 IE10 (WP8), 但市場份額也非常小, 實際上做出體驗流暢的移動 Web App 的有一定市場份額的平台僅有 iOS. 如此, 跨平台在保證基本體驗的前提下即不再是優勢了, 加上即使是 iOS 或者 WP, 性能上也肯定不敵 Native 應用, 自然很難有所作為.

但是未來就不同了, 再過幾年等到 Android KitKat 以上版本以及 WP 佔有可觀的份額, 對於一些創業公司, 對於某些特定類型的應用, 我覺得 Web App + Native Shell 會是很有力的競爭對手. 一方面有雖然稍差但可以接受的性能, 另一方面一次開發多平台使用, 何樂不為.

當然, 在生態上還會遇到一些阻礙. 畢竟如果要更換解決方案, 整個開發團隊可能都會涉及. 對於團隊已經成型的小型公司來說, 就不大現實了.

可以參考我的 HTML5 應用 詞焙.


部分贊同,但是不完全贊同目前最高票的 @王樂 的答案。現在我對這個問題有了更清晰的認識。

問題不僅僅在於技術,而是有更深層次的原因。

採用html5做開發,通常是因為已有程序員更熟悉web,而不熟悉移動開發。所以最初的動機,並不完全是考慮同時兼容android和iOS兩套系統;隱藏在深處的動機是:對程序員來說,避免學習移動開發帶來的高額成本;對於管理者來說,避免僱傭專業從事移動開發的程序員的高昂薪水。

那麼,自然就會演變成了這麼一種狀況:開發人員基本上不懂移動開發,也不願意學習,仍然是依照自己做web的一套理念來做移動應用。手機和網頁,因為都是html, 對他們來說沒什麼差別;直接在pc上調試,直接在瀏覽器裡面調試,然後套上一個手機的殼就可以了,僅僅是屏幕大小不同帶來的頁面大小不同而已。

其實對於專心做移動開發的人來說,不僅移動應用和web完全不同,iOS和android, iPhone和iPad, iPhone 4/4s和iPhone 5/5s, 都是完全不同的東西,必須認真對待他們之間的差別。

---------------------

評論區的同學沒看明白我的意思啊。我是說,其實不是技術的問題而是理念的問題,技術好學,理念難改。


如果是做閱讀類的產品,在新出來的智能手機上,性能和體驗已經不是瓶頸了。關鍵是用戶習慣的培養,比如很多iOS用戶根本不知道怎麼把離線Web App加到主屏幕上,安卓根本不允許添加Web App。

我們從兩年前就開始做iPhone應用,用過原生,後來轉用Hybrid,都一直被用戶罵得狗血淋頭。開發人員始終以HTML 5性能不高為借口。後來老闆怒了,下了最後通牒。最後我自己寫了個Web App,兩周時間,只用了CSS, js, jQuery(不是jQuery mobile),再加上幾個小插件,用戶體驗和原生沒什麼兩樣。大家可以用iPhone的Safari打開http://app.ftchinese.com去加到主屏幕上。

用什麼技術不重要,用心去了解用戶,做好細節才是王道。

-----------

補充說明一下:在某些Android手機上,是可以將Web App圖標和快捷方式添加到主屏幕上的。但是無法無縫地全屏運行。在另外一些Android手機如小米上,用戶很難找到將網址添加到主屏幕的方法。在iOS上,你只需要檢查用戶的iOS版本和設備,就可以彈出一個說明,用箭頭指向「添加到主屏幕」的按鈕。但是在各自為政的Android上,根本就沒有辦法去指示每一個用戶如何添加Web App,因為連開發人員都不知道每款Android手機應該如何添加網址圖標到主屏幕。

吐槽一下:Android APK默認的那個瀏覽器弱爆了。FT的倫敦團隊已經放棄了在Android上純HTML 5的做法,改用混合開發了。不過他們的核心代碼還是堅持用HTML 5。在中文這邊,由於只有一個前端開發者來兼顧桌面版、手機版、iPhone和Android,所以還是只能用純HTML 5套APK外殼的方式。程序一旦檢測到Android,就會切換到無切換特效的版本。

黑莓10的HTML 5支持很不錯,我們為iOS優化的功能幾乎可以原封不動。但是黑莓的用戶真的太少了!


我覺得最根本的原因,是 html5 app 沒辦法常駐後台,偷偷上傳你的大量隱私數據。所以互聯網的大佬例如百度阿里騰訊都不喜歡直接開發 html5 app。

就我個人而言從使用的角度一般會考慮 web app,因為相對來說要輕量與清新得多。也不會需求大量的根本無理由的許可權,不會在後台常駐聯網跑流量而且耗電。但從開發的角度當然願意開發原生的。

為什麼有很多開發者喜歡 native app 裡面套 html5 框架?只是因為他們同時想得到 html5 的開發優勢,以及 native app 能夠獲得更多隱私數據的優勢而已。他們其實比純 web app 更流氓。

當然,那些不需求任何許可權也絕不常駐後台的 native app 我還是讚賞的。

我認為,目前webapp主要是那些不靠上傳用戶隱私謀利不需要常駐後台的app。


職位剛從前端轉到了ios..此前最後負責的是公司某app的內嵌頁面(俗稱h5)。

其實h5和native各有優劣,

首先是h5的優勢:

1. 用h5做的頁面迭代速度快,每次就更新伺服器的文件用戶那頭就更新了,不用好像native那樣各種提交app store審核,審核不過打回來然後還繼續審,萬一不小心有bug帶出去了又要重新更新一個版本。這是h5的一個巨大的優勢——迭代迅速

2. h5現在已經能做越來越多的事,從地理位置獲取到感測器獲取到陀螺儀,h5的能力已經越來越大,並且相信會變得更大,這讓開發者的門檻大大降低,更多的前端可以直接用js就能做出強大的東西——潛力

3. 跨平台。現在要做一個原生的app,至少要一批人做ios一批人做android,說不定做大點,windows phone又要找一批人搞,成本對小團隊來說可相當不小,而h5,基本搞定一個就全部通用了。跨平台同樣是h5的一個大優勢——成本低

優勢說完了劣勢來了:

1. 說實話h5的性能真的差得可以,處女座表示實在很難接受,之前算是h5負責了比較久,想方設法開硬體加速,減少節點減少請求亂七八糟,是相對效率高了,但是離原生還有很大的距離,這個也不多說了,性能是硬傷——性能性能還是性能

2. 很多h5的頁面喜歡模仿原生的來做,往往原生一兩句代碼就能搞定的東西,用h5做要寫一堆css而且還模仿得不像,人家「啪!」那個選擇框就彈出來了但在h5裡面卡了2下再出來,這就是差別。而且用h5的話控制項難以根據系統更改風格,例如ios6,ios7的選擇框是不同的,原生的話自動適配但是h5倒沒那麼好搞了——界面難以做到和原生一樣和手機ui統一

3. h5的bug真的呵呵呵呵呵呵,好不容易從ie6怪圈逃出來了又遇到了各種各樣的android,甚至ios也會抽風。你說ie6的bug嘛還算有跡可循,百度也有很多沉澱,移動終端的我遇到好多bug根本百度不了,測試那裡一堆手機一個個測總有各種各樣奇怪的問題,勝在有萬能的google和stackoverflow——bugs

個人拙見..萬望輕噴..


對於個人開發者和小型創業公司,使用 HTML5進行iOS、Android和windows phone等多個平台的應用同步開發,完全是現實和可行的。第一是節約成本,第二是多個平台基本能同步發布,第三是能夠讓你挺過早期的艱難期。如果哪天海量的用戶開始抱怨你HTML5的 APP 響應慢,恭喜你,你的用戶基數已經可以讓你有資本拿到足夠的投資去僱傭iOS、Android和windows phone方面的專業頂級人才給你開發 Native 應用了,只要應用的界面變化不大,等到開發完成,無縫的進行 APP 升級即可,海量的用戶開始對你讚不絕口,什麼速度提升 n 倍,基本無延時等等,然後你就可以繼續拉更大的投資了。

要知道當年Facebook和 LinkedIn 都經歷過從 HTML5到 Native 的切換,那時的規模都已經是恐龍級別了。


現在html5還在發展中,等性能問題得到解決後,nativeapp自然是渣。當然現在webapp還遠不能與nativeapp抗衡。所以當前你如果想開發一款應用的話,有錢就多雇些人開發多個平台的版本,沒錢就先弄個webapp湊活,簡簡單單,扯那麼多幹嘛?


這要先分析兩者的優劣,借用美女@鞠子澍的話來說是這樣的:

Native APP

Native APP 指的是原生程序,一般依託於操作系統,有很強的交互,是一個完整的 APP ,可拓展性強。需要用戶下載安裝使用。

優點:打造完美的用戶體驗、性能穩定、操作速度快,上手流暢、訪問本地資源(通訊錄,相冊)、設計出色的動效,轉場、擁有系統級別的貼心通知或提醒、用戶留存率高。

缺點:、分發成本高(不同平台有不同的開發語言和界面適配)、維護成本高(例如一款 APP 已更新至 V5 版本,但仍有用戶在使用 V2, V3, V4 版本,需要更多的開發人員維護之前的版本)、更新緩慢,根據不同平台,提交–審核–上線 等等不同的流程,需要經過的流程較複雜。

Web APP

Web APP 指採用 Html5 語言寫出的 APP,不需要下載安裝。類似於現在所說的輕應用。生存在瀏覽器中的應用,基本上可以說是觸屏版的網頁應用。

優點:開發成本低、更新快、更新無需通知用戶,不需要手動升級、能夠跨多個平台和終端。

缺點:臨時性的入口、無法獲取系統級別的通知,提醒,動效等等、用戶留存率低、設計受限制諸多、體驗較差。

Html5 是很多優點,但是本地 APP 短時間內退出還是不太可能的。

@Sugr木小鳥

原生 APP 的退出需要伴隨著下一代移動計算架構的出現,如今的智能手機的交互和技術架構還是原生 APP 最好

@Lo

Html5 通常拿來做推廣輔助,做個遊戲,有個產品頁面之類的宣傳

@曾德鈞

智能硬體未來「可以」往 APP 操控輕量化(只做一些必要的設置與管理)設備操控的常態化(常用功能與控制主要在設備上操控)發展。

我想這兩個陣營各有各的優勢和劣勢,都會在各自的領域佔據鰲頭。


雖然h5呼聲很高,但真正能駕馭的人並不多,所以native是目前的主流


因為,HTML5還沒準備好。還需要等待硬體,網路等等的突破。

但從長期來看,Web終將蓋過APP。

1 性能的問題,耗電的問題,網路的問題 終將解決,98年在上yahoo那個破主頁的時候,實在無法想像今天的互聯網。

2 HTML5本身的局限,未來也可以通過HTML6,HTML7來完善。

3 跨平台的需要,不單單是跨操作系統,更是需要跨屏:手機,桌面PC,平板,電視,未來還有會第五屏,第六屏,隨著物聯網的到來,這個星球上的任何物品都可能被接入互聯網,都可能產生一個屏幕。需要Web來消融這些邊界。

4 APP的形式根本就是反互聯網,將一個個應用變成一個孤島,應用的發布更新都要被審查。

寫這些不代表我支持現階段用html5寫webapp,相反,現階段用本地app滿足需求才是最優選擇。


Steveten這個Load不太理解,用PhoneGap的話可以完全離線(原理就是PhoneGap自己帶一個小型本地伺服器,網頁文件都在這裡頭)

------------------------------------------分割線------------------------------------------

前段時間學習HTML5跨平台應用開發,調研的資料不少,實踐得還不多,僅就調研的結果說說自己的看法:

  1. 國外正在興起。appMobi之類的生態圈,各種從底層跨瀏覽器組織進行系統資源訪問到頂層界面動畫的框架已經不少,像Titanium/Rhomobile神馬的,更是把整個HTML5應用開發流程給顛覆了(雖然這種顛覆不知道是好是壞)
  2. 性能、體驗是問題。
    1. 用HTML5做的應用大多體驗較差(有好的案例不妨分享一下)。比較有名的jQuery Mobile框架,頁面切換效果很不Native。HTML5中,CSS3加入了不少動畫效果,效率比jQuery自帶的高很多(jQuery要解決各種兼容問題,性能限制較大),部分還能用到瀏覽器的硬體加速效果。
    2. 但是呢,需要IE10才支持CSS3,Windows Phone8之前沒戲。所以也有一部分界面框架只支持iOS和Android(webkit系瀏覽器),和最新的WP8,如jqMobi,Sencha Touch。
    3. 而且呢,Android默認的瀏覽器組件是只能通過Rom升級來升級的,你可以想像一下Android 2.3的默認的瀏覽器組件還停留在一兩年前瀏覽器執行JS或渲染CSS的水平,用最新手機版的Chrome能比較流暢地運行的效果,放到PhoneGap里就悲劇了。能不能換Chrome內核打包App?需要額外40MB。所以,這也一定程度上決定了,目前網上各種HTML5版的UI,主要是iOS風格,有少數Windows Phone風格,基本沒有Android風格的。
    4. 3D不支持啊混蛋。WebGL很牛逼,也只有Firefox的移動版才支持啊,參考Can I use WebGL
    5. 不同平台兼容問題。「一次編寫,到處運行」,跨平台,以前Java也說過,也被人噴過。瀏覽器對CSS的渲染不盡相同,在Android4.x和Android2.x裡面看到的東西也不太一樣,跑到iPhone和WP里是神馬情況就不知道了。這點PhoneGap + jQuery + jQuery Mobile做得還比較好,但是為了訪問資源開發者還是得了解各個平台的基本設置,才能配置好PhoneGap
    6. 不同平台體驗習慣。用個iPhone的交互規則放到Android上還是不太妥的,參考微信在使用體驗上有哪些值得改進之處?排名第二的答案
  3. 發展快速,有一定前景。HTML5在手機上能做到什麼程度?看看這個.: FLASH VS HTML :.,Android 4.x默認瀏覽器運行無壓力。也可以看看這個GSAP JS – Professional-Grade JavaScript Animation ? GreenSock,用JS做Flash級效果,除3D Transition中CSS3可以硬體加速外,大幅甩開現有其他的HTML5 + CSS + JS動畫方案。雖然這東西商用要收費就是了。


事實上雖然純的html5應用,成功的很少.但html5和native混合的應用有很多了,比較典型的就是手機淘寶和爪度,外部框一個native,裡面內容還是從網上拉下來的html,兼顧native的性能,流量和html5的內容靈活,低維護成本.


應該說HtML5能讓Native APP變得更好!而不是將Native 市場覆蓋


其實Facebook應該是最早用HTML5的了,但是都鮮有人知它曾經用過。

HTML5最近一年確實炒的炙手可熱,但是具體為什麼沒興起我就班門弄斧的說說我遇到的它的弊端吧。

首先我覺得重要因素是JQuery Mobile的開源文件一直都在更新中,尚不完善,穩定性較差。

很多現在開發的HTML5的應用,需要開發者自己編寫大量JAVASCRIPT代碼補充,不便於後期維護。

功能限制很多,比如簡單的上傳圖片功能,保存圖片到本地功能,HTML5規則是不允許的。

從設計美觀的角度來講,由於其的自適應性,在設計界面上的效果也大打折扣。舉個簡單的例子,同一個HTML5的應用在ip5上的顯示效果和在Galaxy S4上的效果是有很大的差異的。同樣需要針對不同終端來做不同的設計。

很多HTML5做完的應用為了完善功能後期都採取了封裝,也就都相當於了一個APP。

Html5相對成本是低,適應終端頗多,但它說到底HTML5也好,CSS3也好。他們的出現是對以前版本的HTML規則更進一步的規範,在適應性,兼容性等方面的完善;出發點就不是成為native app的替代品,只是它碰巧有些屬性可以讓它在那個平台發揮而已。


如果下面的問題都能有正面的答案,HTML5應用一定大有作為。但,如果答案都是負面呢?

  • HTML5應用可以有Native應用的性能嗎?
  • HTML5能很好支持遊戲,尤其是3D遊戲嗎?
  • HTML5應用能訪問本地資源嗎?比如:系統信息,文件。
  • HTML5的有完全確定的行業標準嗎?
  • 對於已有的HTML5標準,每一款瀏覽器都能正確、完整的支持嗎?
  • HTML5的應用在每一個瀏覽器裡面顯示效果都相同嗎?
  • 跨平台應用真的不是一個神話嗎?Java應用跨平台沒有實現的夢想,HTML5有什麼優勢可以實現呢?


這個找幾個webapp和native體驗一下就知道了。。。,native的體驗要比h5的流暢很多.當然也有缺點,發布比較麻煩,要走蘋果,h5的話其實就是一個網站,隨時修改隨時發布!


推薦閱讀:

如何評價手機遊戲《火炬之光:移動版》?
目前用谷歌的 App Inventor 可否製作出像湯姆貓那樣的 App 應用來?
現在手機應用日曆備忘錄提醒功能做得這麼完善,手帳本的存在意義是什麼呢?
蘋果手機能做到什麼小米手機做不到的事?
目前移動互聯網的盈利模式有哪些?

TAG:移動應用 | HTML5 |