10 facts & myths about React Native

React Native. Due to the community admiration that surrounds Javascript, it is a one hyped up framework. It gives you the impression that everything you need to know is Javascript — and the framework will make your hybrid app, well, react like a native. It sounds incredible — who wouldn’t want to live in the world where one language can deal with both iOS and Android, and every web creator can seamlessly turn into a mobile app developer?

Well, let’s take a closer look at the React Native framework and find out some of it real advantages, and some horrendous misconceptions.

1. You no longer have to create two separate apps (for iOS and Android)

Firstly, there are components that React Native cannot support. For example, there is no support for tab bars (on platforms other than iOS), and although you can connect any database, none of them is actually supported directly from React Native. Then, you have to develop those components separately what almost completely defeats the purpose, as obviously, you have to add those elements independently for iOS and for Android. Sometimes there are only singular controls, sometimes whole views — depending on how detailed it is supposed to be and how coherently it should work.

It’s always a good thing to have a deep, technical understanding of a certain platform. If you develop applications for iOS on a daily basis, you will be able to create something closely resembling a native app. Also, you will be able to notice any deviation from the norm.

Secondly, native components do not perform that well on multi-platform apps. That’s unfortunately a stated fact, not just a subjective opinion. It’s mostly because they create a coating — an additional level of management — over device functionalities, which really slows them down. Direct operations of a real native app will always be faster and more stable. So be prepared for some possible crashes and long loading when using a camera or a GPS in a hybrid app.

2. Apps created with React Native are indistinguishable from native ones

So if you are used to native apps, not to even mention — you develop them, you will quickly notice that app made in React Native is different. Moreover, app stores are less willing to accept multi-platforms. The process of launching the hybrid to the app store is much longer and more complex.

3. You can choose from lots and lots of libraries to add native elements

4. It’s unexpensive in development

To put it: to some extent, React Native multi-platform apps indeed are cheaper, but after crossing the line with adding native elements, the cost may not only equalize with cost of creating a native, but even suppress it. Lots of people and companies talk about React Native “cutting costs in half” or guaranteed “up to 40% savings” when using it, but in many cases, after adding native elements and further development, prices become very similar to those of a native.

5. It’s popular among clients

6. It’s easy & comfortable in development

As for the second part of the statement, developers with wider experience agree that you will need some additional tools (fortunately, they are free — also, easy to find and obtain) to make the process more pleasing, especially the debugging part. So it’s not really that comfortable by default — but you can easily adjust it to your needs.

7. It has a great community

React Native, as an open source project, is being developed by the community, which means it is constantly expanding. With that being said — it’s actually the community that leads the framework to be even worth considering at all.

8. It’s great for MVPs

Moreover, most MVPs play the role of a foundation for the whole app that will be constructed in the future. The bigger the app becomes, the more the framework will struggle. It’s more reasonable to create an MVP with a more trustworthy technology, unless you are absolutely sure that it will be very simple and you’ll never want to develop it more.

9. It’s great for simple apps

In the past, many customers wanted to develop simple products, for example applications dedicated for a single event, in frameworks such as Xamarin. As currently the hype concentrates around React Native, it may be a good choice to develop such products using it instead.

10. You can move seamlessly from being a web developer to do hybrids with React Native

If you already developed a few truly native applications, you know how they work. Remember, websites and applications are two completely separate things. You may be the best website developer to ever exist, but apps have their own rules. You have to learn them first, because otherwise, it will be rather noticeable to everyone with the slightest knowledge in the topic that your app is not native at heart. Web developers are used to different solutions and ways of thinking. You navigate websites differently than a mobile app, don’t you? So it’s important to understand that it is not only the technology you have to learn — but also the technique.

Know the needs, know the limits

React Native promises a lot. Reading about its assumed benefits may leave you really excited — one framework that allows you to create apps for both iOS and Android using good old Javascript, what is this witchcraft?! This may be the reason why so many people leave the framework disappointed — the expectations were set too high for what they actually found because they found a nice, open-source framework that allows them to create a simple app working on all devices, nothing more, nothing less. Attempts to create something that can compete with complicated, native applications fail miserably, as React Native simply can’t handle this. It’s not even that you can’t create something pleasant — it depends primarily on your skills — but with every additional feature you may notice that the app runs slower and slower, which makes creating big things in React Native pretty unprofitable.

To sum things up — enjoy the fun parts of React Native, because it can be truly a lot of fun, but remember that it won’t fulfill your dream about a hybrid in a native’s skin. It won’t dethrone neither Swift nor Java and Kotlin, it won’t end the native’s reign, it won’t save the world and cure global warming. If technology capable to mimic native seamlessly ever comes to live, be sure we will be first to rave about it.

You can find the full story on our blog

human-centric software design & development. check out our website: www.iteo.com