It’s been quite a shaky year for React Native framework. Last year, Udacity and Airbnb decided to move away from the platform, while Discord is sticking with React Native. However, some of them still publicized a wide number of issues they experienced, and their Android app does not use React Native at all. Facebook is now fully committed to supporting the React Native platform and published an open source roadmap, but several developers remain skeptical of React Native’s future.
Besides the fear of failure, it is essential to keep a balanced perspective. Every native framework has its drawbacks, however React Native is still a big improvement upon any hybrid mobile framework that came before it. For some companies, React Native was the perfect framework to build and release mobile applications for both iOS and Android.
1. Truly Feels Native
It might be easier to overlook this, however, React Native is the first ever framework that seems to deliver the promise of hybrid apps that actually feel native to each platform. React Native code is rendered to native UI components which is implemented with Objective-C and Java. This amazing benefit can make it easy to use device-centric design language and follow the iOS or Android interface guidelines while also delivering native-quality application performance. We found some problems common among hybrid mobile frameworks, interactions, and animations are very smooth, and the app is snappy and just plain satisfying to use.
2. Two Apps from a Single Codebase
React Native finally delivers a major benefit that was previously promised never fully realized by past hybrid frameworks. You can write the code once in JavaScript, and seamlessly use it to multiple platforms. Only a few handful of components in the codebase are specific to a single platform and that’s only in areas where we truly wanted a different experience with iOS and Android-specific logic. For other components, the developers find it simple to change details of the user interface for each platform using conditional styling like different icons to match the common design language of both environments or centering the navigation on iOS while left-aligning it on Android.
3. Leverage Existing Developer Knowledge
We did not provide a mobile app for the first five years of the product’s existence. Some mobile development teams don’t have any dedicated mobile engineers on the team, while some do. The development teams have adequate React Native experience after using React for several years to create rich, client-side user experiences for the web application. React Native allowed the developers to seamlessly leverage the existing knowledge to create a mobile app that our entire team could quickly understand and contribute to as needed. The code patterns might look very similar to React on the web if the developers use redux with sagas for data storage and mutation, and jest/enzyme for testing. The only real differences are the parts that are very specific to mobile like navigation and device-specific styling. This can be a splendid boom for the developers because it reduces the barrier to entry. They can build and launch mobile applications without having to hire a mobile-specific engineering team.
4. Build and Ship Faster
Along with React Native, the team used Expo to streamline the development process even further. Expo smooths over a number of pain points in the mobile development process. It allows you to run your app on your device by starting up Expo on your computer and then opening the Expo client app. Let that sink in: we developed an entire production application for iOS without once opening Xcode! Expo also offers a build service which abstracts away the complexity of certificate management and other nuances of building a mobile app for the store. Finally, Expo provides over-the-air app updates out of the box. We are able to implement and push out changes to our JavaScript code without having to submit a full build to the app stores for each change, which is normally an excruciating process. This has been particularly helpful for quickly turning around bug fixes, which we can ship to our users in a matter of minutes rather than days.
5. Secret to Success
The secret sauce to create a cross-platform app can be React Native. The framework can give an incredible amount of leverage to create and maintain mobile applications with knowledge that we already had from working with React on the web. React Native framework delivers on the promises by making the mobile apps run faster, smoother, and indistinguishable from fully native apps. The development team was able to seamlessly build for both iOS and Android from a single codebase, changing the details of the user interface to match the design language and patterns of each platform