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