【玩轉(zhuǎn)移動端系列】移動端應(yīng)用的三種開發(fā)模式
時間:2023-05-31 06:54:01 | 來源:網(wǎng)站運(yùn)營
時間:2023-05-31 06:54:01 來源:網(wǎng)站運(yùn)營
【玩轉(zhuǎn)移動端系列】移動端應(yīng)用的三種開發(fā)模式:
Native App
它是最為傳統(tǒng)的一種移動端開發(fā)模式,IOS 和 Android 系統(tǒng)的官方開發(fā)語言分別是 Objective-C/Swift 和 Java/Kotlin,使用這些編程語言以及相關(guān)組件開發(fā)的App一般稱之為 Native App,原生應(yīng)用是特別為某種操作系統(tǒng)開發(fā)的,它們是在各自的移動設(shè)備上運(yùn)行的,需要用戶安裝使用。該模式通常是由“云服務(wù)器數(shù)據(jù)+APP應(yīng)用客戶端”兩部份構(gòu)成,APP應(yīng)用所有的UI元素、數(shù)據(jù)內(nèi)容、邏輯框架均安裝在手機(jī)終端上。
優(yōu)勢
- 能夠為用戶提供最佳的用戶體驗、最優(yōu)質(zhì)的用戶界面、最強(qiáng)的交互效果
- 每一種移動操作系統(tǒng)都需要獨立的開發(fā)項目,因此其開發(fā)設(shè)計能夠針對不同平臺、不同終端用戶的需求進(jìn)行不同體驗的設(shè)計
- 能夠使用移動硬件設(shè)備的底層功能,可訪問本地資源,簡單說就是能夠訪問手機(jī)的所有功能,如GPS、相機(jī)等
缺點
- 移植到不同平臺上比較麻煩,需要開發(fā)多平臺的版本,開發(fā)維護(hù)成本高
- Release需要通過應(yīng)用商城的審核,不支持動態(tài)化更新,審核周期較長
- 用戶必須手動下載更新
Web App
它是由H5構(gòu)建出來的App,無需下載安裝。類似于現(xiàn)在所說的輕應(yīng)用,存活于瀏覽器中的應(yīng)用,簡單說就是觸屏版的網(wǎng)頁應(yīng)用。
優(yōu)勢
- 開發(fā)成本低
- 更新快,更新無需通知用戶,用戶無需手動升級
- 跨平臺
缺點
- 受到終端網(wǎng)絡(luò)質(zhì)量的直接影響,體驗較差
- 受限于瀏覽器DOM的性能,體驗較差
- 無法獲取系統(tǒng)級別的通知,提醒,動效等,體驗較差
- 用戶留存率低
Hybrid App
Hybrid App是指介于web-app、native-app這兩者之間的app,兼具“Native App良好用戶交互體驗的優(yōu)勢”和“Web App跨平臺開發(fā)的優(yōu)勢”。
它雖然看上去是一個Native App,但只有一個UI WebView,里面訪問的是一個Web App,比如淘寶移動客戶端,使用的就是Hybrid App的路線,只不過它的WebView使用的自研內(nèi)核,所以體驗上更像客戶端,更高效。
Hybrid App按網(wǎng)頁編程語言與系統(tǒng)原生編程語言的混合,通常分為三種類型:多View混合型,單View混合型,Web主體型。
即Native View和Web View獨立展示,交替出現(xiàn)。2012年常見的Hybrid App是Native View與WebView交替的場景出現(xiàn)。這種應(yīng)用混合邏輯相對簡單。即在需要的時候,將WebView當(dāng)成一個獨立的View(Activity)運(yùn)行起來,在WebView內(nèi)完成相關(guān)的展示操作。這種移動應(yīng)用主體通常是Native App,Web技術(shù)只是起到補(bǔ)充作用。開發(fā)難度和Native App基本相當(dāng)。
即在同一個View內(nèi),同時包括Native View和Web View?;ハ嘀g是覆蓋(層疊)的關(guān)系。這種Hybrid App的開發(fā)成本較高,開發(fā)難度較大,但是體驗較好。如百度搜索為代表的單View混合型移動應(yīng)用,既可以實現(xiàn)充分的靈活性,又能實現(xiàn)較好的用戶體驗。
移動應(yīng)用的主體是Web View,主要以網(wǎng)頁語言編寫,穿插Native功能的Hybrid App開發(fā)類型。這種類型開發(fā)的移動應(yīng)用體驗相對而言存在缺陷,但整體開發(fā)難度大幅降低,并且基本可以實現(xiàn)跨平臺。Web主體型的移動應(yīng)用用戶體驗的好壞,主要取決于底層中間件的交互與跨平臺的能力。國外的appMobi、PhoneGap和國內(nèi)的WeX5、AppCan和Rexsee都屬于Web主體型移動應(yīng)用中間件。其中Rexsee不支持跨平臺開發(fā)。appMobi和PhoneGap除基礎(chǔ)的底層能力更多是通過插件(Plugins)擴(kuò)展的機(jī)制實現(xiàn)Hybrid。
優(yōu)勢
- Hybrid App 同時擁有 Native 和 Web 的優(yōu)點,開發(fā)模式比較靈活
- 支持動態(tài)化更新,有BUG直接修復(fù)更新H5就行,無需應(yīng)用商城審核
- 可以使用橋接(JS Bridge)來調(diào)用系統(tǒng)的攝像頭、相冊等功能
- 支持跨平臺,只要有 WebView,一套代碼可以很容易跨iOS、安卓、Web、小程序、快應(yīng)用多個平臺。
缺點
- 受到終端網(wǎng)絡(luò)質(zhì)量的直接影響
- 受制于 Web 的性能,在長列表等場景依然無法做到和Native一樣的體驗。
當(dāng)然靜態(tài)文件加載速度是可以優(yōu)化的,比如采用離線包方案。用戶安裝APP時自動下載靜態(tài)文件壓縮包,App自動解壓靜態(tài)文件。這樣每次訪問的是 App 本地的資源,加載速度可以得到質(zhì)的提升。
如果文件有更新,那么客戶端就去拉取遠(yuǎn)程版本,和本地版本進(jìn)行對比,如果版本有更新,那就去拉取增量文件,用二進(jìn)制 diff 算法 patch 到原來的文件中,這樣可以做到熱更新。
但是成本也比較高,不僅需要在服務(wù)端進(jìn)行一次文件差分,還需要公司內(nèi)部提供一套熱更新發(fā)布平臺。
創(chuàng)作不易,希望大家多多支持,文章每周持續(xù)更新,我們下期見.
程序員白話 | [原創(chuàng)]
點關(guān)注不迷路
可以微信搜一搜「
程序員白話」,大家有任何問題都可以通過微信公眾號來聯(lián)系我,知無不言~
關(guān)鍵詞:模式,轉(zhuǎn)移,系列,移動