Native App即原生App開發(fā)
優(yōu)點(diǎn):
?。?)打造完美的用戶體驗
?。?)性能穩(wěn)定
?。?)操作速度快,上手流暢
(4)訪問本地資源(通訊錄,相冊)
(5)設(shè)計出色的動效,轉(zhuǎn)場
(6)擁有系統(tǒng)級別的貼心通知或提醒
?。?)用戶留存率高
缺點(diǎn):
?。?)分發(fā)成本高(不同平臺有不同的開發(fā)語言和界面適配)
?。?)維護(hù)成本高(例如一款A(yù)pp已更新至V5版本,但仍有用戶在使用V2, V3, V4版本,需要更多的開發(fā)人員維護(hù)之前的版本)
?。?)更新緩慢,根據(jù)不同平臺,提交–審核–上線 等等不同的流程,需要經(jīng)過的流程較復(fù)雜。
從android、iOS智能手機(jī)開始出現(xiàn)就開發(fā)有的開發(fā)App的技術(shù),性能體驗是最優(yōu)的,API比較完善,但是學(xué)習(xí)起來難度相對來說比較高,開發(fā)成本比較高(跟開發(fā)周期相對來說比較長也是有關(guān)系的)。
Web App即網(wǎng)頁App開發(fā)
1、特點(diǎn)(html css js)
2、優(yōu)勢(發(fā)版完全自控隨時更新開發(fā)成本小時間快)
3、劣勢(性能差弱網(wǎng)絡(luò)無網(wǎng)絡(luò)條件下體驗差)Web App其實就是寫好的一套長得像App UI界面的能夠自適應(yīng)的網(wǎng)頁加殼。本質(zhì)套webview殼子打包成App,走的都是web頁面(html css js),這種方式對于做過Web開發(fā)的開說非常輕松就可以做出一個屬于自己的App,因為本身來說用的就是Web的東西,所以有非常好的跨平臺的特性可以在任意平臺運(yùn)行,包括發(fā)版這方面web可以隨時部署所以不需要發(fā)版,web頁面嵌入webview開發(fā)起來速度非???,一個人就可以輕松搞定,對有展示類需求的項目來說采用這種方式是最適合的,但是如果要實現(xiàn)的功能比較復(fù)雜的話就顯得力不從心了。
相比Native App,Web App體驗中受限于網(wǎng)絡(luò)環(huán)境和渲染性能。
1、網(wǎng)絡(luò)環(huán)境,渲染性能
Web APP對網(wǎng)絡(luò)環(huán)境的依賴性較大,因為Web APP中的H5頁面,當(dāng)用戶使用時,去服務(wù)器請求顯示頁面。如果此時用戶恰巧遇到網(wǎng)速慢,網(wǎng)絡(luò)不穩(wěn)定等其他環(huán)境時,用戶請求頁面的效率大打折扣,在用戶使 用中會出現(xiàn)不流暢,斷斷續(xù)續(xù)的不良感受。同時,H5技術(shù)自身渲染性能較弱:對復(fù)雜的圖形樣式,多樣的動效,自定義字體等的支持性不強(qiáng)。
因此,基于網(wǎng)絡(luò)環(huán)境和渲染性能的影響,在設(shè)計H5頁面時,應(yīng)注意以下幾點(diǎn):
1、簡化不重要的動畫/動效
2、簡化復(fù)雜的圖形文字樣式
3、減少頁面渲染的頻率和次數(shù)
Hybrid App即混合型App開發(fā)
1、特點(diǎn)(native+js或其他語言)
2、優(yōu)勢(相對體驗好穩(wěn)定性強(qiáng)動態(tài)性強(qiáng)成本相對低跨平臺)
3、劣勢(對團(tuán)隊技術(shù)棧要求相對高性能優(yōu)化)Hybrid App就是Native結(jié)合Web混合開發(fā),Native+js代碼代表作是cordova前身是phonegap,現(xiàn)在移交給Apache,核心JsBridge,js調(diào)java,java調(diào)js。因為有原生做基礎(chǔ)相對體驗好接近原生,因為依賴原生API所以穩(wěn)定性強(qiáng)。跟js相互通信并不是所有都用js,所有都依賴webview。采用原生模塊和js模塊,js模塊可以隨時發(fā)版,這也是這些大廠為什么選擇這個技術(shù)的原因,手淘用的就是Hybird技術(shù),其實它的優(yōu)化難度不亞于原生,但是為什么選擇Hybird去做呢,就是因為熱發(fā)版。
1、在未來一段時間內(nèi),很大程度上會形成以Hybrid形式為主的移動端開發(fā)方式。
2、web App目前是無法取代原生App開發(fā)語言的。
3、App開發(fā)的成本、時間周期、性能優(yōu)化、體驗優(yōu)化、動態(tài)性等將成為多數(shù)App所關(guān)注的重點(diǎn)。