react-native技术的优劣(转)

2018-08-19  本文已影响0人  jimjayce

前言

从2017年初开始到现在,使用React-Native做项目已经一年了。我们做的是一款IM软件,嵌入在一个手机游戏平台的工程内部。之所以要采用react-native(后文简称RN)框架重构它,是因为现在游戏大厅上的所有游戏都是热更新的,为了也能让这个IM软件实现实时更新,减少IPA升级的次数,RN当然是不错的选择。

经过一个同事将近一年的预研以后,2017年我们全面开启项目重构。奔着热更新和Write once, run everywhere,从此走上RN填坑之旅。

从ES6,css-layout,redux开始

我一直在从事iOS开发,用OC语言,接触到ES6还是挺新鲜的。语言风格和C系语言完全不是一个风格。参考阮一峰老师的教程http://es6.ruanyifeng.com/#docs/intro
RN采用标签式的界面布局,叫css-layout,和CSS基本一样。虽然是第一次使用这种方式布局界面,用熟之后觉得还是很方便的,代码量少,很直接。
聊天部分我们使用了redux架构,是JavaScript的一个状态机。参考http://www.redux.org.cn/index.html

RN的优势

RN的不完善

容我吐槽一下,不完善的地方实在太多了,和原生开发体验来比,堪称天壤之别。RN现在的最新版本是0.46,我们工程中用的是0.42,毕竟还没上1.0呢。
去掉主观情感,下面列举一下部分不完善的点:

总结

FaceBook也是想为开发者带去一套跨平台、动态更新的 Javascript 框架,口号是:Learn once, write anywhere:Build mobile apps with React。我觉得这是一个伟大的梦想。

2015年刚发布的时候,充满了期待和争议。发展到现在,RN也是逐渐在完善。前一段时间苹果发警告邮件的事情引起了大家的恐慌,不过以我看,RN还是安全的。从苹果的审核政策来看,允许运行于JavascriptCore的动态加载代码,并且没有去使用人家的私有方法。而且,现在使用RN的大公司挺多,尽管苹果高傲,但是要禁止RN的话,还是得掂量一下这些大企业的意见吧。

RN目前确实还不够成熟稳定,所以,想入坑的开发人员和决策者在入坑前得多权衡。虽然作为技术开发者应该具备对新技术的敏锐嗅觉和快速学习能力,但是对于项目的技术更新,还得要根据实际情况,要慎重。用户体验,开发成本,是两个最重要的权衡指标。

毕竟,不管是react-native,JSPatch,还是其他人更新技术,从户用体验和开发体验来说,都是开倒车的。

RN适合什么人或公司

其他普通的应用,没那么迫切需要热更新的,就好好使用原生开发,毕竟原生的成熟度和稳定性要比RN好很多。

上一篇下一篇

猜你喜欢

热点阅读