Did you know that Airbnb dropped React Native? The news shocked the whole mobile app development world as a big name decided to set the sun on React Native in their projects. But why did this happen? Is React Native not the right tool for mobile app development anymore? In this blog we will find out the scenarios and types of development projects where React Native might not be the best choice for development.
React Native has been making waves in the in the mobile app development industry and many companies have started to adopt React Native because of its various advantages over other hybrid app development tools like Ionic, Cordova or PhoneGap. But can React Native be used for building all kinds of apps?
What is React Native?
React Native is an open-source framework available to developers for the development of native mobile apps by using JavaScript. The key here is “Native”, before React Native was open sourced by Facebook there were different hybrid app development frameworks available but most of these frameworks allowed for hybrid development, not native development.
React Native uses native UI elements while hybrid apps use Web view. Web view means converting a mobile website into a mobile app that is not native.
So, here are some examples when it is not suitable for Android and iOS app development companies to work with React Native.
Resource Intensive Apps
While JavaScript allows us to build smooth and fast apps with React Native but the framework is still in its infancy stage when it comes to complex and feature heavy projects. Apps like mobile games or navigation apps will need sophisticated visuals, massive amount of user interactions and certainly require a high level of customization.
Not only this, resource intensive apps might require huge amounts of calculations and processes running in the background too. In addition, React Native in the near future might catch up with its native counterparts one day but right now it still lack the ability to handle projects which have a very complex nature.
Platform Specific Apps
While I wouldn’t say React Native is not suitable entirely for platform specific apps. If the app is designed only for one single platform then there isn’t a strong enough reason one should go with React Native, unless there are plans to include support for other platforms in the near future of course.
The reason for this is that the tools is built with cross-platform development capability in mind, so if you are planning to support only one platform then it is a better choice to go with a native development framework.
Utility or Media Player Apps
There are a lot of apps out there like battery monitors, anti-virus software and media players which are much easier to build using native languages because these types of apps will almost always require native features and APIs provided by the platform.
Writing native wrappers for APIs and components that belong to these kinds of apps might take a longer time than using native components.
So if you are building an app that is similar to any of the above mentioned examples, one might not want to consider using React Native for now. Now that we have gone through some examples it is time to look at some aspects where React Native is not doing so well when compared to its native counterparts.
Performance
When I say performance, I am not at all saying React Native will always perform poorly, I am referring to here is the slight difference in performance when compared with native applications using native languages. Still, react native is better than any other hybrid tools out there.
However, the reduction in performance isn’t noticeable enough to have a huge impact on your app. The users might not even realize it if you are using React Native to build the apps other than the examples shared above.
Dependency on Third-Party Modules
This might be an issue that you might want to consider if you don’t have a team of developers maintaining the project. Third Party Modules are often used in React Native to speed up the development process as these packages have already created the bridge to certain native features that one will need to utilize.
Sometimes, certain libraries are not well-maintained because these libraries are usually open sourced by the volunteers of the community. There are also cases where many open issues of these libraries are not resolved and hence one has to maintain a copy of these libraries which might not be the best idea.
React Native is Still a Young Framework
Not that its bad to be a young framework, but the main issue with this is that React Native is an open source software so it relies a lot on the community and Facebook to actively tweak and improve the framework according to the user feedback.
So, whenever Apple or Google releases a new update to their platforms or even introduce a new feature it usually takes time for the same feature to land in one of the updates in React Native.
Conclusion
It doesn’t matter if you’re running a typical digital marketing blog or running an e-commerce store, React Native is a great tool to build mobile apps that rely on the speed of delivery and a beautiful interface.
One can achieve a lot with React Native alone, however, the tool still lacks utility when it comes to apps that require heavy resources and needs direct access to the native features.