淺談Native团搞、Web App严望、Hybrid、ReactNative和WEEX的優(yōu)劣

一句話概要

Native逻恐、Web App像吻、Hybrid、ReactNative(后面以RN簡(jiǎn)稱)复隆、WEEX間的異同點(diǎn)

APP常用開(kāi)發(fā)模式【簡(jiǎn)介】

此處APP為應(yīng)用拨匆,application,并非我們通常講的手機(jī)App
常用的幾種APP開(kāi)發(fā)模式-腦圖

Native App

傳統(tǒng)的原生APP開(kāi)發(fā)模式挽拂,有IOS和AOS兩大系統(tǒng)惭每,需要各自語(yǔ)言開(kāi)發(fā)各自APP。

優(yōu)點(diǎn):性能和體驗(yàn)都是最好的
缺點(diǎn):開(kāi)發(fā)和發(fā)布成本高
舉個(gè)栗子網(wǎng)易管家APP (Tab1亏栈,Tab2)
應(yīng)用技術(shù):Swift台腥,OC,JAVA

WebApp

移動(dòng)端的網(wǎng)站绒北,常被稱為H5應(yīng)用黎侈,說(shuō)白了就是特定運(yùn)行在移動(dòng)端瀏覽器上的網(wǎng)站應(yīng)用。一般泛指 SPA(Single Page Application)模式開(kāi)發(fā)出的網(wǎng)站闷游,與MPA(Multi-page Application峻汉,再后面做介紹)對(duì)應(yīng)贴汪。

優(yōu)點(diǎn):開(kāi)發(fā)和發(fā)布成本最低
缺點(diǎn):性能和體驗(yàn)不能講是最差的,但也受到瀏覽器處理能力的限制休吠,多次下載同樣會(huì)占用用戶一定的流量
舉個(gè)栗子網(wǎng)易管家APP(Tab3)
應(yīng)用技術(shù):ReactJS扳埂,RegularJS等

Hybrid App

混合模式移動(dòng)應(yīng)用,介于web-app瘤礁、native-app這兩者之間的app阳懂,兼具“Native App良好交互體驗(yàn)的優(yōu)勢(shì)”和“Web App跨平臺(tái)開(kāi)發(fā)的優(yōu)勢(shì)”(百度百科解釋)

主要的原理是,由Native通過(guò)JSBridge等方法提供統(tǒng)一的API柜思,然后用HTML+CSS實(shí)現(xiàn)界面希太,JS來(lái)寫(xiě)邏輯,調(diào)用API酝蜒,最終的頁(yè)面在webview中顯示誊辉,這種模式下,Android亡脑、iOS的API一般有一致性堕澄,Hybrid App所有有跨平臺(tái)效果。

優(yōu)點(diǎn):開(kāi)發(fā)和發(fā)布都比較方便霉咨,效率介于Native App蛙紫、Web App之間
缺點(diǎn):學(xué)習(xí)范圍較廣,需要原生配合
舉個(gè)栗子網(wǎng)易云音樂(lè)途戒,我愛(ài)我家App
應(yīng)用技術(shù):PhoneGap坑傅,AppCan,Wex5

React Native App

Facebook發(fā)現(xiàn)Hybrid App存在很多缺陷和不足喷斋,于是發(fā)起開(kāi)源的一套新的APP開(kāi)發(fā)方案RN App唁毒。。使用JSX語(yǔ)言寫(xiě)原生界面星爪,js通過(guò)JSBridge調(diào)用原生API渲染UI交互通信浆西。

優(yōu)點(diǎn):效率體驗(yàn)接近Native App,發(fā)布和開(kāi)發(fā)成本低于Native App
缺點(diǎn):學(xué)習(xí)有一定成本顽腾,且文檔較少近零,免不了踩坑
舉個(gè)栗子:Facebook、youtube抄肖、discord久信、QQ、百度等等

WEEX App

阿里巴巴開(kāi)發(fā)團(tuán)隊(duì)在RN的成功案例上漓摩,重新設(shè)計(jì)出的一套開(kāi)發(fā)模式裙士,站在了巨人肩膀上并有淘寶團(tuán)隊(duì)項(xiàng)目做養(yǎng)料,廣受關(guān)注幌甘,2016年4月正式開(kāi)源潮售,并在v2.0版本官方支持Vue.js,與RN分庭抗禮锅风。

優(yōu)點(diǎn):開(kāi)發(fā)效率和體驗(yàn)上跟RN不相上下酥诽,并且跨平臺(tái)性更強(qiáng)
缺點(diǎn):剛剛起步,社區(qū)沒(méi)有RN活躍
舉個(gè)栗子:淘寶皱埠、天貓肮帐、餓了么等

繼續(xù)剖析

Native App


Native App是一種基于智能手機(jī)本地操作系統(tǒng)如iOS、Android边器、WP并使用原生程式編寫(xiě)運(yùn)行的第三方應(yīng)用程序,也叫本地app训枢。一般使用的開(kāi)發(fā)語(yǔ)言為JAVA、C++忘巧、Objective-C恒界。

