Wednesday, August 15, 2018

React Native at a Glance

I’ve been looking at React Native as a tool for cross-platform mobile app development.


Reactive Native is supported by Facebook. It’s written in Objective-C from Apple.  You code RN in Javascript and JSX. The cool thing about RN is that your Apps are true Native, not web apps or hybrids. It compiles to Native code on both IOS and Android.

My conclusion is that React Native is a pretty good way to have one UI of views and elements that work the same on both IOS and Android. If your App is limited to basic functionality and you have RN components that do what you want, then RN is a good solution. And if your App uses APIs that build server-side content, then take a serious look at RN because it is strong on HTTP and Javascript CRUD.

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?

Conclusion:

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
Contributing Editor

No comments: