本人从事ios开发3年,android开发1年,H5开发半年,接触RN刚好一个星期,就喜欢上这个框架了,在这里说说理由,还有推荐更多的原生开发者投入进RN的开发大军里面来。


    首先说说原生开发的麻烦的问题,无论是ios,还是android,代码都不具备实时更新的特性,只不过android在这个范畴的需求不是很大,不如ios,因为ios特别需要这个,众所周知apple的审核难度超级大,拿android来比较,如果android 上架需要一天时间,ios就是它的7、8倍,甚至十多倍时间,同样一个app,经常发生android已经上架运营了,ios 还卡在审核的期间遥遥无期,笔者最长的审核等待时间,曾试过半年,而当时android之花了一天,问题是两个app都是笔者写的。


     所以ios对可以热更新的特性特别向往,因为这样意味着,能减少很多麻烦。


     另外一点就是跨平台的特性,自从诺基亚败退移动领域之后,手机系统基本给两大平台蚕食了,ios、android。一个app,有ios、必有android版本的局面已经形成,但是按保守的估计,开发一个app包括两大平台,一般的开发周期,都是三个月来算,就是说从无 到有,要一个季度,这个周期对于现在快节奏市场来说,时间成本还是太大了,这意味着,雇佣3个码农,一个UI,一个策划,连续工作三个月,最低花费也接近十万,而且质量还不保障。所以就催生了各种跨平台的方案,例如笔者之前就使用过cordove、H5之类的。
  

  好了,FB旗下的RN应运而生,并且在一大堆跨平台方案里面杀出重围,为什么呢?cordove可以跨平台、H5可以实时更新,但是性能都比不上原生封装的RN。

  说了那么多RN,那么作为一个原生开发者,在使用RN的时候有什么优势和劣势呢?

  劣势方面,很明显的,全新的语言框架,全新的布局方案,可能会让很多原生开发者望而反感,对,是反感!不少的原生开发者都会产生一个这样的念头,它的性能虽然勘比原生,但是其实还是不如原生,还是有一点差距,我为什么要放弃自己辛苦学来的原生技术,投入一个新的陌生的领域呢?我投入进去可能还不如那些常年与React打交道的高手呢,我要花多少时间才能用RN做出目前用原生能达到的水平?

  至少我一开始的时候,我是这样想的。但是我学习了一个星期RN后,我改变了想法,因为相比于上面所说的劣势,我发现原生开发者开发者从事RN的一个更大的优势,就是原来RN还不完善,RN的坑非常多,而且这些坑很多都不是React层面的,很多都是在原生层面上面出现的问题,虽然FB一直都在完善,但是目前还是存在,可能一段时间后还会存在,而这部分的问题,在原生代码上起码它RN 是开源的,我们可以修补,甚至拓展,就是相比于非原生跳过来的高手,你就可以更加灵活,更加接近底层,能解决当前框架解决补了的问题。

  听起来好像有些可怕,不完善还拿出来使用,这不是更加坑?

 但是如果前提是,你随时可以在原生和RN之间自由切换,那么有坑有什么问题?在RN开发里面,别人能解决的,你能解决,别人不能解决的,你也能解决

  一个框架,即可以跨平台,还可以热更新,而且性能还可以,你还能奢求什么呢?

  所以如果你是一个原生开发者,无论ios、android,我推荐你使用React Native,不为别的,就为自由自在地写自己的代码。

  目前,我自己的项目是一个大杂烩,C、C++、Js、OC、swift,彼此互相调用,以后不知道会坑到谁


  我的RN学习路线,分为两大部分:UI和事件逻辑,一切以快速做出一个app为前提。

 环境配置,学习时间一个下午,了解整个运行的原理

  fle弹性盒布局,学习时间一个下午,看着教程所有布局都测试了一遍

 常用控件使用,花费了一天,不求甚解

 手势和动画,花费了一天,不求甚解,到真正使用时候,慢慢研究,反正够用就好

 原生与RN互相调用,解决跳转的bug,1天

 原生库集成给RN使用,1天

 观看成功案例,1天


   就是这样,我就开始写APP,是不是很虚,很危险的感觉,一个APP无非就是UI界面响应逻辑,通过上面的学习,我已经学会了,写写UI界面肯定没有问题了,资讯类App,纯粹浏览的App,肯定够用了,至于那些需要更高性能的东西,视频解码、图像处理,底层逻辑的,我打算用原生写


更多相关文章

  1. Android(安卓)SDK 2.3与Eclipse最新版开发环境搭建(一)
  2. 《Android(安卓)开发入门》我认识中的Android
  3. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速
  4. 2013 android经典实例及赚钱心得
  5. Android(安卓)SDK 2.3与Eclipse开发环境搭建
  6. Mika Mobile 谈论 Android(安卓)游戏开发:一个吵闹而让人讨厌的孩
  7. 一些优秀的 Android(安卓)开发专栏推荐
  8. 详述Google针对Android平板App发布的十大开发准则
  9. Android(安卓)开发者从0到1发布一个微信小程序的采坑过程——使

随机推荐

  1. Android最全面试题库(转)
  2. Android中使Dialog显示时背景不变暗
  3. Android的网络状态判断
  4. Android(安卓)下拉刷新,非常强大的下拉刷
  5. 创建android逐帧动画的两种方式
  6. Android之Handler用法总结
  7. android 中文api (62) —— ViewSwitcher
  8. Android——开发环境
  9. 总目录
  10. Android(安卓)之 AsyncTask 异步任务