With React Native gaining interest and popularity among both developers and investors in mobile solutions, we take a closer look at some aspects of the technology that are popularly considered as defining its value.
React Native myths – navigation1. With React Native you get 2 (or 3) apps for the price of one
2. Facebook and Instagram were written in React Native
3. Once you start working with React Native you do not want to go back to native
4. Working with React Native reduces the cost of the project by 50%
5. React Native is another platform for creating hybrid applications
7. You can use any computer to program applications in React Native for iOS and Android devices
React Native is cross-platform. This means that it can be used to write apps for Android and iOS (and recently Windows) using the same technology. The specifics of these operating systems differ significantly. Components for Android apps must meet different requirements than iOS or Windows.
When creating apps with React Native, we still need to build a separate, dedicated app for each system. The cross-platform advantage is that we only need a single technology instead of 2 (or 3) native ones.
The fact is that only one small Facebook module was made using React Native, and same goes for the Instagram Application. Facebook used the fact to promote the technology, but in a technical sense, it was more of a test of the new solution. Facebook used React Native technology for the Events module – but only for the iOS platform. The technology was not applied in any other module of their mobile app.
Furthermore, on the instagram jobs page there are currently no ads for React Native Engineers, but we can find several offers for Software Engineers specializing in native Mobile Applications (Android/iOS). This is a good indication that the application being developed in native technologies.
Airbnb application is one of apparent success stories of using React Native. Unfortunately for the fans of this technology, in June 2018 Airbnb engineers posted that they decided to go back to native programming and drop React Native two years into the adoption of it for their mobile apps.
Airbnb informs that decision was connected with technical and organizational problems with using React Native Technology in their projects. The company announces its departure from RN here.
The highest level of cost reduction that can be obtained is between 20% and 25%, but experience shows that actual reduction is more around the 15% mark and in many cases there are hardly any savings to be made .
The overall cost of implanting a mobile application requires a wide variety of competencies apart from the technology itself. The UX/UI design, analysis, project management, quality assurance – all matter as much as the programming whether it’s native Android, iOS or cross-platform React Native.
Because of that the entire cost of just programming usually forms 45% to 60% of the cost of the project. To simplify, let’s assume in further calculations that cost of development is 50% the cost of the project. The other 50% will be independent, no matter what technology we use to create a mobile application.
If you try to reduce costs by hiring only one React Native programmer instead of two native software engineers (Android, iOS) – you do save. Still, if you analyze the mobile application project as a whole, the overall cost can be reduced by a maximum of 25%. More prons and cons of React Native in our previous article.
Experience also shows that in cases when React Native is not a suitable choice for a particular project (due to eg. high performance, quality requirements) the savings are all but negligible.
Screens and components displayed in a mobile application (written in React Native) are native components operated on a scripting language level. However, hybrid applications such as Cordova are actually Webview (browser window) apps with access to certain hardware features.
Similarity of names can often cause confusion. React Native technology has little in common with web applications and is not the same as React.js.
When it comes to React Native, it all depends on experience, individual skills, and the programmers capacity (and will) to learn. In the technical sense, mobile & web app development is similar, but not quite the same. Mobile application’s structure, integration with built-in components (camera, GPS, microphone, push notifications, Android/iOS operating systems) and application’s context are completely different. In web applications context is provided by the browser (device specific); in mobile applications context is most often provided by Android and iOS operating systems. Knowledge of these two systems and the differences between them are essential for proper mobile application programming in React Native.
On the upside, most dedicated components written in React Native are suitable. It is rare to write your own native components in Android and iOS.
To create applications for both Android and iOS systems, you need both environments – Android Studio and XCode. Android studio can be installed on computers with iOS system which means that Apple Mac is good enough for programming React Native’s applications for both systems. Unfortunately, Windows/Linux users can only build applications for Android system.
Applications need to be tested on both systems independently as there are often differences in application’s operation depending on system used which means that programmers should have a set of devices for testing.