The latter used to be slow, have fewer features and offer subpar user experience. But now you can build React Native apps that combine the cross-platform flexibility with native performance and look.
Its ‘learn once, write anywhere’ paradigm allows developers to create React Native apps for web, iOS, Android, Windows, and VR using the same basic framework. Facebook, Airbnb, Instagram, Discord, and many others have already used the tech to create awesome apps.
While React Native has many opponents, there are 4 situations in which React Native (RN) is your best bet:
- Working prototypes
- Apps with streamlined UI
- Basic cross-platform apps
- Apps without heavy use of native APIs
Let’s see why.
The majority of apps built with React Native started out as quick prototypes.
If you’re a fast-moving startup, hitting the market with a working product is your top priority.
This is one of the pillars of Agile development: create a solution before your competitors can make their move＞get more people to use it＞iterate quickly based on their feedback. This approach allows you to see if your idea is, in fact, viable while spending the least amount of time and money.
React Native is the perfect technology for such cases.
It allows you to quickly build a prototype that works both on Android and iOS. Moreover, the development can be ~30% faster than with the native tech stack.
Unlike hybrid solutions, your RN app will give test users a truly native experience.
Codecademy prototype made with React Native; source: medium.com
React Native apps can look and perform just as good as their Android or iOS counterparts.
By themselves, both threads are lightning-fast. But they can only communicate via a bridge. Passing large amounts of data over the bridges will slow down your app. If you have a lot of native UI components communicating with the JS code, the performance will suffer. This is especially true with sophisticated animations and complex gestures.
To avoid performance bottlenecks, you’ll have to minimize passes over the bridge.
You might have to spend a lot of time optimizing your React Native app. This slows down the development leaving you without the framework’s main benefit. You can, of course, move the code to native side but that means more involvement from the Android/iOS guys.
And that takes away another benefit.
In calculation-intensive apps (say, messengers with lots of customization and many processes running in the background), native tech has a massive edge over RN.
But if your app has few interactions and views, RN is perfectly viable.
Bloomberg’s Business News app was built with React Native. After getting tired with developing separate apps for iOS and Android, the company created a quick RN prototype.
Bloomberg liked it so much that they’ve decided to produce a full-scale product. The result is a sleek app featuring stories, videos, live TV, and a personalized news feed. It has great performance and smooth interactive animations.
The team loved the ease of learning, hot reloading and quick iterations made possible by React Native.
Source: App Store
If your app has many platform-dependent features such as multithreading and audio/video processing, going native may be a better choice.
But React Native is a perfect solution if you have a limited budget, but your targeted market is split evenly between iOS and Android. You can easily make the interface work on both platforms.
The app layout is based on flexbox which works similarly across Web, Android, and iOS. Coming from native development, this’ll save you a lot of headache.
Townske has created a React Native app for sharing city guides. As the company had only one developer, building separate apps for iOS and Android was out of the question.
React Native allowed Townske to quickly develop a cross-platform mobile app with existing talent. As the company already had a React-based web application, they’ve reused most of its business logic in a mobile app.
Despite running into some difficulties early on, Townske quickly overcame them using community-created fixes. The company is very optimistic about the framework’s future citing the development speed, code reuse, easy debugging, and a strong community as its main benefits.
Source: App Store
React Native apps have to rely on native APIs for things like camera, GPS, etc. To implement them you’ll have to write bridges, which is time-consuming, requires native expertise and can affect the app’s performance. If your app doesn’t use a lot of native APIs (e.g ecommerce app), React Native is a reasonable choice.
You can build React Native apps that are just as good as their native counterparts.
Of course, if you need complex animations, video/audio processing or rely heavily on native APIs, nothing beats native apps. But for the most part, React Native apps have native UI and great performance.
React Native is a perfect choice if you want to quickly turn your idea into a cross-platform app and carve out a niche in both Android and iOS markets. Feel free to contact MindK team and start working on your next React Native app.