對比React Native、dcloud、LuaView三個框架技術(內部)

weixin_33866037發表於2016-05-24

主要對比React Native和5+SDK(就是dcloud的SDK)兩個:

  1. 開發語言:三個都是用其他語言來統一開發IOS、android應用的框架技術,其中,React Native是使用純JS,5+SDK是使用JS和html,LuaView則是使用lua語言,三者都是使用css或者類css佈局,這點都很像,
    三者都可以使用原生(IOS、android)語言做一部分功能,比如有特殊效能要求的地方,就使用原生程式碼寫,然後前端指令碼語言呼叫;
  2. 開發效率:RN和5+SDK是主要採用JS語言做開發,效率上不是問題,LuaView採用的是lua指令碼語言,這個大家都不熟悉,所以建議優先前兩種;
  3. 動態釋出特性:三者都支援動態釋出,而且最方便的是RN(簡要說下RN如何工作的,RN採用的是React技術<這個技術已經好多年了,是比較成熟的,只是RN才出現一年半>,這個技術是依託於node.js,並且釋出後臺採用node.js,檔案修改替換即釋出,不需要做另外的版本控制<版本控制採用SVN或者git的方式>;釋出時,在後臺整個專案是作為node.js的一個node節點來發布的;主專案中基本上是一個空專案,引入其他的native模組,這樣管理很方便)
  4. 擴充套件性:都是動態釋出,只有基礎native元件需要更新時才需要appstore稽核釋出;
  5. 可讀性:RN是採用純JS開發,不需要html,程式碼上的行數一般要比5+SDK少很多,而且RN的開發過程中,規範做的也不錯(個人感覺html+js+css會導致程式碼的行數上增大很多,閱讀起來也就沒那麼方便)
  6. 效能:RN是採用JS橋接加Native橋接兩個方式合併起來,然後加上增加對比差異化演算法增量渲染,而且渲染都是native渲染,效能雖然比純原生差一點,但是還是遠遠比H5的效能要快很多;
    5+SDK,開發時是html+js+css來開發,其實真正執行渲染時仍然是webview,我用工具檢視過最終的頁面結構,是一個webview,效能慢那是沒的說的了
  7. 相關開發工具:5+SDK提供一個工具,也不錯,不過我們一般都是用其他的文字編輯器就可以了;RN也提供了一個開發工具,atom編輯器的外掛nuclide,還不熟練,不過應該不錯(也有很多人使用sublime)。
  8. 開發初階段,上手速度:RN比較大型,雖然採用的是純JS開發,但是採用的React的開發方式,有很多的API需要熟悉和使用,相比於5+SDK上手速度是麻煩了點;而且RN的開發環境的搭建和使用需要很多的命令列工具,這也給RN的上手增加了一定的困難,不過用熟練了,就會發現RN這種方式的好,那真是好不好誰用誰知道(貌似5+SDK也是需要熟悉很多API,這點好像差別不是特別大);
  9. 社群力量:RN在React之後誕生了僅僅一年半,但是github的星數已經達到3、4萬了,這個火熱程度要遠遠比其他的框架熱門了太多了,社群的力量大,就意味著坑少,或者說即使有坑修復的也快,有問題能找到解決方案的速度也越快,框架完善的速度也越快
  10. 開源:這也是很重要的因素,RN和LuaView是開源的,開源就意味著我們開發人員可以掌控的力度就越大,這年頭,框架不開源,早晚得死;
  11. 文件:RN的文件還是很全的,還有很多外文翻譯,官方也有相關的視訊,5+sdk和LuaView文件就很一般般,熱別是5+SDK,不開源,文件就不更新;
  12. RN的另外一個好處:RN同屬於React,語法特點都一致的,React的口號就是learn once, write everywhere,而且React就是為web開發而產生,熟練了這個,可以把公司相關模組,比如說web端都可以統一了;當然5+SDK也可以做到這點,LuaView做不到這點,它只適用於IOS、Android的適配。

最後分享一個找到的一個別人開源出來的RN開發的APP:
https://github.com/soliury/noder-react-native

相關文章