自iOS和Android這兩個(gè)的手機(jī)操作系統(tǒng)發(fā)布以來(lái),在互聯(lián)網(wǎng)界從此就多了一個(gè)新的名詞:App意為運(yùn)行在智能的移動(dòng)終端設(shè)備第三方應(yīng)用程序)砚嘴。

Native App因?yàn)槲挥谄脚_(tái)層上方十酣,向下訪問(wèn)和兼容的能力會(huì)比較好一些,可以支持在線或離線际长,消息推送或本地資源訪問(wèn)耸采,攝像撥號(hào)功能的調(diào)取。但是由于設(shè)備碎片化工育,App的開(kāi)發(fā)成本要高很多虾宇,維持多個(gè)版本的更新升級(jí)比較麻煩,用戶的安裝門(mén)檻也比較高如绸。但是比較樂(lè)觀的是嘱朽,AppStore培養(yǎng)了一種比較好的用戶付費(fèi)模式,所以在Apple的生態(tài)圈里怔接,開(kāi)發(fā)者的盈利模式是一種明朗狀態(tài)燥翅,其他market也在往這條路上靠攏。

優(yōu)勢(shì)

1蜕提、相比于其它模式森书,提供最佳的用戶體驗(yàn),最優(yōu)質(zhì)的用戶界面谎势,最華麗的交互
2凛膏、針對(duì)不同平臺(tái)提供不同體驗(yàn)
3、可節(jié)省帶寬成本脏榆,打開(kāi)速度更快
4猖毫、功能最為強(qiáng)大,特別是在與系統(tǒng)交互中,幾乎所有功能都能實(shí)現(xiàn)

劣勢(shì)

1、門(mén)檻高须喂,原生開(kāi)發(fā)人才稀缺吁断,至少比前端和后端少趁蕊,開(kāi)發(fā)環(huán)境昂貴
2、無(wú)法跨平臺(tái)仔役,開(kāi)發(fā)的成本比較大掷伙,各個(gè)系統(tǒng)獨(dú)立開(kāi)發(fā)
3、發(fā)布成本高又兵,需要通過(guò)store或market的審核任柜,導(dǎo)致更新緩慢
4、維持多個(gè)版本沛厨、多個(gè)系統(tǒng)的成本比較高宙地,而且必須做兼容
5、應(yīng)用市場(chǎng)逐漸飽和逆皮,怎么樣搶占用戶時(shí)間需要投入大量時(shí)間和金錢宅粥,這也導(dǎo)致“僵尸”App的增多

WebApp


說(shuō)到Web App不少人會(huì)聯(lián)想到WAP,或者有人認(rèn)為电谣,WAP就是WebApp粹胯,其實(shí)不然。

WebApp與WAP最直接的區(qū)別就是功能層面辰企。WAP更側(cè)重使用網(wǎng)頁(yè)技術(shù)在移動(dòng)端做展示风纠,包括文字、媒體文件等牢贸。而Web App更側(cè)重“功能”竹观,是使用網(wǎng)頁(yè)技術(shù)實(shí)現(xiàn)的App∏彼鳎總的來(lái)說(shuō)臭增,Web App就是運(yùn)行于網(wǎng)絡(luò)和標(biāo)準(zhǔn)瀏覽器上,基于網(wǎng)頁(yè)技術(shù)開(kāi)發(fā)實(shí)現(xiàn)特定功能的應(yīng)用竹习。

響應(yīng)式的大部分技術(shù)都是為實(shí)現(xiàn)WebApp能適配多類客戶端而設(shè)計(jì)的丐一。

Web網(wǎng)站一般分兩種寄纵,MPA(Multi-page Application)和SPA(Single-page Application)。而WebApp一般泛指SPA形式開(kāi)發(fā)出的網(wǎng)站。這樣更像是一個(gè)App牺勾。

優(yōu)勢(shì)

1怔蚌、可以跨平臺(tái)叉跛,調(diào)試方便
2靖避、無(wú)需安裝,不會(huì)占用手機(jī)內(nèi)存震放,而且更新速度最快
3宾毒、不存在多版本問(wèn)題,維護(hù)成本低
4殿遂、臨時(shí)入口诈铛,可以隨意嵌入

劣勢(shì)

1乙各、依賴于網(wǎng)絡(luò),第一次訪問(wèn)頁(yè)面速度慢幢竹,耗費(fèi)流量
2耳峦、受限于手機(jī)和瀏覽器性能,用戶體驗(yàn)相較于其他模式最差
3妨退、功能受限,大量移動(dòng)端功能無(wú)法實(shí)現(xiàn)
4蜕企、入口強(qiáng)依賴于第三方瀏覽器咬荷,且只能以URL地址的形式存在,導(dǎo)致用戶留存率低(優(yōu)點(diǎn)即缺點(diǎn))

Hybird App


