React Native provides an opportunity to build cross-platform apps for both IOS and Android. This creates a thought that you can build one app that will work on both platforms, so you can cut the costs twice. However, there is a lot of misconception around this framework and the first thing you should know — it’s not a perfect choice for all of the apps. Let’s dive into the topic and understand what are strong and weak sides of React Native and is it worth using. Interest in React Native is Increasing React Native was developed in 2015 by Facebook and since that time the interest in this framework was rapidly growing: And it’s not a surprise, because when businesses think about building an application they immediately end up on React Native because of its attractive features. Pros of React Native React Native was created to give companies an opportunity to build products faster, scale easier and reduce the costs of the development. That was achieved for some types of apps due to these features: This is a superpower of React Native. “Hot reloading” feature enables developers to see changes made in code within seconds not minutes as when using native technologies. Faster development process. Up to 80% of a codebase can be shared across platforms, depending on the complexity of the app. But keep in mind that React Native uses native components of the platform, the more of these components are used, the less code can be shared. Cross-platform code sharing. with the help of tools like code push, that enables pushing changes directly to users’ interfaces. Reducing deployment time There are hybrid technologies like Cordova, Ionic, etc., but React Native framework is not like that. It works on so-called WebView which is a range of web components put inside mobile apps. This solution does not allow to use native UI as well as some of a mobile device functionalities available via API. Instead, developers can use quite a few APIs and native interface components. Better than hybrid apps. Cons of React Native in comparison to native technologies Regardless of all the advantages, React Native has few weaknesses that can be very painful during the development: Despite the continuous development of React Native, it does not have ready-to-use components that provide access to Android or iOS APIs. To use some functions like camera or accelerometer you have to use native components, so there will be a separate code for Android and IOS. Yes, you can use third-party libraries, but they don’t cover every native function yet. In addition, so-called “bridges” have to be developed to link JavaScript components with native ones, which seriously increases software development time. All of this leads to hiring 3 developers instead of 2 and increasing development time and costs instead of reducing. There is native code anyway. Using the aforesaid third-party libraries and bridges reduces a mobile app performance. In addition, smartphone memory and processor use native components, which also affects performance. Performance. . There also are issues from the side of development. As mentioned by developers, React Native increases speed of development, but as well increases the duration of the debugging process, especially on Android. Longer debugging . React Native was developed by Facebook and is owned by it. This fact creates some risks. Facebook can stop the support and development of React Native, and nobody can do nothing about it. Moreover, they can refuse you using their framework on your project for some reasons.In the case of open-source, technology is developed by the community and is not controlled by one hand. Not open-sourced When to use React Native In a short-term game React Native gained its popularity thanks to development speed and shared code for both Android and IOS platforms. A lot of companies have leveraged it in small apps, like the ones for promotional campaigns. There is no complex code or features and the application will not live for long, so there is no need to worry about future support and scale. Convert a website into an app React Native works on JavaScript and websites use the same technology. That’s why, if you need to create a simple application that will show the data from your website (like blog or statistics), you can easily use React Native. Hiring React.js developer will reduce costs and time of the development. When not to use React Native On a single-platform app React Native was developed to optimize cross-platform development. If you want to develop a single-platform application, it’s better to use native code like Java or Swift. On long-term projects If you plan to a strong, complex and long-term product, React Native will be a risky choice. You can learn from the and not repeat their mistakes.Developing native applications will give you confidence in tomorrow and prevent from losing money on rebuilding the whole product from scratch. develop experience of Airbnb When planning complex features If you are going to use such features as: QR codes scanning OCR (Optical Character Recognition) to read information from images and use it later AR (augmented reality) or VR (virtual reality) Voice assistants Only native apps can support these features. Moreover, if in future some new cool feature will be released, you will need to wait until it will be supported by React Native. Wrapping up So, does React Native really reduces costs? It depends on the project type and size. As mentioned before, React Native can be really useful in the case of small and simple apps. But if you want to develop some complex project like or documents scanner, you better think twice. ecommerce app <a href="https://medium.com/media/3c851dac986ab6dbb2d1aaa91205a8eb/href">https://medium.com/media/3c851dac986ab6dbb2d1aaa91205a8eb/href</a>