React Native出來有一段時間了,國內的weex和deviceone是近期釋出的,我可以說從2011年就開始關注快速開發的跨平臺平臺技術了,接觸過phoneGap、數字天堂、appcan等早期的移動中介軟體技術,也跟朋友也討論過這類的輕量級框架。這些年通過Html5技術或通過Hybrid技術實現跨平臺的道路,基本已經快走到頭了。嘗試跨平臺App的開發者們都快碰的頭破血流了,大家都在期盼新的更成熟的跨平臺開發技術能夠早日出來。研究React Natvie的時候,基本大部分時間都在看一些類似的原始碼,也做了一些分析,最近也對weex和DeviceOne做了一些功課,在這裡面做一下自己理解的對比,與大家一起交流,勿噴。
首先,基本可以肯定的是,大家都把中心轉移到原生的效果上,所以,基本三個平臺在思想上沒有太大的差別。
1. 首先Reac Native是Facebook產品,而deviceone和weex都是國內公司開發。
2. React Native 和deviceone 的ios版本使用的javascript引擎使用的都是JSCore,weex和deviceone的android版本使用的是V8.V8的執行效能還是很優秀的,我個人也非常喜歡V8。
3. React Native 使用的是資料繫結、元件化、前端框架,weex是元件化、資料繫結、前端框架,deviceone是元件化、資料繫結和執行時引擎技術。
4. 平臺要求:
Android: React Native(API16)、weex(API14)、deviceone(API4)
ios:React Native、weex、deviceone基本都是ios7.0以上
windows:React Native需擴充套件、weex不支援、deviceone已支援。
我們可以看下接下里的環境配置:
React Native 需要安裝Android,iOS開發環境,很多依賴,相對複雜。
Weex需要安裝Android,iOS開發環境,安裝cli,相對簡單。
Deviceone不需要安裝Android,iOS開發環境,只需安裝deviceone的IDE,簡單。
開發:
基本三個平臺都是JS來開發
React Native傾向於web方式,需瞭解android、ios的sdk來寫,學習成本和技術要求相對較高。
Weex也是傾向於web方式,需瞭解原生sdk來寫,學習成本和技術要求相對React Native已經有了很大改進。
Deviceone更傾向於物件導向,無需瞭解原生sdk,DeviceOne基本已經實現了一次開發多平臺釋出的能力。
除錯:
React Native 可以在chrome檢視,不支援節點除錯,支援真機除錯。
Weex可以在chrome檢視,支援節點除錯檢視,支援真機除錯。
Deviceone支援真機進行除錯,可以實時檢視錯誤資訊。
效能:
React Native重心比較多,目前效能關注不多。
Weex公司內部的專案裡使用,也一直關注效能。
Deviceone過去一年裡一直在一些真實專案中完善效能。
如何實現的功能實現,listview的實現:
React Native用的scrollview來實現,有一些效能問題存在。
Weex用的recyclerview來實現,效能稍微好一些。
Deviceone基於原生listview類封裝,效能與純原生系統基本一致。
案例:
React Native比較早,國外案例多一些。
Weex目前剛剛,不是很成熟,案例只有示例類的東西。
Deviceone成立也比較晚,案例也有一些,基本都是近一年內的案例。
社群:
React Native較早,社群人比較多,相對成熟。
Weex較晚,以公司自己人居多,成熟需一段時間。
Deviceone較晚,社群人相對少一些,內容相對成熟。
最後,其實我覺得相對於大家來做選擇的時候,如果想要實現快速入門和開發,此時無論選擇React Native、Weex還是DeviceOne哪個平臺來做都是有道理的,未來還是要看各自的技術發展和服務支撐能力。原生的趨勢是大家一致認可的方向,我認為目前我們基本已經不考慮以h5為核心的移動技術了,Web時代的思想是不能適應於移動互聯時代的整體需求的。以上只是我的個人見解,謝謝大家。