2024-01-24
HTML5負(fù)責(zé)前端展示,Weex負(fù)責(zé)前端與設(shè)備之間的溝通(獲取設(shè)備信息),Vue.JS負(fù)責(zé)執(zhí)行數(shù)據(jù)渲染
APP開發(fā)使用當(dāng)前流行的WebApp技術(shù)
App云平臺使用語言
App開發(fā)框架
App緩存框架
App通信
App傳輸
Native App開發(fā)即我們所稱的傳統(tǒng)APP開發(fā)模式(原生APP開發(fā)模式),該開發(fā)針對IOS、Android等不同的手機(jī)操作系統(tǒng)要采用不同的語言和框架進(jìn)行開發(fā),
該模 式通常是由“云服務(wù)器數(shù)據(jù)+APP應(yīng)用客戶端”兩部份構(gòu)成,APP應(yīng)用所有的UI元素、數(shù)據(jù)內(nèi)容、邏輯框架均安裝在手機(jī)終端上。
即原生開發(fā)模式,開發(fā)出來的是原生程序,不同平臺上,Android和iOS的開發(fā)方法不同,開發(fā)出來的是一個獨(dú)立的APP,能發(fā)布應(yīng)用商店,
有如下優(yōu)點(diǎn)和缺點(diǎn):
優(yōu)點(diǎn)
直接依托于操作系統(tǒng),交互性雄厚, 性能知名 相比于其它模式的交互,原生APP體驗是優(yōu)的。
功能為強(qiáng)大,特別是在與系統(tǒng)交互中,
幾乎所有功能都能實現(xiàn)得益于原生是直接依托于系統(tǒng)的,
所以可以直接調(diào)用官方提供的api,功能為(比如本地資源操作,通知,動畫等)。
缺點(diǎn)
開發(fā)成本高,無法跨平臺,
不同平臺Android和iOS上都要各自獨(dú)立開發(fā)Android上基于Java開發(fā),
iOS上基于ObjectC或Swift開發(fā),相互之間獨(dú)立,必須要有各自的開發(fā)人員
門檻較高,原生人員有一定的入門門檻,
相比廣大的前端人員而言較少02原生的一個很大特點(diǎn)就是獨(dú)立,
所以不太容易入門,不像web前端一樣那么廣泛,而且Android,iOS都需要獨(dú)立學(xué)習(xí)
維護(hù)成本高,同開發(fā)一樣,項目上線后,維護(hù)起來也很為麻煩
Web App開發(fā)即是一種框架型APP開發(fā)模式(HTML5 APP 框架開發(fā)模式),該開發(fā)具有跨平臺的優(yōu)勢,
該模式通常由“云服務(wù)器端+APP應(yīng)用客戶端”兩部份構(gòu)成,APP應(yīng)用客戶端只需安裝應(yīng)用的框架部份,而應(yīng)用的數(shù)據(jù)則是每次打開APP的時候,去云端取數(shù)據(jù)呈現(xiàn)給手機(jī)用戶。
weex是阿里開源出來的一套APP開發(fā)方案,底層原理是通過核心引擎將代碼編譯成原生組件。達(dá)到原生APP的體驗效果。
優(yōu)點(diǎn)
開發(fā)成本小于原生模式,大部分代碼可復(fù)用
相比于其它模式的交互,原生APP體驗是優(yōu)的
相比于原生模式,這種模式是統(tǒng)一用JS寫代碼,所以往往只需要一名成員投入學(xué)習(xí),即可完成跨平臺app的開發(fā),而且后續(xù)代碼封裝的好,很多功能可復(fù)用
性能體驗高于Hybrid,不遜色與原生
這種模式的view層是虛擬dom,所以性能距離原生差距不大
這種模式可以認(rèn)為是用JS原生,即頁面用JS寫,然后原生通過Bridge技術(shù)分析JS,
將JS內(nèi)容單獨(dú)渲染成原生Android和iOS,所以性能不遜色原生
開發(fā)人員單一技術(shù)棧,一次學(xué)習(xí),跨平臺開發(fā)
這種模式是統(tǒng)一由JS編寫,有著獨(dú)特的語法,
所以只需要學(xué)習(xí)一次,即可同時開發(fā)Android和iOS
一套代碼跨平臺,只要遵循特定的語法規(guī)則,完全可以達(dá)到一套代碼多個平臺運(yùn)行
o核心就是在web環(huán)境下,將源碼編譯成web中顯示的Html dom對象等,
在原生環(huán)境下編譯成原生組件。o而React-Native中,它是JS寫原生代碼,
不同平臺代碼是不一樣的,雖然有大部分可以復(fù)用,但并不是完全一套代碼多個平臺。
缺點(diǎn)
功能受限于WebView(但是目前WebVApp發(fā)展勢頭迅猛,
除非是對于動畫要求非常高的游戲類應(yīng)用之外,完全可以滿足日常平臺開發(fā))
對開發(fā)人員學(xué)習(xí)有一定要求 , 才能寫出一套源碼兩端兼容
從原理上來講 , NativeApp模式可以直接調(diào)用OS底層API(例如設(shè)備信息,屏幕旋轉(zhuǎn)等) , 而WebApp則需要通過js bridge調(diào)用OS底層API
得益于現(xiàn)在WebAPP的發(fā)展 , 目前WebApp開發(fā)已經(jīng)成為一種趨勢 , 而js bridge 隨著技術(shù)的更新已經(jīng)變得非常強(qiáng)大,
幾乎可以做到和NativeAPP同樣的事情 , 效率和體驗也與NativeApp無異。