The popularity of React Native has skyrocketed for the past 2 years. Meet the framework developed by Facebook Team that stands behind Facebook, Instagram, and Skype mobile apps.
What is React Native?
Upwork.com described React Native as the future of hybrid app development, and since React Native’s launch in 2015 the interest in this framework keeps constantly growing. React Native was used to develop apps like Facebook, Instagram, Skype, Airbnb, Walmart, Tesla, etc. But why?
What are the advantages of React Native?
Updates - It is possible for developers to push updates directly to the users so that users don’t have to worry about downloading updates from for example Google Play. Unfortunately Apple’s new guidelines ban any form of Code Push in AppStore apps.
Some frameworks try to mimic native UI elements, but the result feels a little bit off. Creating details like animations may take a lot of time, effort and will probably become out of date really quickly.
React Native has got you covered! It translates your markup to real, native UI elements, leveraging existing means of rendering on whatever platform you are working with. On top of that, React works separately from the UI meaning that your applications will maintain high performance without sacrificing capability. This means that developers coming from the Web with React can write mobile apps with the performance, look and feel of a native application, while using familiar tools.
Cross-Platform and Code Sharing Working with React Native can shrink the resources needed to build mobile applications. Any developer familiar with React can easily pick up React Native and now target both Web and mobile platforms with the same skillset.
Much of your code can be shared across other supported platforms. Facebook noted in the React Europe 2015 keynote that Facebook Ads Manager application for Android shares 87% of the iOS version. Keep in mind that depending on the functionality of your app, not all the code you write will be cross-platform. However, if you want to build an app for both iOS and Android choosing React Native will definitely save you a lot of time, money and lines of code.
Hot Reload React Native attempts to bring the best developer experience by saving time it takes to save the project just to be able to see the changes with an introduction to Hot Reload.
A video is worth a thousand words so here’s a comparison between Live Reload and Hot Reload:
What are the disadvantages of React Native?
Maturity - React Native is very young, it launched in March of 2015 for iOS and 5 months later it was released for Android. Because of that the documentation definitely has room for improvement, but with Facebook on its side, it continues to evolve.
Debugging - React Native introduces another layer to your application, making debugging more difficult, especially at the intersection of React and the host platform.
Alternatives to React Native:
Xamarin - React Native faces a strong competition from Xamarin - an established cross-platform development platform. Its development is in C#. It offers basically equal performance, mature IDEs, comprehensive APIs and a little bit friendlier licensing.
Native app development - Native app development often offers easy access to APIs, meaning that there are no restrictions and no “extra layers”. Native languages for Android and iOS are so called “strict languages”, which makes errors easier to detect. Keep in mind that if you want to “go native” you will have to develop two applications for both iOS and Android.