React Native 与 Swift/Objective-C/Java Native

React Native vs Swift/Objective-C/Java Native

我正在为一家金融科技公司开展一个新项目,我的任务是研究我们是应该使用 React Native 还是原生 Swift/Objective-C/Java 来推进我们的移动应用程序开发技术和战略。

我已经对此进行了大量研究,并阅读了许多与 React Native 相关的案例研究,但我仍然觉得我目前还没有足够的能力做出明智的决定。

广泛的应用功能将包括:

其中一些非常标准和简单,但其中一些需要应用程序使用低级设备功能and/or使用第 3 方 Android 和 iOS SDK。

那么,就移动开发策略的决策而言,我能否根据您最近的经验,就考虑 React Native 而不是原生 Swift/Objective-C/Java 开发的理由征求您的意见?考虑到上面列出的计划功能(包括坚持使用本机 languages/platforms 可能更好的原因)。

根据我自己的经验,当您需要快速开发和迭代时,React Native 是大多数应用程序的不错选择。这通常意味着为客户开发会更便宜。

查看功能列表,我看不出有任何 RN 无法完成的事情。迟早你将不得不深入研究原生代码,通常是将原生模块与 JS 连接起来。我已经这样做了很多次,并不难,RN 网站上的文档帮助很大。

请注意,您肯定会 运行 陷入愚蠢的错误,您必须找到解决方法。起码半年前我在做RN app的时候出现过多次,可能现在稳定多了。

另外我认为这真的取决于潜在应用用户使用的设备。我从未为 Android 开发过,但从其他开发人员那里听说,在 mid-level Android 设备上 RN 运行s 慢得多,这应该从一开始就进行测试。

React Native 在听起来像 "unified and almost fully shareable codebase for different platforms including Web" 的背后有一个非常好的和诱人的想法。但根据我的经验(不是那么广泛,但仍然如此),现实情况有点不同——在某些时候你肯定会遇到一些本地代码问题,如果你有 Swift/Objective-C/Java 开发人员的经验,那就太好了你的团队来处理它。不要相信承诺 "all you need is just a React Front-End Developer"。 React Native 平台本身在我看来更像是一个神奇的黑匣子,我 运行 只用一个命令就不知道里面有什么,也不知道它是如何工作的。你必须至少了解一些关于 Xcode 和 Android 模拟器的知识,即使 Facebook 试图尽可能地向你隐藏这方面的信息。

TL;DR 在我看来,如果你真的想为比 TodoMVC 更复杂的东西尝试 React Native,那么你至少需要 3 名开发人员:Web (JavaScript/React)、iOS ( Swift/Objective-C) 和 Android (Java)。或者只有一个超级英雄。