论坛首页 Web前端技术论坛

ReactNative&weex&DeviceOne对比

浏览 1071 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2016-07-25  

  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时代的思想是不能适应于移动互联时代的整体需求的。以上只是我的个人见解,谢谢大家。

论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics