The all-in-one guide for CEOs and Product Owners
When Facebook developers first introduced ReactJS to the world at the 2013 JSConf event, they could hardly predict how this announcement would impact web app development.
Two years later, inspired by the library’s impressive growth, the company made another in-house project, React Native, available to the public by releasing it on GitHub. 26th March, the day when React Native joined the open-source domain, set a milestone for the development of mobile applications.
Today, in 2023, with nearly 2,300 contributors and more than 21,5K commits in 74 branches, React Native (RN) is one of the most popular GitHub repositories.
These are just some of the questions we will answer in this all-in-one guide to the React Native framework:
What exactly is React Native?
What types of products and companies can benefit from it?
Why should you consider React Native for your next mobile app?
How to develop your first mobile app with React Native?
Blog posts, YouTube tutorials, development forums, workshops, code repositories…
There are so many resources to go through when you are looking for a piece of comprehensive and reliable information about React Native.
Who has the time to browse them all?
This is your single reliable resource that gathers all RN knowledge in one place. No more searching.
Are you considering React Native for your next project? Would you like to learn RN?
If you’re a startup, product owner, C-level professional or marketer, this guide will help you get the hang of React Native without reaching the bottom of Google.
It also aids developers who want to learn to code in React Native.
Finally, it is simply meant for anyone interested in mobile app development.
This is going to be a long read. After all, we want to tell you EVERYTHING about React Native. You don’t have time now? Download the pdf version of this guide and take it with you anywhere you want
Thinking about building your mobile app with React Native?
Talk to our tech advisor. We will audit your requirements, build a product roadmap and put together an A-class development team.
Table of Contents
React Native definitions can get cryptic. To help you understand if it is the right technology for you, we will start by decoding one of them.
React Native is a JavaScript framework for building mobile applications with native look and feel in iOS and Android.
Now, how about getting to grips with that statement?
The name of the framework is a combo of React + native.
React, an open-source JavaScript library for building interactive user interfaces (UI) on the web, was first created in 2011 by Jordan Walke, and deployed at Facebook a year later, it quickly gained popularity thanks to its adaptability, ease of use, and high performance.
React Native is a JavaScript framework used for building native mobile applications for iOS, Android, and UWP. Facebook introduced RN two years after the official React release to enable the cross-platform functionality in mobile development. React Native uses React (also called ReactJS) to build app components. It also follows the same design principles, allowing for the creation of rich mobile UI.
Both React Native and React are maintained by Facebook.
According to Facebook:
“With React Native, you don't build a "mobile web app", an "HTML5 app", or a "hybrid app". You build a real mobile app that's indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.”
In mobile application development, a native app is a software created for a specific platform or device. Native applications are developed in a programming language dedicated to a particular operating system, for example, Swift/Objective-C for iOS, or Java/Kotlin for Android. They provide a high level of reliability and performance and deliver a superior user experience. However, there are some downsides to their use, too.
Since each OS must be supported by a discrete version of an app, written in a dedicated language, companies need at least twice the time and resources to launch their products on all mobile devices. And developers have to be proficient in multiple programming languages, frameworks, and tools.
While React Native is NOT purely native, it uses the same building blocks as iOS and Android apps, offering an equivalent user experience and almost as good performance. What’s more, with RN, developers only have to write their code once to create software that is practically indistinguishable from the one built specifically for a given system.
React Native allows you to develop *a cross-platform mobile app with a native look and feel, hence the second part of its name, ‘native’. Also, with RN, you can build hybrid apps, which combine native and RN code.
To explore the topic of mobile native applications in greater detail, go to section REACT NATIVE VS. NATIVE APPS.
* Cross-platform mobile development refers to the development of mobile applications that are supported by multiple mobile operating systems. Despite some limitations, this approach has many advantages over native development, where a separate app must be built for every single mobile platform, which requires a broader programming skill set and takes more time.
React Native is a JavaScript framework. In order to build apps with RN, you need to know this language and have a good understanding of React programming.
As RN is based on JavaScript, it does not use HTML or CSS for the UI. However, it implements the JSX syntax, so it’s good to become familiar with it as well.
In software programming, a framework is a piece of code that delivers a standardized frame for the developed applications. It dictates the architecture for a software project by providing such functions, modules, APIs, and libraries.
Developers use frameworks to simplify app development and decrease the number of manual tasks as they program.
The React Native is a framework for the creation of mobile applications utilizing JavaScript language and React libraries.
React Native is an extremely popular and influential framework, it has multiple uses: B2B applications, apps that contain forms and dynamic images, software used internally by companies, education platforms, etc.
The number of household businesses using RN for the development of their apps is remarkable. The framework is used, among others, by Facebook, Instagram, Google, Microsoft, Uber, LinkedIn, and Walmart.
See also section WHEN TO USE REACT NATIVE?
To learn more about React Native’s benefits (and drawbacks), go to section PROS AND CONS OF REACT NATIVE.
As we explained in the previous section, React Native is a JavaScript framework based on React libraries that enables development of cross-platform mobile applications which look and feel native.
If RN feels ‘almost’ native, how exactly is it different from platform-specific tools?
Let’s dive into that subject by defining native apps first.
As of 2018, Android controls over 85% of the world's mobile devices, with more than 2 billion active users of the system. Apple, on the other hand, claims to have passed the milestone of 1.3 billion active base of devices early this year.
“Over one-fifth of millennials (21%) say they open any app more than 50 times a day”
These numbers denote a massive market and enormous revenue potential for companies who reach out to their customers on mobile.
A native app a platform-specific code in the language dedicated to a given mobile OS. Typically, these are Java and Kotlin for Android or Swift and Objective-C for iOS. To develop a native app, programmers work on an Integrated Development Environment (IDE) specific for a given operating system.
The most common way of delivering mobile applications is through native platforms.
Native apps offer ultra-fast performance, easy access to all device APIs and functionalities, and optimal responsiveness. Because they are tailored for a given platform and don’t rely on multiple browsers, languages, and development tools, they also provide a high level of security and reliability.
If there are so many evident benefits of native apps, that raises a question:
Why do mobile developers use React Native for mobile development instead of going fully native?
See Also:
1. Mobile App Development: React Native vs Native (iOS, Android)
2. How To Pick The Right Custom Software Development Company? [Step-By-Step Guide]
In the previous section, we spelled out the main differences between React Native and native apps.
As companies increasingly recognize the undeniable advantages of programming apps only once for various mobile systems, the number of tools for cross-platform development is also constantly growing. To help you understand how they differ, we will examine React Native in the opposition to several other frameworks for building multi-platform applications.
The Best = Optimal for You
A word of caution before we dive in. In the same way, as there’s no answer to: “Which one is better? React Native or native apps?”, we cannot rule out one cross-platform solution in favor of another. To each his own. Every company operates within a unique business context and has various resources at disposal.
It’s not our goal to advocate React Native, but rather to show you all viable options and help you decide which one makes the best fit for your product.
Let's roll!
There are dozens of potential alternatives to React Native. Some of them, like NativeScript or Sencha, are quite common. Others are more niche. We will focus on the former, more mature, with a range of use, and strong community support.
To create a reliable comparison, we defined a set of criteria for the evaluation:
Another free and open-source tool on the list, NativeScript, is mainly using JavaScript for the application logic, with an option to develop any language that compiles to JS, e.g., Typescript The framework also fully integrates with Angular and exploits HTML-like syntax for the UI development.
Additionally, NativeScript makes it possible to re-purpose third-party libraries from CocoaPods, Android Arsenal, Maven, and npm.js, without any wrappers. It uses runtime to call APIs in the Android and iOS frameworks with JavaScript code.
Flutter is the youngest contender here. It is an open-source software development kit created by Google which came out of beta version in December 2018.
Today, it’s not an out of beta technology anymore, it’s more mature now and getting more traction.
The software is used to build native apps in Android and iOS and is a primary tool to be used in designing software for Google Fuchsia, the operating system designed operating on Zircon microkernel instead of Linux monolithic core. Building apps with Flutter will basically feed Google’s new operating system with apps.
Flutter includes a modern react-style framework, a 2D rendering engine, ready-to-use widgets, and development tools. These components work together to help you design, build, test, and debug apps. As a result, Flutter allows delivering high-performance apps that feel natural on different platforms.
For more information about Flutter check our blog posts:
Is Flutter the Next Big Thing in Cross-Platform Mobile Development?
React Native vs. Flutter – which Cross-Platform Solution To Choose?
Apache Cordova started back in 2009 as PhoneGap at an iPhoneDevCamp event in San Francisco. Originally created by a software house Nitobi, the solution changed into Cordova two years later, following the company’s acquisition by Adobe Systems. The new owner also released the code as open source.
Since then, Cordova has become a popular tool for building applications for mobile. It uses CSS3, HTML5 and JavaScript to leverage native functions. Apart from the core functionalities, the framework provides for swift integration with other mobile UI frameworks and external APIs, such as Sencha Touch, Dojo Mobile or jQuery Mobile.
Ionic was created in 2013 on top of AngularJS and Apache Cordova mentioned above. It is an open-source SDK for hybrid mobile app development.
For more information about Ionic check our blog post:
React Native vs. Ionic – Which Hybrid App Development Framework Should You Pick?
Just like Cordova, this is an oldie on our list, with the first beta release going back to 2010.
Sencha (or Sencha Touch) uses web development and mobile app development with an HTML5 framework using JavaScript or Java. The platform includes a number of popular frameworks such as ExtJS or GXT, and it is based on web standards, mainly HTML5 and CSS3. Sencha is a powerful tool, which provides not only for the creation of mobile apps but web applications alike.
Last but not least, Xamarin. As opposed to other technologies listed here, Xamarin does not build on JavaScript but uses the C# language and the .NET framework. To create apps supported by Android, iOS, and Windows, the developers use a single shared .NET codebase and Xamarin dev tools, such as Visual Studio.
Once again, there is no ‘number one mobile cross-development tool’, which outdoes the rest by far. The proliferation of these technologies speaks for itself. Each of them, including React Native, has its unique advantages that come with a number of deficiencies.
Have a look at our comparison, and think about your requirements and resources. Compare all factors, evaluate them against your business goals and dev capabilities, and take an educated decision.
Tool name | Available tech stack |
Cordova | iOS, Android, OS X (very limited support), Windows Phone |
Ionic | iOS, Android |
Flutter | iOS, Android, Google Fuchsia |
NativeScript | iOS, Android |
React Native | iOS, Android, Windows Phone |
Sencha | Android, iOS, Windows Phone, Microsoft Surface Pro and RT, and BlackBerry devices |
Xamarin | iOS, Android, Windows, MacOS |
Tool name | Cost |
Cordova | Free & open source, however, some of the tools that leverage Cordova (e.g., Onsen.io mobile app framework or Visual Studio) are paid. |
Ionic |
The pricing depends on the available features. The minimum package is free (it includes personal account, access to the community forum, and a dedicated dev tool). Cloud native builds and a greater number of live update deploys can be purchased for $29 per month. The next pricing plan starts at $120 per month. There’s also a custom package available. All packages and prices are listed on this website. |
Flutter | Free & open source. |
NativeScript |
Free and open source for 100 cloud builds/user/month. Above that tier, it offers two ready-made plans for small and large companies, $19 p/month and $249 p/month, respectively, plus custom pricing. For NativeScript pricing models visit this page. |
React Native | Free and open source. |
Sencha |
Sencha’s pricing model can get confusing. The prices of particular packages vary, and depend, among others, on the number of developer and additional features. The Pro package (up to 5 developers) for ExtJS costs $6,280, with the Enterprise package price at $9,190. The GXT licenses are roughly the same. Individual developer licenses (1 year) start at $799 for the standard package. See the full pricing here: https://www.sencha.com/pricing/. |
Xamarin |
Xamarin pricing models are almost equally complex. Xamarin Studio Community (up to five developers) is free of charge, but reported to be buggy and unstable. Visual Studio Professional, which makes the best fit for small to medium companies, starts at $799 per year/per user in the cloud deployment. The standard version costs ca. 50% more. For the lowest Visual Studio Enterprise package, suitable for large-scale projects, you will have to pay $2,569 per year/per user. Check out the detailed pricing here. |
Tool name | Documentation |
Cordova | Apache provides quite an extensive documentation for Cordova. It includes instructions on how to develop code for each supported platform, guidelines for creating your first project, directions on building plugins, as well as a library of resources and APIs. The blog provides recent updates about platform releases, fixes and new components. |
Ionic | Ionic’s documentation is neatly divided into several useful sections including getting started guidelines, UI and components, APIs, or FAQ. Additionally, developers using the tool may share their thoughts and experiences on the forum, or discover the latest insights by visiting the framework’s blog. |
Flutter | Flutter has great documentation, possibly the best in this comparison - there are plenty of tutorials and samples for users to dig into. It also makes preparing the documentation for the software as easy as possible - it has a well developed Integrated Development Environment for designing, testing and modifying the software. Compatible with Visual Studio Code, Android Studio and IntelliJ. |
NativeScript |
In its documentation, NativeScript provides detailed directions as to how to start with the core development, combine NS with Angular, and build cross-platform components with Vue.JS. Plenty of support is available, especially for those developers who have just started with the tool. They can use the Playground feature to build code and view the results live, display a catalog of sample projects, and browse all available plugins, APIs, and components. |
React Native |
The React Native documentation is maintained and regularly updated by Facebook. There’s no shortage of reference guides and discussion forums to learn from. Additionally, Facebook shares a tutorial to help newbies easily kick off their first RN project. All new features and updates are published on the framework’s blog. Developers can also easily access the rich library of components and APIs. |
Sencha |
For each of its frameworks, Sencha Touch offers separate documentation and ‘Get Started’ guides. These resources are comprehensive and feature, among others, the list of latest updates and changes, basic tutorials, the architecture description, examples, and core concepts. Sencha is also running a blog featuring company news, product insights, and additional resources, and provides the users with a discussion forum. |
Xamarin |
Xamarin provides detailed, step-by-step documentation conveniently arranged in component/feature-specific topics, such as App Fundamentals, UI, XAML, and many others. All subjects are covered in-depth and explained in a very user-friendly manner. From the documentation page, developers can also access, e.g., feature samples and example apps, and join the Xamarin University, which is a library of online courses led by Xamarin experts. To use that last resource to the fullest extent, a paid subscription plan is required. |
All of the featured mobile cross-platform development tools can boast a large community of users who continuously add to their development.
While the sole number of users and contributors to a particular platform should not dictate the choice of technology for your project, it is an important factor for evaluation.
Tool name | Developer Community | Github Stars | Number of Repos | Other (additional) |
Cordova | Used by ca. 11% of mobile developers | 2,500 | 72 with 4K commits | One of the most ‘dreaded’ mobile development tools by developers. |
Ionic | 5 million developers | 42,600 | 267 with 10.5K commits | 100+ Meetup Groups |
Flutter | Fast-growing popularity, especially on eastern markets (China, India) | 109,000 | 21.8k | - |
NativeScript | Estimated at 7 million in December 2020 | 19,500 | 197 with 6K commits | - |
React Native | Loved by 57.9%% developers and one of the most commonly used technologies | 92,500 | 21,5K commits | - |
Sencha | More than 2 million | N/A | 66K commits | - |
Xamarin | 1.4 million | N/A |
147 commits |
- |
And how about popularity among business? Let’s go through each of the tools and see which companies use them.
Tool name | Popularity |
Cordova |
Cordova can’t really claim any household names among its users. The platform is mostly used by local startups, SMEs, and open source organizations, which may suggest that it is more appropriate for building simple, low-cost apps. The most popular names among the companies using Cordova include BetRocket, FoodIT, Gweepi, Toucan Toco, or DocEngage. |
Ionic |
The Ionic portfolio features some well-recognized companies: Untappd (Tinder of the beer world), Nationwide, Sworkit, McDonald’s, or Diesel. For a broader list of apps built with Ionic, go to this site. |
Flutter | Flutter is still a new technology, that is fighting for its presence among users. Due to Google’s backup and general versatility and convenience of the technology, the client base is rising, yet there are great brands to come. The fast-growing popularity of Flutter in China and India is worth noticing. |
NativeScript | NativeScript has built quite a portfolio of Success Stories. Some high-profile companies who have employed the framework to create their apps include Bosch, Samsung, InfoSys, Target, Zurich, or Volvo, but the list just goes on and on... |
React Native | There are tons of companies who use RN. Let’s mention the MVPs, such as Facebook (of course), Instagram, Walmart, SoundCloud, UberEats, Bloomberg, Pinterest, or Skype. This stellar lineup proves that RN performs particularly well in the world of social media and e-commerce. |
Sencha |
Sencha boasts over 10,000 enterprise customers “including 60% of the Fortune 100.” This corroborates the platform’s reliability and a wide range of applications but bearing in mind its costs, quality comes with a hefty price tag. Companies using Sencha frameworks include: AT&T, Apple, Associated Press, Canon, Cisco, Deloitte, EMC, Fujitsu, Honda,... and the list continues up to Z. |
Xamarin | Xamarin is another tool with an impressive collection of customers. Aviva, Coca-Cola, Cognizant, Fox Sports, Freelancer, JetBlue, Mars, Microsoft, Pearson, to name just a few. A comprehensive list of companies who use Xamarin can be found here. |
Pros of Cordova
Cons of Cordova
Pros of Ionic
Cons of Ionic
Pros of Flutter
Cons of Flutter
Pros of NativeScript
Cons of NativeScript
For a more in-depth analysis of RN’s advantages and drawbacks, go to PROS AND CONS OF REACT NATIVE.
Pros of React Native
Cons of React Native
Pros of Sencha
Cons of Sencha
Pros of Xamarin
Cons of Xamarin
“Almost 70% of developers know JavaScript.”
As for React, it is in the top three of the most commonly used libraries.
The popularity of JavaScript and React accounts for the fact that React Native ranks among developers’ favorite frameworks. But it doesn’t only benefit programmers.
Because of the simplified development and reduced code delivery times, React Native provides numerous advantages to business owners and project managers.
In this section, we will look closely at what makes RN so widespread, and investigate some of its downsides, too.
9. Code Readability
React Native applies the declarative programming paradigm, which focuses on specifying the intended results instead of providing guidelines as to how to achieve them. This stands in an opposition to imperative programming, which provides commands to a computer to perform.
One advantage of this approach is a more understandable and easily-scalable code. React Native is highly readable, which makes it easier to learn, especially in the case of less experienced programmers.
10. Expanding Community
Last but not least, thanks to the fact that React Native provides a positive coding experience, it enjoys massive support from the developers’ community. The number of programmers who turn to RN is continuously on the rise, and since its launch a few years ago, the framework has become one of the most frequently used tools for mobile app development.
RN is open-sourced, which means anyone can contribute with code enhancements, documentation, and new components. What’s more, the project receives constant support from Facebook so that it’s continuously improving.
There are no ideal tools and frameworks, and React Native is no exception. Let’s analyze some of its drawbacks:
Why Developers Love React Native?
Why Companies Love React Native?
What to Improve?
See Also:
1. React Native Development Advantages
2. What are the downsides of using React Native for building iOS apps? Are there any performance costs?
3. React Native Debugging Tools
4. A Guide to Using a Third-Party API with React Native
5. How an Android developer dived into React Native and survived
Software developers can choose from dozens of programming languages and paradigms, and a myriad of development frameworks and tools. They all exist for a good reason.
In software projects, there’s no ‘one-size-fits-all’ solution. React Native is no different. Despite rapid development, platform agnosticism, and other unique benefits it delivers, there will be applications where it’s not the most preferable framework.
In mid-2018, the news broke that shook the entire mobile software development world. Airbnb, an online hospitality giant, decided to sunset React Native in their projects. The decision behind the company’s move involved a variety of factors, but in the end, Airbnb resolved that React Native was not suitable for their unique needs. Despite this staggering announcement, the vast majority of Airbnb developers were satisfied with the framework and would consider it for a new project.
The Airbnb case proves that even the most efficient programming tools can sometimes fail to deliver on a particular business promise.
"That’s why when making a decision about technology stack, it’s crucial to examine a number of perspectives to ensure there’s no mismatch between the company’s goals and resources and technological challenges and opportunities."
Let’s have a look at some use cases where React Native is a strong candidate for the implementation. This list is, by no means, exhaustive, and it only presents some examples of applications that make the best fit for RN.
How about examples of apps where React Native might not be the best choice?
See Also:
1. Why I should not use React Native?
2. To go or not to go React Native
3. Building An E-commerce Search App with React Native
4. Building a Mobile App in 10 Days with React Native
5. The Crucial Role of E-commerce Mobile Apps for Sales Enhancement
Mobile application performance can make or break every product, whatever the app’s purpose. It’s enough to mention that about a half of all mobile app users exit an app when a single image doesn’t load fast enough!
When your users get affected by poor performance, they will not only abandon the product but switch to a competitor. Therefore, app stability and seamless performance are essential for a positive user experience and have a direct impact on revenue.
“86% of marketers believe that improvements in mobile app and site performance drive an increase in customer satisfaction.”
In this section, we will investigate React Native performance and see how to improve end-user experience by optimizing the code.
There are various metrics that you can use to track and improve your app performance. Some of the most crucial include:
As discussed earlier, cross-platform performance will always be second to that of native apps. However, as most mobile devices today have multi-core CPUs with plenty of RAM, that discrepancy becomes negligible to the user, especially with React Native, since it directly talks to native APIs.
Yet the framework still comes with a lot of deficiencies in the performance area:
See Also:
1. Official React Native documentation:
2. Thousand Ways to Navigate in React Native
3. Tips for improving the performance of React Native apps
4. Stats That Prove The Importance Of App Performance Testing
5. 6 Simple ways to speed up your react native app
6. Our React-native experience at Drops (so far)
7. React Native Performance: Major issues and insights on improving your app’s performance
You have an idea, a vision of your new mobile app, or a tangible business requirement. Now, how do you move on with the actual development towards the end product?
Probably, there are various ways of delivering a React Native project. We believe that it should be implemented with Agile Methodology.
Your time is precious, and you would like to see the result of our work as soon as possible. Time-to-market is critical here! At the same time, however, you expect high-quality results and maintaining some level of control over your product. With Agile, you’ll get the entire package!
In Agile, a project is divided into small, manageable chunks, with defined milestones, so that you can easily track its progress, provide regular feedback, and contribute to the final outcome.
To streamline the exchange of information and provide you with a high level of engagement, you are welcome to participate in internal meetings and communication. As agile promotes full project transparency, even if you don’t have time to get involved at some stage, you can review the results any time. What’s more, with the continuous development, new updates and improvements are steadily applied in your app, so that you understand what you’re paying for!
We think it makes perfect sense, do you?
Depending on the scope of work, and your requirements, a typical React Native project can last from a few days to several months. Whatever the case, there are always certain stages of the process that remain consistent. We will explore them in this section.
This section provides you with a high-level sequence of steps for a mobile app development project. But quality app development process is more sophisticated.
Download our whitepaper to view the details of each stage, learn more about Agile, and see what tools are used for time tracking, budget monitoring, and product documentation.
Assuming you don’t have the relevant resources to create your app in-house, you will either have to hire a dev team or outsource the work. Here’s how best to approach this step:
Once you’ve selected the development provider, it’s time to get to know each other. The company should propose a free-of-charge meeting or a discovery call to make sure you understand each other and make the right fit.
During the meeting/call, expect to hear some of the following questions (and more!):
Be involved in the discussion and specify as many details as possible. The more input you provide, the faster the implementation.
What outcome can you expect from such a call?
The company should prepare a general action plan with an outline of the next steps. From a business perspective, this is also the moment when you should already have a Non-Disclosure Agreement in place.
Ready for the next step?
You have shared project details with the outsourcing partner during your first interaction. It’s time to talk numbers now.
In the next stage, you meet in person or remotely to discuss the project evaluation. To estimate your project accordingly, you should go through 1-3 meetings/calls where you work on the following aspects of your product:
These and other questions should result in a clear-cut product specification and estimation of the project delivery time and costs.
When both sides are happy with the results, it’s time to sign the contract and kick off the delivery!
The development phase in an agile project typically involves a lot of interaction between you and the supplier. There are three main types of meetings throughout the Project Development phase:
Your product is ready to ship! But it’s not the end of the development story. Users will come back with some feedback and they may request new functionalities and features to be included. You may also need that there’s time to optimize the solution at some point.
A well-designed app will make it easy to implement updates. Thanks to React Native’s unique features, you can ask the development team to work on optimizations any time in the way that does not affect the end user experience.
See Also:
1. ‘Ideamotive’s Development Process Explained‘
2. ‘Building a Mobile App in 10 Days with React Native’
3. ‘How To Find Top React Native Development Company? The Ultimate Checklist’
Let’s face it. Mobile apps are made by businesses whose main goal is to generate profit.
Time and costs savings are among the main drivers behind the React Native adoption, so in this section, we will look at some of the statistics that exemplify the framework’s efficiency.
See Also:
1. 75+ Mobile Marketing Statistics
2. Mobile Marketing and the New B2B Buyer
3. App Download and Usage Statistics
4. The Future of Mobile Growth is Cross-Platform
5. How Much Does it Cost a Small Business to Build an App?
As a mobile app developer, you must have heard about React Native. Now, after studying its advantages, you may have decided that this is the right technology stack for you.
Fast, easily integrated, and highly-readable. On top of that, it is widely-applicable and used by thousands of developers around the globe.
Motivation is an extremely important element of learning any skill. Now the question is: “How do I start with React Native?” Let’s do this together!
React Native uses native components as building blocks. If you already know the React library, you’re almost good to go. You’ll just need to get familiar with several React Native-specific elements.
If you have never used React either, that’s OK. In the first place, you’ll have to grasp some basic React concepts, such as JSX, components or state.
If you already know React, skip this part. Otherwise, look at some of the essential information that will help you sink your teeth into React first.
React is an open source JavaScript library for building web interfaces, originally developed by Facebook. It’s based on components and follows the principles of declarative programming. One of the crucial features of React is that you only write code once, and deliver it across multiple platforms.
React Native applies React architecture to deliver multi-platform interfaces for mobile devices.
React doesn’t rely on HTML, but uses JSX instead, which is an XML-like syntax extension to JavaScript. Here’s an example:
const element = <h1>Hello, world!</h1>
import React, { Component } from 'react';
import { Text, View } from 'react-native';
class WhyReactNativeIsSoGreat extends Component {
render() {
return (
<View>
<Text>
If you like React on the web, you'll like React Native.
</Text>
<Text>
You just use native components like 'View' and 'Text',
instead of web components like 'div' and 'span'.
</Text>
</View>
);
}
}
JSX produces GUI outcomes in React, as it describes how every component (see the next item) should be like, what size it has, where it’s placed, etc.
JSX is object-oriented and statically-typed language. Although it is optional for creating React code, it provides speed and optimization.
To start with JSX, visit this page.
The basic React building block, a component is a single element of the Graphical User Interface. Every element you can see in the GUI (button, text block, image, etc.) is a component. The component logic is written in JavaScript, without using any templates.
Read more about React components here.
Components are governed by two properties: state
and props
. While props remain constant throughout a component lifecycle, state
controls stateful components that can be updated and removed.
Here's a basic example:
class App extends Component {
state = {
characters: [
{
'name': 'John',
// the rest of the data
}
]
}
}
Learn how to use state from the official React documentation.
Props
are parameters (‘properties’) used to customize your components. The primary application of props is to pass custom data to a component (using a naming convention quite similar to HTML tag attributes) and trigger state changes. Props are read-only.
Here's a basic example:
const Dumb = (props) => {
return (
<div>
{props.oursProps}
</div>
)
}
More extensive information about props
is available here.
Assuming that you understand the basic principles of React, we can discuss a step-by-step approach to mastering React Native.
There are countless methods and pace of learning depends on a ton of factors: your current knowledge of frameworks, languages, and tools, your individual learning style, the time you can spend on learning, etc. Treat our tips as suggestions and see what works best for you. Good luck!
Different developers, different views, but here’s what we think is conditional to starting with React Native:
Different developers, different views, but here’s what we think is conditional to starting with React Native:
In this section, we have listed some more resources that will help you further improve your React Native skills.
React Native enjoys a large community of supporters around the world. As a result, there’s an abundance of blogs and websites that provide you with indispensable knowledge about the framework.
Let’s list several popular examples. You will find more in this post. You can also check out the most popular React Native podcasts and Youtube channels.
See Also:
1. Everything You Should Know About React: The Basics You Need to Start Building
2. Getting Started with React – An Overview and Walkthrough
3. Thinking in React
4. React Native Styling Cheat Sheet
5. React Native Tutorial: Building Android Apps with JavaScript
6. Quick Start to React Native
7. What you need to know to start building mobile apps in React Native
As already mentioned, the choice of a relevant technology for your business is a challenging one. There are a number of essential criteria that you must consider to determine if a given stack is right for you. One of the factors to include in the evaluation is a technology’s popularity and range of applications.
Below, we’re presenting some examples of world-famous companies who are already leveraging React Native in their projects. Go through them and you will see how the framework has helped them attain different business goals.
Remember that’s not to say that whatever worked for them, will work for you. Each company has its unique goals and challenges, with a specific skill set, resources, and capabilities. But having such household businesses in its portfolio makes a strong case for React Native.
Go back to section WHEN TO USE REACT NATIVE? to find out what projects make the best match for RN.
It all started at Facebook when one of the company’s dev teams created React Native to expedite the development of the social media mobile app.
The intention was to enable fast delivery of new features and downsize the resources needed to ship them. In the beginning, Fb developers created the iOS version of the app; shortly after, they followed with Android support.
Since then, the king of social media has constantly invested in the optimization of the framework by releasing new updates. Apart from tapping into the business benefits, Facebook has recorded tangible efficiency and scheduling improvements, such as faster application startup.
With over 500M $ revenue last year, Walmart tops the Fortune 500 list of the biggest corporations in the world. One of the reasons behind the company’s massive success is that it always prioritizes customer experience.
Walmart’s application is a perfect example of how the retailer makes life easier for its customers. The app allows users to browse products, check prices in-store, order shopping, or pay for their purchase via Walmart’s Pay system.
Because of the multitude of features and their complexity, Walmart would normally have to maintain two enormous dev teams to keep the app going on all devices. Instead, they decided to take advantage of cross-platform development with React Native.
This seems like a smart move. The staggering 95% of the Walmart’s codebase is shared between iOS and Android apps. The dev team is developing for both platforms in parallel, which reduces the costs of labor by half! As they say, ‘follow in the footsteps of giants.’
“Initial development, as well as the development of incremental features, is very quick and therefore you can satisfy your customers’ needs faster than your competition. As icing on the cake, applications written in React Native generally speaking have comparable or even potentially superior performance to those written as native applications.”
Discovery Chanel needs no introduction. The company’s mission is to allow people to explore the world in the comfort of their homes, and take them to places beyond their reach. Well-established as a documentary television channel, the company has decided to take the user experience to the next level with a VR set
The set allows users to travel to the most distant parts of our planet. Thanks to the accompanying application, the viewers can immerse in a wide variety of landscapes and explore various activities, such as hiking, skiing or base jumping.
To assure the flawless VR experience, Discovery has developed the entire User Interface in React Native. What’s more, thanks to the framework, the set can seamlessly integrate with external APIs, including Oculus Rift, HTC Vive, or Google Cardboard. And the results are stunning!
Wix (GitHub: https://github.com/wix/react-native-navigation) is a free website builder that allows everyone to create powerful websites with drag & drop, without any knowledge of HTML.
To deliver the web building and hosting capabilities on mobile to its 80 million users, Wix resolved to use React Native. This turned out to be the right move. Thanks to React Native, the Wix dev team managed to go from zero to stores in six months with the speed of development 300% faster than usual.
In the words of Tal Kol, Head of Mobile Engineering in Wix:
“React Native has a lot of appeal as the stack of choice for modern mobile apps. The major advantage this framework offers is a dramatic increase in productivity. Simply put, you develop apps much faster — partly due to the fact you can finally share code between platforms.”
Bloomber is best-known as a media enterprise covering the economy and financial markets, but the company also provides software solutions for these industries.
In their mission to support businesses worldwide with access to market data, stock & currency ratings, and finance news, Bloomberg created a mobile app. Because of the high-profile audience and the turbulent nature of the financial sector, the application had to deliver sophisticated personalization and speed. To address these requirements, Bloomberg chose React Native for the implementation.
The company had to transition the entire team to React Native to rebuild consumer mobile application for iOS and Android. The timing was also of concern.
However, the efforts paid off. Thanks to React Native, the application provides the users with a personalized, interactive experience, while offering advanced features such as live TV access and continual updates. More importantly, Bloomberg team managed to create the entire app from scratch in 5 months. Without the framework, this endeavor would have taken at least twice as long.
“React Native is the best out there. Expect it to appear in other Bloomberg mobile apps in the future.”
Tesla, Adidas GLITCH, Instagram, Skype, Baidu mobile, Whym translation app... there are many more companies that have recognized React Native’s advantages and deployed it in their projects to save time, streamline development and produce better results. You can check out more examples of successful RN applications in this blog post.
Although RN doesn’t make sense in every single context, multiple examples of its use by the world’s most innovative businesses make a strong case for the framework.
See Also:
1. React Native at Airbnb
2. Companies That Use React Native
3. How React Native Enabled Us to Develop a Mobile App in a Third of the Time
4. React Native for Android: How we built the first cross-platform React Native app
5. How Bloomberg Used React Native to Develop its new Consumer App
6. Tal Kol: Building a React Native App for 80 Million Users — ReactNext 2016
React Native has been around since 2013. How’s it doing now? Who uses it? Who is contributing? Let’s take a deep dive into some exciting numbers!
App | no. of monthly users |
Messenger | > 1,300,000,000 |
> 1,000,000,000 | |
> 322,000,000 | |
Skype | > 300,000,000 |
Soundcloud | > 175,000,000 |
Wix | > 110,000,000 |
“82% of JavaScript developers heard of React Native and would like to learn more about it.”
“44.3% of those who have used it before would do it again.”
100K Twitter followers
100K Facebook likes
40K Instagram #reactnative posts
268,000,000 Google results
440 React Native Meetups
222 Cities
56 Countries
Over 30 ReactJS/React Native conferences worldwide every month!
“With React Native, you can do all the work with one person. Because all the knowledge that you need is pretty much JavaScript.”
- Tal Kol, Ex Head of Engineering at Wix
“React Native is a great framework that bridges the gap between web and mobile. At Discord it has brought us incredible efficiency. It allows us to write reusable code, learn from each other, and move fast with a two-person team.”
- Fanghao (Robin) Chen, Senior Software Engineer at Discord
“We were able to ship Facebook’s first fully React Native app on two platforms, with native look and feel, built by the same team of JavaScript engineers. Not all of the engineers were familiar with React when they joined the team, yet they built an iOS app with native look and feel in just five months.”
- Philipp von Weitershausen and Daniel Witte, Facebook engineers
“Using React Native, the initial implementation on iOS took about 10 days, including bootstrapping all the integrations into our existing infrastructure. We were then able to port the screen over to Android in two days with 100 percent shared UI code between the platforms, saving more than a week of implementation time.”
- Vivian Qu | Pinterest engineer, Growth
“I love React Native. It’s not perfect, but it’s very damn good. One of the most impressive pieces of software I’ve encountered in 9+ years of mobile and full stack development. I do all my projects in RN now, and I believe it gives me a 2-3x iteration speed advantage over my competitors [...] and the ability to be on all platforms.”
- Arman Dezfuli-Arjomandi, a solo entrepreneur and creator of Slide, Falcross, and Jake and Amir for iOS
For more info about the state of React Native at the beginning of 2021 check this article.
We have already covered multiple aspects of the React Native framework. We’ve talked about the basics, compared RN against native apps and other cross-platform mobile development solutions, and presented some crucial pros and cons of the framework. We know the current state of React Native, but what does the future hold for it?
Considering the development of React Native so far, we believe it’s bound to grow. To substantiate that claim, we’re sharing five reasons why React Native is the way of the future
One of the items on the 2019 roadmap is a large-scale re-architecture of RN.
As for the 2020 updates, now we can enjoy:
This only proves that the company is serious about its commitment to the framework’s growth.
The popularity of cross-platform mobile development continues to grow, and React Native is a top framework in its league. The vibrant ecosystem, huge community & commercial support, and a vast range of applications speak in its favor and prove it’s on the right track to becoming one of the leading technologies on the mobile app development market.
See Also:
1. React Native, the Future of Mobile App Development?
2. The Future of React Native with Brent Vatne and Adam Perry
3. React Native is dead, long live React Native
4. React Native status 2018: Looking bright with a re-architecture on the horizon
Is React Native worth a try? It all depends on your project.
Check React Native pros and cons to gauge its benefits in the context of your app.
See how it ranks against other cross-platform solutions.
Go back to the section about when to use RN (and when not to).
If you’re a developer, review what’s needed to learn RN.
If you’re still unable to decide whether React Native is right for you, have a look at the summary below. It should help you make up your mind
Whether you are looking to accelerate the development of an existing app, or need to build a complete product from start to finish, React Native will probably make a perfect fit for your startup business.
Chances are you can’t afford a huge developer team with specialists well versed in both, Android and iOS apps. You may have two or three software specialists at your disposal, and your chief goal is to develop a high-quality, stable app and ship it ASAP to the market.
If that’s the case, you will take advantage of the following RN’s benefits:
Up to 100% code reuse between iOS and Android. React Native allows developers to share the same code in different environments (iOS, Android, web). Realistically, some platform-specific customization may be required, but various companies report 80-90% code sharing for their apps. This will help you save an enormous amount of time on development.
Cross-platform teams. If you want to ship your app to all devices, you’ll have a hard time finding a multi-platform software expert. The overlap of developers who are excellent on all mobile platforms is insignificant. On the other hand, RN is based on the ‘learn once, write everywhere’ approach. What this ultimately means is that with the framework you don’t need to maintain separate teams to release a product on several OSs. As Discord's case demonstrates, with RN it takes only two people to build powerful apps with RN and deploy them on all devices.
Easy code maintenance. One code, one team, two products. React Native enables a single JavaScript code base for different platforms. That makes it easier to maintain and reuse the code, and again, allows you to deliver impressive results with small teams.
Quick feature delivery. Thanks to the unique RN features such as hot reloading and CodePush, your team can update and improve your software dynamically, without reloading the entire code and stopping the app. This way, you’re saving plenty of development time and provide for immediate fixes and feature upgrades. All of it without impacting the end user.
No fees involved. Last but not least, unlike most of its competitors, RN is a 100% free solution, officially run by Facebook but benefitting from a massive community contribution. You can kick off your project immediately, without having to worry about exorbitant subscription fees and license restrictions.
Mobile apps account for nearly half of the global Internet traffic, and apparently, there are more smartphone owners in the world than toothbrush owners.
With over 200 billion apps downloaded in 2018 (a growth by 11% compared to the last year), mobile applications market is booming, and there’s no stopping it.
In 2017, consumer spending on mobile apps exceeded $86 billion.
With a plethora of tools and platforms for mobile app development, how can you make sure that React Native makes the right fit for your business?
Let us provide you with some compelling evidence:
Ca. 27.2% of all mobile developers used React Native in the past and would do it again. Another 53% have heard of it and would like to learn it.
React Native owes its immense popularity among the developers to a number of factors, including:
If at least one of the following statements apply to you, consider switching to React Native:
As we conclude 2023, React Native continues to shine as a leading framework for cross-platform mobile app development. Born out of Facebook's innovative engineering department, React Native leverages the power of JavaScript and React, combining the best of web and mobile app development.
The foremost reason for choosing React Native in 2023 is its ability to create high-quality applications for both Android and iOS using a single codebase. This cross-platform compatibility not only saves development time but also reduces maintenance costs significantly. It allows businesses to focus their resources on enhancing user experiences and features, rather than troubleshooting platform-specific issues.
React Native also offers a highly dynamic and responsive interface, contributing to a superior user experience. It utilizes native components, ensuring the look, feel, and performance of apps are as good as those built using native languages like Swift, Java, or Kotlin.
The robust community surrounding React Native is another strength, with numerous libraries and tools available to solve almost any problem you may encounter. This makes the platform constantly evolving, keeping pace with the ever-changing technological landscape.
Lastly, React Native facilitates a faster development cycle due to its 'hot-reloading' feature, allowing developers to see changes in real time without a complete recompilation of the application.
In conclusion, React Native stands as an excellent choice for mobile app development in 2023, offering flexibility, efficiency, and a user-friendly experience. Its capacity to deliver native-like performance with the convenience of JavaScript and cross-platform compatibility ensures its continued relevance and utility in the evolving app development scenario.
See Also:
1. Five reasons why web developers love React Native
2. Seven reasons why a Rails 5, Redux, React, and React Native stack is fantastic for new startups
3. React Native as seen by an Android developer
Thank you for reading our guide.
Hopefully, at this point, your understanding of React Native is much deeper and maybe you even start feeling the love towards this framework (as we do!).
We did our best to cover all the important areas connected to React Native. But we know that with the growth of the framework this page will need to grow as well. That’s why you can count on us to constantly update and develop the content so it is always up to date and provides the highest quality of information possible.
In the meantime, you can spread the word about React Native by sharing this guide.
Ideamotive Team