I personally believe you will experience much higher productivity using React Native depending on how you describe your goals and the process you are willing to follow. Note, however that only you will be the best judge of that since you have the access to the full project’s source code and are able to know its strengths and weaknesses.
I also agree that the upcoming Facebook’s RN Fabric implementation is an added bonus that will justify even more the investment in React Native.
Since you are exploring whether incrementally adopting React Native is a good fit for you, I propose to gradually adopt it screen-by-screen (as you have already thought) — that way you will have the opportunity of seeing whether it suits you without the effort of a complete rewrite.
If there are key points of interest that I would propose to look at prior to deciding, those would be:
- Your build systems. You may wish to alter your CI/CD pipelines to accommodate extra building and bundling steps.
- Your team’s capabilities and willingness to adopt. Since the project is Native for now, you will need to have 2 IDEs open: One for the native code development, and one for React Native development. You will also need Chrome debugging, and of course the Android / iOS emulators/simulators. Keep that in mind when deciding how to alter your existing development workflows. I personally have no problems in situations like that — but I also have 2 enormous monitors that help me.
- Examing the speed at which the React Native sections are loaded when visiting them from the Native part inside your app. I strongly suggest to test it on a device that is 2–3 years old in the case of Android, and on an iPhone 6 for iOS (not 6S). That will give you an understanding of what the end user will experience on a mid-end device.
And if you are looking for static typing, I *strongly* suggest you use Facebook’s Flow (https://flow.org). It saved me many times.
I hope I helped.
I would be very interested to know your impressions after a few months in the project you have undertaken with React Native.