I’ve been looking at React Native as a tool for cross-platform mobile app development.
Let’s dig a little deeper. I’m working at an App that does image AI recognition and style transfers. React Native does not have support for these new technologies on either the Android or IOS side.
But it is possible to build your own Swift and Java Components for React Native. Here's the gotcha. The Swift component will not run on Android, and the Java component will not run on IOS. So you are back to platform-dependent development where RN is lacking.
It is also possible to integrate RN modules into existing Swift and Java Native Apps. That's correct. You can add common RN Views to your existing IOS and Android Apps.
So when deciding on React Native, you need to ask yourself these questions:
1) Should my App start as a React Native App or a Native App?
2) Is React a good time saver for the common UI that I need?
3) How much platform-dependent module code do I need to write for IOS and equivalent Android?
If you are writing an App without too much high tech platform dependencies, then React Native should work. Or if your App uses a lot of back-end APIs that do most of the work, then RN could be a great solution. But if you have a complex App that uses a ton of non-RN supported code, then you are probably better off building two versions of your App, IOS and Android Native.
by Rob Adamson