Insights to React Native for Decision Takers
This is the a short version of React Native: A Mobile Developer’s Perspective
Does React Native truly fulfill the needs of clients? Is the development time using React Native reduced significantly?
React Native has become one of the most sought out development frameworks on the top freelancing sites. So, as part of keeping up with the latest demand of new technologies, we at Modeso wanted to discover for ourselves, if the praise of React Native around the web is really justified?
Ergo, we gathered four developers, two iOS, two Android developer with little knowledge of ES6 and no knowledge at all of React to learn and implement a project using React Native. In order to compare the efforts to produce a similar-looking app, we implemented a project that was previously implemented natively for both the iOS and Android platform by Modeso.
Our app consists mainly of custom UI components and different kinds of charts, natively we used each platform’s UI components and some libraries with slight modifications to implement them. In React Native we implemented the most part ourselves and used libraries as an underlying layer. The React Native implementation took longer, but not considerably, and it had the same look-and-feel and smooth animations as those implemented natively. Only slight difference was in the gradient UI effect of one of the charts.
Is the Praise of React Native Around the Web Really Justified?
We realized, provided that we had previous knowledge of ES6 and React, project progress would have been faster. It would have helped us enhance the code, understand the component lifecycle methods better and apply more best practices that avoid unnecessary renders and long render times of components.
So, from this perspective, we can conclude, React Native is more suited for Web engineers switching to mobile development without learning native languages. Thus, React Native’s principle of learn once run anywhere.
Is the Development Time Using React Native Reduced Significantly?
During the development of our application for iOS and Android natively, there were six developers working with a total of 950 hours spent within seven weeks to complete the complete scope. Implementing the project using React Native took a total of 11 weeks development, 780 hours with 4 developers for around 70% scope completion. The look and feel of our app did look like a native app, and for the most part with some adjustments to the specifications provided in the Zeplin design, we had a similar-looking app. Although there was a noticeable difference in performance.
This myth is definitely busted! You might be able to develop an app for two platforms with smaller efforts if you intend to to make concessions to usability and visual appearance. But if your intention is to make a cutting edge app, then you’re ending up spending plenty of time fixing small issues and optimising the look and feel on each platform.
Does React Native Truly Fulfill the Needs of Clients?
Facebook pushes new updates every month, as a result, many packages/modules break due to this constant change. Compare this to the stable changes released by Apple and Google yearly. So, for a long maintenance and complex project, using React Native is not a reliable option as it is not mature and stable. In addition, due to this instability and unpredictability of the different types of errors, project time estimation will not be accurate.
React Native was a great learning experience for us. Overall we feel that React Native is at junction to a path that will lead to either a stable and promising future or will continue to be unstable and the choice for short-term projects only.
Credits: Modeso’s Mobile Engineers Olla Ashour, Esraa Yasser, Shimaa Ibrahim & Rania Elmansy.