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