React Native was first released by Facebook (now Meta) as an open-source framework in 2015. It is one of the top two cross-platform mobile platforms alongside Flutter. There are many reasons why React Native has achieved notoriety. To name a few:
React Native is used for creating cross-platform mobile apps for iOS and Android. Typically, React Native is only used when a mobile app has to be created for both operating systems. This is because in certain scenarios React Native brings speed and cost benefits over native app development. The fact that React Native allows developers to use a single codebase to develop a mobile app for both iOS and Android at one time brings concrete benefits over native mobile development.
Before the creation of React Native, Facebook powered their mobile application using HTML5 and browser technologies. Infamously, in 2012 Mark Zuckerberg declared this as the largest mistake they had ever made. The Facebook app was slow, laggy, and lacked many attractive benefits of a native mobile application.
React Native became a public open-source framework in 2015. In September 2015, the React Native framework was released for Android. In 2016 it was announced that it would be expanded to Windows and Samsung’s Tizen.
Let’s explore the strengths and weaknesses of React Native that should be considered when choosing it as a framework.
Some of the advantages that React Native brings include:
React Native is not the appropriate choice for every mobile application. Some of the weaknesses or downsides to React Native include:
Flutter is React Native’s biggest competitor regarding cross-platform development frameworks. Flutter is Google’s open-source technology for creating cross-platform mobile apps. It isn’t a framework or library, it’s a complete software development kit. It uses the Dart programming language.
There are a few major considerations to take into account when comparing React Native and Flutter.
Finally, it is worth calling out that there is some awkwardness to the fact that Flutter is not the official way to build apps for Android. Flutter development was created by Google, and yet Kotlin is the official programming language of Android. There is some unease around this subject as Google has a tendency to cancel support for experimental projects.
While using one codebase to write an app for multiple platforms seems ideal, this approach has several pros and cons to React Native over Native. Let’s compare React Native to the Native programming languages for iOS and Android.
Swift is a general-purpose, compiled programming language developed by Apple and open-sourced in 2014. It was created as a replacement for the earlier Objective-C language. Because Apple makes Swift, the official language of iOS, macOS, watchOS, and tvOS. This means that you can use Swift to build for all Apple devices. Swift is performant and always keeps up to date with the latest operating systems’ features. Swift is remarkable if you only make an application for the Apple operating system. If you decide to develop cross-platform, however, it has certain downsides. In particular:
For a complete overview, see our React Native vs. Swift breakdown.
Kotlin is a programming language released in 2016 by JetBrains. It is compatible with Java and focuses on productivity. Its clean design allows for more efficient code. It is the official programming language of Android. It has a lot of similar characteristics to Swift when it comes to comparison with React Native. Swift is more likely to be up to date with Android features and can be more performant. However, when building cross-platform for iOS and Android:
You can also check our full analysis of React Native vs. Kotlin.
React Native is one popular option for creating mobile apps. But it is by no means the only option. Many major tech companies have developed their methods of mobile development in-house or merged development solutions into their technology stack.
Let’s examine how React Native compares to other popular mobile development technologies.
Xamarin is a software company that started in 2011 and was acquired by Microsoft in 2016. It is a framework integrated into Microsoft’s .NET and provides a toolset for cross-platform development. Programmers write code in Microsoft C# and can release an app for various platforms with up to 90% of the codebase shared between Android, iOS, and Windows. Xamarin is mainly used by Windows developers, as Linux and Mac developers tend to shy away from .NET technologies. Comparing React Native and Xamarin, Xamarin performs similarly to React Native and is a great platform; it is less popular and has a much smaller developer community than React Native.
The open-source SDK named Ionic was created in 2013 by Drifty. It provides tools and services for developing hybrid and progressive web apps. It uses a combination of HTML, CSS, and Sass to code. Then it utilizes Cordova or Capacitor to give Ionic apps access to native features in a mobile OS such as the accelerometer, camera, or GPS. React Native is more popular than Ionic, more performant, and has a larger developer community, making it a favorite in this race.
Here’s a complete overview of React Native vs. Ionic.
There are many misconceptions about React Native. Let’s take a look at some of the popular ones.
React Native is cross-platform. It can be used to write apps for multiple platforms. But the specifics of the operating systems differ.
You will still need to build separate, dedicated apps for each system. The benefit of cross-platform technology is that you are using a single technology instead of two or three native ones.
Some companies, like Airbnb, used React Native for their mobile app but returned to native programming after a few years.
Think of React Native as one option for mobile development. It won’t be the answer in every situation. Developers can place it in their tool bag of tech options.
This is an oversimplification. There are differences between React and React Native. So much depends on the developer and their willingness to learn.
So, the skill of the coder and the amount of work they can put in is a large factor.
You will need both environments available if you want to create apps for Android and iOS. That means installing Android Studio and XCode.
Android Studio can be installed on an Apple macOS, enabling it to be used for iOS and Android. Windows and Linux users can only build apps for Android systems.
Nothing convinces like a success story. Many famous companies have turned to React Native as a cross-platform solution for their apps.
Dozens of popular apps built using React Native can be seen in this app showcase. Let’s examine of few of these mobile applications.
Facebook is one of the most popular React Native apps. The company has open-sourced the development Of React Native but maintains nutritional support. That makes sense because Meta developed the programming framework.
Facebook used it to code its Ads Manager app, using one team to create both the iOS and Android versions.
When Instagram came under Facebook’s control, it decided to integrate React Native into its native mobile app, starting with the Push Notification view.
Initially, this was displayed as a WebView. The user interface was simple enough to cope without a navigation infrastructure, making the work easier to manage.
After Push Notifications were successfully implemented, the team moved on to other app features using the React Native framework.
Product teams saw these development velocity improvements:
One of the most fabulous feathers in your hat is when your competitor acknowledges the value of your product.
In 2017, Skype announced it was designing a brand-new app using React Native. The old version suffered from issues, and Microsoft used React Native over its own Xamarin for its development.
The new app’s redesign carried over into the desktop version of Skype, where Microsoft used React Native.
Walmart is one of the world’s largest companies; other businesses pay attention when it acts. The US-based grocer chose to rewrite its mobile apps entirely in React Native.
Some parts of the old app relied on embedded WebViews that the company acknowledged were below standard.
The company found during the development process that 95% of its code was shared between Android and iOS.
Their take on the process? “From startups to Fortune 500 companies, if you’re considering taking on a new mobile project, consider using React Native — we know you won’t regret it.”
Pinterest engineers watched React Native with interest since the framework’s introduction in 2015.
The company already offered users a web app using Gestalt – Pinterest’s open-source library of React UI components. The expectation was that the development process would be smooth because Gestalt and React Native relied on React.
Their intention wasn’t to replace Gestalt entirely but to see the ability to introduce a new tool into their tech stack.
They began with a critical feature – the Topic Picker – to judge React Native’s development capabilities. The implementation took ten days for iOS and two more for Android.
Software devs estimated that they saved more than a week of implementation time and were satisfied with the performance on both mobile platforms.
Pinterest decided to permanently include React Native in their tech stack as an added tool in mobile development. The company has further used it to power its Business Signup process.
Discord is a communication app that allows friends, game communities, and developers to share voice, video, and text.
The company was an early adopter of React Native when it was open-sourced. They highlighted React Native as a critical tool in achieving a viable app with a core team of only three iOS engineers.
Over the years, Discord has continued to make improvements to its app. Optimizations in code have let them deliver a version that maintains a consistent 60 frames per second view and shaves whole seconds off the load time – an eternity in the mobile world.
For more information on various successes, you can read our listing of popular React Native apps.
The future will bring greater acceptance and diversified applications for the React Native framework. Consider some of the advancements we foresee coming down the pipeline.
Fabric is a Meta project that is designed to make React Native’s tools more interoperable with other platforms other than iOS and Android.
It aims to reduce overhead and increase performance by reducing the thread count from three to one. A thread is a channel through which the system communicates with a user. By simplifying the process, impressive speed gains are promised.
Fabric also promises to deliver asynchronous rendering in React Native while prioritizing certain user interactions, leading to a better experience.
The React Native community is alive and well. With multiple times more active developers using React Native than some competitors, React Native’s future is secure.
Expect its community support to deepen and grow over time. There are plenty of GitHub pull requests for React Native, and with a robust user base, it is easier for others to jump in and try their hands at the mobile app development framework.
The future is fuzzy. Knowing where technology will lead us in the next decade is difficult. Tech innovations pop up each year and could alter the course of where we are heading.
Right now, the market is exploding with watches and other wearables. Big names in tech are supporting VR. And the Internet of Things (IoT) has already made a significant dent in the global market.
Demand for third-party apps that work with these alternative devices will only increase. The future of React Native development is secure.
It’s hard to tell whether or not React Native will ultimately replace Swift or Kotlin. In the short term, however, the answer is no. React Native has quirks, performance issues, and gaps in functionality that make it an imperfect replacement for native app development. For instance, React Native is not very strong when it comes to wearables or 3D applications.