轉載自:http://www.jianshu.com/p/ee1cdb33db8d
主要對比React Native和5+SDK(就是dcloud的SDK)兩個:css
- 開發語言:三個都是用其餘語言來統一開發IOS、android應用的框架技術,其中,React Native是使用純JS,5+SDK是使用JS和html,LuaView則是使用lua語言,三者都是使用css或者類css佈局,這點都很像,
三者均可以使用原生(IOS、android)語言作一部分功能,好比有特殊性能要求的地方,就使用原生代碼寫,而後前端腳本語言調用;
- 開發效率:RN和5+SDK是主要採用JS語言作開發,效率上不是問題,LuaView採用的是lua腳本語言,這個你們都不熟悉,因此建議優先前兩種;
- 動態發佈特性:三者都支持動態發佈,並且最方便的是RN(簡要說下RN如何工做的,RN採用的是React技術<這個技術已經好多年了,是比較成熟的,只是RN纔出現一年半>,這個技術是依託於node.js,而且發佈後臺採用node.js,文件修改替換即發佈,不須要作另外的版本控制<版本控制採用SVN或者git的方式>;發佈時,在後臺整個項目是做爲node.js的一個node節點來發布的;主項目中基本上是一個空項目,引入其餘的native模塊,這樣管理很方便)
- 擴展性:都是動態發佈,只有基礎native組件須要更新時才須要appstore審覈發佈;
- 可讀性:RN是採用純JS開發,不須要html,代碼上的行數通常要比5+SDK少不少,並且RN的開發過程當中,規範作的也不錯(我的感受html+js+css會致使代碼的行數上增大不少,閱讀起來也就沒那麼方便)
- 性能:RN是採用JS橋接加Native橋接兩個方式合併起來,而後加上增長對比差別化算法增量渲染,並且渲染都是native渲染,性能雖然比純原生差一點,可是仍是遠遠比H5的性能要快不少;
5+SDK,開發時是html+js+css來開發,其實真正執行渲染時仍然是webview,我用工具查看過最終的頁面結構,是一個webview,性能慢那是沒的說的了
- 相關開發工具:5+SDK提供一個工具,也不錯,不過咱們通常都是用其餘的文本編輯器就能夠了;RN也提供了一個開發工具,atom編輯器的插件nuclide,還不熟練,不過應該不錯(也有不少人使用sublime)。
- 開發初階段,上手速度:RN比較大型,雖然採用的是純JS開發,可是採用的React的開發方式,有不少的API須要熟悉和使用,相比於5+SDK上手速度是麻煩了點;並且RN的開發環境的搭建和使用須要不少的命令行工具,這也給RN的上手增長了必定的困難,不過用熟練了,就會發現RN這種方式的好,那真是好很差誰用誰知道(貌似5+SDK也是須要熟悉不少API,這點好像差異不是特別大);
- 社區力量:RN在React以後誕生了僅僅一年半,可是github的星數已經達到三、4萬了,這個火熱程度要遠遠比其餘的框架熱門了太多了,社區的力量大,就意味着坑少,或者說即便有坑修復的也快,有問題能找到解決方案的速度也越快,框架完善的速度也越快
- 開源:這也是很重要的因素,RN和LuaView是開源的,開源就意味着咱們開發人員能夠掌控的力度就越大,這年頭,框架不開源,遲早得死;
- 文檔:RN的文檔仍是很全的,還有不少外文翻譯,官方也有相關的視頻,5+sdk和LuaView文檔就很通常般,熱別是5+SDK,不開源,文檔就不更新;
- RN的另一個好處:RN同屬於React,語法特色都一致的,React的口號就是learn once, write everywhere,並且React就是爲web開發而產生,熟練了這個,能夠把公司相關模塊,好比說web端均可以統一了;固然5+SDK也能夠作到這點,LuaView作不到這點,它只適用於IOS、Android的適配。
最後分享一個找到的一個別人開源出來的RN開發的APP:
https://github.com/soliury/noder-react-nativehtml