1. What’s the difference between React and React Native?
React Native is not a different version of React. React Native uses React. Essentially, React Native is a custom renderer for React, just like ReactDOM on Web. Apart from transforming React code to work on iOS and Android, React Native also gives access to the features that these platforms offer.
2. Will my React app work on mobile? Will my React Native app work on Web?
Unfortunately, no. Most of the React code for Web relies on features available in Web browsers, so it will not work on mobile and vice versa – React Native code relies on the features available on a given mobile platform. The good news is that we can still reuse some code between the mobile and web apps, and the ability to reuse the code will improve in the future.
3. Will React Native make my app look and run the same way on iOS and Android?
iOS and Android offer different sets of features, and it's not React Native’s responsibility to make these environments equal. React Native is only a way of accessing the native components in iOS and Android. I would say that most of the time – with some effort – we can make apps on both platforms look the same, but we shouldn't. We should stick to platform guidelines when it comes to user interface. Luckily, React Native provides us with an easy way to adapt the UI to the given platform’s needs.
4. Should I choose React Native or native (separate iOS and Android)?
React Native is great for most apps that rely heavily on the user interface, because with little effort, we can get the UI to work on both iOS and Android, and, most importantly, we can share the business logic. Apart from that, React Native uses flexbox for layout, which works the same way on iOS, Android and Web, so we can transfer our experience from Web instead of learning more different engines. On the other hand, a native app is great when we consider using all the features that a platform offers, including such modules as video/audio processing or multithreading. Since React Native focuses on the User Interface only, it can be less efficient for applications with many native features.
5. Is every React developer also a React Native developer?
Most of the time when developing a React Native project, we write React code, which does not really differ from the code known from React for Web, but we should be aware of the unique properties of mobile platforms – some things might not be that obvious. React developers are not React Native developers by default. That said, we can transform React developers into React Native developers in a short period of time by giving them an opportunity to gain experience in React Native.
6. Does React Native mean we don’t need native developers?