如何在React Native中迁移多平台应用程序?

ncu*_*ery 5 migration mobile android ios react-native

我已经开始在现有的应用程序中集成React Native,我的意思是我们希望用尽可能多的RN来重构真正的工业化应用程序(同一应用程序的iOS和Android版本),以便将代码库集合在一起(有也是现有的网络版).

我们相信,包括多个RCTRootView共享同一个桥接器对我们来说是最好的方法,从基本内容视图(共享代码库更容易和更有利可图)开始,并迭代以在RN中转换越来越多的应用程序(动画,导航,...).

但是,当我们调查这种方法时,出现了几个问题,包括技术问题和组织问题.

首先,虽然我们不想成为iOS优先或Android优先,但Android平台似乎没有相同的iOS平台成熟度来完成这类工作.我们遇到了一些问题:

以下不是真正的"问题",但它增加了对Android支持的疑虑.集成文档
的iOS部分清楚地提到可以使用现有桥来初始化视图(API也是显式的). 在Android上,同一个文档提到多个视图可以共享相同的内容,但如果您在捆绑包中公开2个组件并使用它,则必须调用两次,您将在Chrome控制台中看到2行 声音对我来说不是很优化...我真的在这里创建了2个完整的"RN应用程序"吗?initWithBridge
ReactInstanceManagerstartReactApplication
Running application "XXX" with appParams
Running application "YYY" with appParams

话虽如此,我们正在寻找反馈和答案:

  • 关于Android平台,在两个平台上同步重构是否合理,或者我们最好将iOS应用程序转换为RN然后转换为Android应用程序?
  • 我们可以同时在RN视图中显示多远?一次10个,20个视图?
  • 我们的应用程序是"面向数据的".首先在RN世界中的Redux应用程序中移动数据获取是一个好主意吗?我想我们必须公开数据并通知商店更新到本机世界:最有效的方法是什么?(原生模块使得另一方的通信变得容易,原生于RN,但它们似乎对此没有帮助).
  • 另外,如何组织VCS?是将4个代码库(iOS,Android,Web和RN软件包)移动到单一存储库中吗?