混合開(kāi)發(fā)轻掩,也就是半原生半Web的開(kāi)發(fā)模式幸乒,由原生提供統(tǒng)一的API給JS調(diào)用,實(shí)際的主要邏輯有Html和JS來(lái)完成唇牧,最終是放在webview中顯示的罕扎,所以只需要寫(xiě)一套代碼即可達(dá)到跨平臺(tái)效果,另外也可以直接在瀏覽器中調(diào)試丐重,很方便腔召。最重要的是只需要一個(gè)前端人員稍微學(xué)習(xí)下JS api的調(diào)用即可。

Hybird App 的較早實(shí)踐者是PhoneGap扮惦,隨后遍地開(kāi)花臀蛛,如Titanium、Salama崖蜜、WeX5浊仆、Kerkee和國(guó)內(nèi)的AppCan,項(xiàng)目各有各的實(shí)現(xiàn)方式豫领,大致的原理基本相同抡柿。有幸在AppCan上海總部參與過(guò)一段時(shí)間的學(xué)習(xí)研究等恐,如下大致簡(jiǎn)介:

AppCan是基于HTML5技術(shù)的Hybird跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)工具洲劣。開(kāi)發(fā)者利用HTML5+CSS3+JavaScript技術(shù),通過(guò)AppCan IDE集成開(kāi)發(fā)系統(tǒng)课蔬、云端打包器等闪檬,快速開(kāi)發(fā)出Android、iOS购笆、WP平臺(tái)上的移動(dòng)應(yīng)用粗悯。

AppCan的平臺(tái)構(gòu)成


在實(shí)際的APP開(kāi)發(fā)中,AppCan可以完成大部分的工作量同欠,如圖示:


AppCan將APP底層復(fù)雜的原生功能封裝在引擎样傍、插件中横缔,開(kāi)發(fā)者僅需調(diào)用接口、打包編譯衫哥,就可以獲得原生功能茎刚;靈活的插件擴(kuò)展機(jī)制。

開(kāi)發(fā)者可以像開(kāi)發(fā)WebApp一樣開(kāi)發(fā)app的視覺(jué)UI撤逢,以及絕大部分的交互膛锭,當(dāng)需要使用原生功能(如攝像頭,陀螺儀等功能)時(shí)蚊荣,只需要調(diào)用官方的API就可以輕松實(shí)現(xiàn)Native的效果初狰。至于JS和Native的通信,常用的有URL監(jiān)聽(tīng)和絕大部分Hybrid廠商使用的JSBridge通信互例,兩者原理相近奢入。

JsBridge通信簡(jiǎn)圖

關(guān)于JsBridge的原理詳解,可見(jiàn)http://blog.csdn.net/xiangzhihong8/article/details/66970600

在Hybird概念盛行的時(shí)候媳叨,國(guó)內(nèi)外各大公司也參與了探索腥光,國(guó)外代表有Facebook、google糊秆、亞馬遜武福,國(guó)內(nèi)的有騰訊、阿里巴巴痘番、網(wǎng)易等艘儒,慢慢的他們發(fā)現(xiàn)Hybird嚴(yán)重受限于WebView的解析渲染效率,于是Facebook開(kāi)始了他的類原生的研究探索夫偶。

React Native App

請(qǐng)移駕 【筆記】React Native 快速入門(mén)筆記

Weex App

請(qǐng)移駕網(wǎng)易嚴(yán)選App感受Weex開(kāi)發(fā)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末界睁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子兵拢,更是在濱河造成了極大的恐慌翻斟,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件说铃,死亡現(xiàn)場(chǎng)離奇詭異访惜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)腻扇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)债热,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人幼苛,你說(shuō)我怎么就攤上這事窒篱。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵墙杯,是天一觀的道長(zhǎng)配并。 經(jīng)常有香客問(wèn)我,道長(zhǎng)高镐,這世上最難降的妖魔是什么溉旋? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮嫉髓,結(jié)果婚禮上观腊,老公的妹妹穿的比我還像新娘。我一直安慰自己算行,他們只是感情好梧油,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著纱意,像睡著了一般婶溯。 火紅的嫁衣襯著肌膚如雪鲸阔。 梳的紋絲不亂的頭發(fā)上偷霉,一...
    開(kāi)封第一講書(shū)人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音褐筛,去河邊找鬼类少。 笑死,一個(gè)胖子當(dāng)著我的面吹牛渔扎,可吹牛的內(nèi)容都是我干的硫狞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼晃痴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼残吩!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起倘核,我...
    開(kāi)封第一講書(shū)人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤泣侮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后紧唱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體活尊,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年漏益,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛹锰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绰疤,死狀恐怖铜犬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤翎苫,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布权埠,位于F島的核電站,受9級(jí)特大地震影響煎谍,放射性物質(zhì)發(fā)生泄漏攘蔽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一呐粘、第九天 我趴在偏房一處隱蔽的房頂上張望满俗。 院中可真熱鬧,春花似錦作岖、人聲如沸唆垃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辕万。三九已至,卻和暖如春沉删,著一層夾襖步出監(jiān)牢的瞬間渐尿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工矾瑰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留砖茸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓殴穴,卻偏偏與公主長(zhǎng)得像凉夯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子采幌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容