混合開發(fā)調研

混合開發(fā)有三種方式

  1. js和html打包在app里,內容在webview里顯示
  2. js代碼調用原生控件
  3. 我們現(xiàn)在的開發(fā)方式妖谴,原生代碼+webview隙畜,定義一些交互方式

第一種方式:ionic github 32.6k stars

PhoneGap是一個封裝了js調用原生系統(tǒng)api的框架,比如相機沸柔,定位最楷。
PhoneGap后來給apache維護了整份,改名叫Cordova

Ionic對Cordova(PhoneGap)再次封裝,包含了打包待错,調試,一套UI(相當于Bootstrap)

語法:Ionic1基于Angular1 Ionic2基于Angular2

優(yōu)點:

  1. Web Android Ios可以用同一套代碼
  2. 可以熱更新

缺點:

  1. 本身還是基于webview烈评,滑動火俄,切換時還是有些卡頓
  2. Angular1和Angular2不兼容,Angular2幾乎重寫了讲冠,現(xiàn)在最新版本是Angular4瓜客,Ionic2優(yōu)化體驗還不夠好,使用Ionic1又會面臨以后升級大量代碼要重寫竿开,這是Angular本身的坑谱仪,Google自己都沒多少項目使用Angular(Angular默認使用TypeScript,點贊否彩, 但是基于模版疯攒,相比React有很多模版語法)
  3. 打出來的包比較大

第二種方式:React Native github 56.9k stars

這兩年很火的項目,語法基于React列荔。有一套自己API敬尺,相當于這套API映射到原生的控件,所以最終調用的是原生控件肌毅,有接近原生控件的流暢度筷转,
實現(xiàn)有兩種方式

  1. 整體是ReactNative開發(fā),部分ReactNative沒封裝的功能悬而,比如友盟分享呜舒,需要分別調用Android和Ios的原生代碼。比如自定義控件笨奠,需要Android和Ios各自寫控件袭蝗,然后ReactNative封裝。
  2. 整體是原生App般婆,由于RN可以熱更新到腥,一些經(jīng)常要改的頁面,比如活動頁可以調用RN蔚袍。缺點是引入RN會讓App包變大很多乡范,不建議使用

優(yōu)點

  1. 流暢度比webview好
  2. React和Angular一樣,實現(xiàn)了數(shù)據(jù)綁定啤咽,代碼量少晋辆,js代碼不需要編譯,修改了代碼宇整,刷新下界面就更新了瓶佳,開發(fā)比原生快,更可以復用大部分代碼
  3. 熱更新
  4. React語法舒服
  5. 社區(qū)活躍度比Ionic更好

缺點

  1. 上手難度大鳞青,需要學習React語法
  2. 三端代碼不可以用同一套霸饲。比如为朋,前端用React 客戶端用ReactNative,React里標簽是<button>厚脉,ReactNative里標簽是<Button>,雖然業(yè)務邏輯的語法可以一樣习寸,但是代碼不能完全復用。
    而且Android和Ios的代碼也不能用同一套器仗,因為RN的原理是RN的API映射到Android和Ios的API融涣,比如有的API已經(jīng)封裝了可以映射到Ios控件,但是Android這邊的映射有缺失精钮,那Android這邊只能用另外的API,兩端大概可以復用80%的代碼
  3. 流暢度還是不如原生剃斧,一方面js映射到原生控件有損失轨香,一方面api沒有覆蓋所有原生控件,比如幼东,Android這邊在界面切換的時候不是調用原生控件臂容,而是用js實現(xiàn)的動畫,流暢度不好(可以改變界面切換動畫來規(guī)避)
  4. 對于自定義控件需要ios和Android各自寫一套根蟹,然后用RN分別調用

第三種方式:VasSonic QQ今年開源的框架 github 6k stars

通撑迹混合開發(fā)的時候需要下載H5,這個過程比較慢简逮。Ionic是規(guī)避了這一點球散,把H5和Js打包到本地,但是要通過ajax請求數(shù)據(jù)散庶。VasSonic的策略是加快H5下載蕉堰。
VasSonic在內容請求方面用了三招:

  1. 動態(tài)緩存
  2. 增量更新
  3. 并行加載

通過對HTML內容添加注釋來定義了一個自定義的格式,對HTML文檔進行分塊悲龟。動態(tài)緩存:指在頁面范圍內屋讶,對分塊后的同容進行更細化(全局、局部)的緩存须教。

增量更新:有緩存的情況下皿渗,只對分塊后的局部內容進行增量更新。

并行加載:VasSonic使用終端應用層原生傳輸通道取代系統(tǒng)瀏覽器內核自身資源傳輸通道來請求頁面主資源轻腺。就是通過VasSonic在WebView初始化過程中時乐疆,同步并行從服務器加載頁面,而不是webview初始化后再去請求约计。

優(yōu)點

  1. 原生+H5的方式和現(xiàn)在改動不大
  2. 加載頁面快
  3. 更新頁面最簡單

缺點

  1. H5返回的內容有自定義格式诀拭,需要后臺和客戶端都加入這個框架,侵入性太高煤蚌。
    而且我們有很多第三方貸款平臺耕挨,他們的頁面沒做特殊處理细卧,就體驗不到更快的加載速度(這一點Ionic和RN也一樣)
  2. 還是基于webview,雖然加載快了筒占,流暢度還是不如原生和RN

總結

  1. 流暢度 RN>Ionic=VasSonic
  2. 代碼復用 Ionic=VasSonic>RN
  3. 熱更新 VasSonic>Ionic=RN (之前有appstore不準RN熱更新的傳言贪庙,不知道以后Ios會不會改變審核規(guī)則..)
  4. 加載速度 RN=Ionic>VasSonic
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市翰苫,隨后出現(xiàn)的幾起案子止邮,更是在濱河造成了極大的恐慌,老刑警劉巖奏窑,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件导披,死亡現(xiàn)場離奇詭異,居然都是意外死亡埃唯,警方通過查閱死者的電腦和手機撩匕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墨叛,“玉大人止毕,你說我怎么就攤上這事∧茫” “怎么了扁凛?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闯传。 經(jīng)常有香客問我谨朝,道長,這世上最難降的妖魔是什么丸边? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任叠必,我火速辦了婚禮,結果婚禮上妹窖,老公的妹妹穿的比我還像新娘纬朝。我一直安慰自己,他們只是感情好骄呼,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布共苛。 她就那樣靜靜地躺著,像睡著了一般蜓萄。 火紅的嫁衣襯著肌膚如雪隅茎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天嫉沽,我揣著相機與錄音辟犀,去河邊找鬼。 笑死绸硕,一個胖子當著我的面吹牛堂竟,可吹牛的內容都是我干的魂毁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼出嘹,長吁一口氣:“原來是場噩夢啊……” “哼席楚!你這毒婦竟也來了?” 一聲冷哼從身側響起税稼,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤烦秩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后郎仆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體只祠,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年丸升,在試婚紗的時候發(fā)現(xiàn)自己被綠了铆农。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡狡耻,死狀恐怖,靈堂內的尸體忽然破棺而出猴凹,到底是詐尸還是另有隱情夷狰,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布郊霎,位于F島的核電站沼头,受9級特大地震影響,放射性物質發(fā)生泄漏书劝。R本人自食惡果不足惜进倍,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望购对。 院中可真熱鬧猾昆,春花似錦、人聲如沸骡苞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽解幽。三九已至贴见,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躲株,已是汗流浹背片部。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留霜定,地道東北人档悠。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓廊鸥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親站粟。 傳聞我的和親對象是個殘疾皇子黍图,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容