免费开源的iOS开发学习平台

React Native介绍:4-与其他开发工具、方式对比

想知道,这个与 Phonegap 的比较,包括开发效率,学习曲线,用户体验,工具的完善程度等。

Phonegap 和 React-Native 还是不同。React-Native 内部在 iOS7 版本以上采用的是JS Core Engine 解析的,在版本上是降级使用 WebView。React-Native 针对前端开发者上手难度应该不是很大,主要熟悉Flexbox布局、JSX语法、React-Native API。

这个同跨平台开源的.NET + C#开发通吃平台的APP相比,差距在哪里呢?

你说的应该是指Xamarin吧,这个我有尝鲜过,收费的商业解决方案,我感觉是主要依赖官方提供的控件和库,React-Native相对学习成本没那么高,毕竟现在做C#的相对小众,React-Native没提供的原生控件你可以通过它提供的扩展来自行扩展,开源而且社区相当活跃,我认为前景很广阔,个人认为要比Xamarin好,性能方面没对比过,因为我没买Xamarin的方案。

能从学习周期、开发难度、运行速度方面分析下,AngularJS和React Native的差异吗?

对我个人来说,我是一个Android开发者,之前没接触过Web和JS,Angular我也有看过,Angular学习成本我认为比React高,做APP方面的就是ionic,React是个纯UI的东西,React-Native也是,然后提供了和原生APP的扩展模块,开发周期我感觉对于我来说肯定是React比较快,运行速度方面React-Native是要胜于ionic的。

React-Native开发出来的APP和原生的APP的性能有区别吗,React Native做出来的安卓APP是不是没有原生的流畅啊?

React-Native开发效率高于Native;React-Native效率和体验高于Hybird;React-Native整体性能跟Native差距不大。Facebook给出的性能测试是接近原生的性能,如果不是很复杂的APP,看不出什么差别,但是如果相对复杂的动画UI之类的,那肯定还是原生更胜一筹。不过如果只是开发一个功能性APP的话基本没啥大差别了,毕竟现在的Android手机性能也很好。

用这个你觉得在与我们这帮原生Android App工程师的竞争中,你们最大的技术优势是什么,对比原生,你们的劣势有在何处?

最大的技术优势:iOS和Android可以一定程度上的代码公用,减少开发成本和开发周期,可以随时线上热更新。 和原生相比的劣势:目前React-Native Android不适合做相对复杂的动画效果和UI,体验上会有一些问题,而且热更新只是针对纯React的模块,和原生交互的会有原生代码,热更新就不好用了。目前我感觉最好的方式还是原生+React的混合开发,根据需求做技术选型。

我们目前在用国内的APICloud来做移动端的开发!我感觉React-Native这个东西相应该没有APICloud方便吧!还有React-Native和Phonegap应该差不多的吧?

React-Native和Phonegap差很多,React-Native性能接近Native的性能是因为React核心是虚拟DOM,通过diff算法来进行有效的DOM更新,从而突破Web的DOM性能瓶颈。Phonegap,也就是现在的开源方案cordova,它做出来是Hybrid,RN做出来是Native,性能是最大差别,不过如果你的是资讯类应用,不计较性能,团队有多个Web开发人员也不妨考虑cordova。还有你说的APICloud,实际上是给原生APP套了个WebView壳,尤其在Android上会有性能问题。

我感觉最好的方式还是原生开发,虽然需要的精力多了些但最终是值的,你说呢?

这个就看产品和需求怎么定了,技术选型往往都是跟着产品和需求跑,毕竟技术是服务用户的嘛,我觉得互惠互利吧。

另外Swift开源后,将来有可能第三方机构开发出Siwft可以同时构建iOS APP的平台,所以我感觉还是学好Java和Swift比较好一些,混合开发也许以后会好一点,但目前很长一段时间和原生开发还是要差不少吧。

你要说的是Swift同时构建Android APP吧?不排除这种可能,不过目前混合开发还是比较主流的,毕竟BAT和其他一线二线互联网公司都在用,Web和原生结合可以解决很多产品需求上的问题。

相比其他移动开发,它的优势是什么?

RN的优势在于性能与灵活性的平衡,比Hybrid好的性能,热更新有比Native好的灵活性。快速做出业务逻辑和UI 基本一致 、性能介于原生和混合的APP。