通過Web App和Native App之爭 看如何做技術(shù)選型
“Web App和Native App誰才是未來?”這類的討論幾乎成了移動互聯(lián)網(wǎng)的月經(jīng)話題。這兩天,又有朋友跟我說到“Native App必死”的論調(diào),我并不贊同他的觀點,理由很簡單:雖然我們都知道Native App有許多缺點——客戶端的開發(fā)工作量大;軟件升級和維護比較麻煩;每次版本更新都需要向官方市場提交審核;開發(fā)者需要針對不同的操作系統(tǒng)和不同分辨率的終端進行適配開發(fā)工作;服務(wù)器端要支持多客戶端,難于擴展。但目前為止,其性能和用戶體驗都很難被Web App取代。同時,Web App還有其他的一些弱點——服務(wù)器端的開發(fā)工作量大,邏輯復(fù)雜;需要在更多設(shè)備上進行測試;前端技術(shù)還未標(biāo)準化;難使用設(shè)備的特性(傳感器、GPS定位、本地文件系統(tǒng)等)。所以,我認為這兩種解決方案各有千秋,并不存在“誰將戰(zhàn)勝誰”的問題。
雖然討論“誰才是未來”的話題毫無意義,但我比較關(guān)心另一個話題:在當(dāng)前狀況下,針對不同的公司規(guī)模,面向不同的應(yīng)用領(lǐng)域,該如何做技術(shù)選型?我們看到,HTML5技術(shù)雖然已經(jīng)火熱許久,但真正利用HTML5技術(shù)構(gòu)建的成功的App相較于Native App而言可謂微乎其微,所以我認為看看那些利用HTML5技術(shù)成功的案例是幫助我們思考這個問題最簡單的方法。
我想說的***個案例是Financial Times(金融時報)的FT Web App,它是***個選擇純粹Web App路線的主流新聞媒體。我一直認為,就目前而言,最適合嘗試Web App的應(yīng)用領(lǐng)域就是在線媒體,因為其特性與Web App的優(yōu)勢十分貼合:用戶動作簡單(無非是閱讀、收藏、評論這幾樣核心功能)、注重內(nèi)容呈現(xiàn)、無需做太多的視覺效果、面臨最多的跨平臺問題、與服務(wù)器關(guān)系密切、需要快速的操作體驗、輕量且易于更新。還有非常重要的一點,媒體的核心價值在于其內(nèi)容,而在當(dāng)今為內(nèi)容付費的成功案例都稀缺的情況下,用戶是絕對不會為這類App的下載付費,而開發(fā)一個Native App需要花費較高的成本,我認為對于許多為變現(xiàn)發(fā)愁小型媒體而言,這種做法是不太明智的。
FT產(chǎn)品主管在談到他們的Web App時,除了對其以上特性的溢美之詞外,也分享了他們面臨的幾個主要挑戰(zhàn):1. 目前Web App領(lǐng)域的開發(fā)文檔、測試工具都很稀缺,需要自己開發(fā)測試工具來測試性能;2. 不同的瀏覽器性能差別很大,使得圖片和視頻呈現(xiàn)效果不一且可能出現(xiàn)一些Bug;3. 許多用戶都是***接觸Web App,需要為用戶做好使用指南;4. 做好離線功能(支持預(yù)覽、離線訪問、內(nèi)容的收藏、下載等),他們在官方博客Tutorial: How to make an offline HTML5 web app, FT style中分享了詳盡的解決方案。
第二個案例是LinkedIn的iPad App,與FT不同的是,LinkedIn并不是一個完全的Web App。而是一個95%的工作由HTML5技術(shù)解決,剩下5%的工作(據(jù)說只有界面)是依靠Native App完成的,它實際上可以被成為是一個Hybrid App。
LinkedIn之所以選擇在iPad上利用HTML5技術(shù)開發(fā)應(yīng)用是因為相較于其他的移動設(shè)備,iPad擁有更強大的處理器性能,能夠讓HTML5技術(shù)發(fā)揮良好的特性,保證整個App的體驗和響應(yīng)速度。其負責(zé)人在接受VentureBeat的采訪時分享了一些他們的經(jīng)驗:專注于簡潔的設(shè)計,通過移除一些不必要的設(shè)計來提高響應(yīng)速度,例如去處圓角和漸變效果等。同時,他們大量使用Node.js來提高服務(wù)器的負載能力。
如今,像LinkedIn這種利用Hybrid架構(gòu)解決方案的團隊越來越多,即將需要使用本地資源、數(shù)據(jù)和需要高表現(xiàn)力的部分交給Native來完成,其余部分由Web來負責(zé)。 這么做一方面能將Web App的許多特性表現(xiàn)的***,另一方面也能保證應(yīng)用有不錯的響應(yīng)速度和本地特性。
上面兩個例子中的FT和LinkedIn都是在線的、內(nèi)容屬性和實時屬性非常強且對效果要求不高的產(chǎn)品。這也是我認為如今最適合嘗試Web App技術(shù)的產(chǎn)品類型,而像游戲這種對動畫效果和處理性能要求很高的產(chǎn)品,還沒有在HTML5技術(shù)運用上十分成功的案例(已經(jīng)有一些游戲公司在嘗試Hybrid方案)。所以我想說的是,請拋開對Web App和Native App非黑即白的爭論,這個世界上,從來沒有***的技術(shù)或是編程語言,只有最恰當(dāng)?shù)倪x擇和與之匹配的解決方案。