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