Android & iOS App development using React Native with Expo
Last Updated :
30 Sep, 2022
EXPO! How Expo differs from React Native? Should I start my project with Expo? Many questions arise in newbies mind when he/she wants to get a start in the app development journey.
But, you are lucky as you have landed in the right place. I will try my best to explain everything in a simple manner.
As per official documentation of React Native, it is used to:
“Build native mobile apps using JavaScript and React”.
Let me break it down for you
React Native is a framework that helps us to build apps (both android & iOS) using a single javascript code base. It allows faster development as a developer only need to know javascript for developing both apps (iOS & android).

Learn Once, Write Everywhere
This framework uses React.js library – one of the most discussed word in today’s market. Now, it may arise a question – what’s the difference between React and React Native? The answer is React Native uses native components with JSX – a javascript extension that gives a look like HTML whereas react uses web components.
React Native components like view and text behaves like web components ‘div’ and ‘span’. The styling in React Native gives you feel like CSS. The only difference is, in React Native, field names are written in CamelCase (say font-size) instead of dashed style (say font-size). It gives a feel of writing web apps.
Wait! This may arise another question of learning React.js before React Native. I would say..no! You can start. I have started my React Native journey without React.js knowledge, but yeah, there is a need to have some of the basic React components knowledge like JSX, components, state, and props.
I hope you got some pictures of React Native. Now let’s explore the market who is using React Native. There are many popular apps who are built using React Native like Facebook, Uber, Skype, Instagram… and maybe one day your app can come in this list!
Now, let’s explore what Expo is? How it differs from React Native?
According to Expo official documentation,
“Expo let you build native iOS and Android apps by writing JavaScript”.
If you look into the definition of React native, both definitions look similar. Expo is doing what React-Native does. They both allow us to build native apps (iOS & Android) using javascript but there is a difference. You can think Expo is helping hand that helps us in faster development of React-Native applications.
Expo apps are actually React-Native apps. The only difference is Expo comes with its SDK (Expo SDK) that provides us services like push notification, Facebook and Google login in just a few lines of code. It allows us to start our project in a minute. We don’t need Xcode (for iOS) & an Android studio (for Android) to get started. So, it’s easier to start.
Now, you might wonder why the hell I would start my journey with React Native. I will use the Expo. But there is a quote by Brom
“Everything comes with a price”.
Expo is good to start but it has some disadvantages. Let’s list down the advantages and disadvantages of an Expo.
Advantages:
- Project setup is so easy and can be done in minutes.
- App sharing is easy (using the QR code and link). You can publish your app using ‘expo publish’ command and can share that link. No need to build .apk(for Android) and .ipa(for iOS).
- Expo can build both .apk and .ipa very easily.
- It provides services like Facebook, Google login, push notifications which you can easily integrate into your app without putting so much effort.
Disadvantages:
- The biggest disadvantage which I faced was apk or ipa size. Yes, basic ‘hello world’ app is about 20 to 25 MB big. The reason is integrated libraries.
- You can’t use native modules that is written in Java/Objective-C.
That’s it! This is all about React Native with Expo.
Wait! we know what Expo is. What’s its relation with React Native but how to set up the project with Expo, from where to start? Here are the answers to your questions.
Let’s start with the setup of your first React Native project with Expo.
Assuming that you have installed NodeJS (if not, follow this link). Now, install expo-cli command line utility using npm :
npm install -g expo-cli
This will install expo-cli in your machine. Before moving ahead, I would like to tell you about the two main parts of it :
First part is an expo-cli. It is a tool that helps us in our development process like in setup of our project, in building APK or IPA, etc. The second part is Expo client app which we have to install on our Android or iOS phone to scan the QR code (which you can get using ‘expo start’ command) that will open a project in our Android or iOS phone. Confused!
If you don’t get it. It’s fine, I am going to explain it step by step.
After installing expo-cli, let’s create your project using:
expo init myApp
It will ask about choosing a template. Go with blank by pressing enter. You can also explore the second one with examples as well. Right now, go with blank and then follow below two commands to run your project.
cd myApp
expo start
This will generate QR code.

Generated QR code
Next step is to install the Expo client app. Expo client app can be installed using play store(for Android) and app store (for iOS) in your phone.
Now, it’s time to run your first React Native application using Expo. You can see your first app by scanning the QR code (that was generated in your terminal) using an Expo client app (which you have installed on your Android or iOS phone). In Android, as soon as you scan, it will compile/bundle your project to run on your device.

Bundling of project is taking place. App will run on your device after completion of bundling process.
Wait! You might think in the same way you can run on your iOS device which is somehow right, but scanning of the QR code is done using a camera. (QR Scan feature has been removed in Expo for iOS). Just open your camera and as soon as you scan, a notification will come-> open your app in the Expo. Click on it, it will start compiling/bundling your app to run on your iOS device.

Click on the notification, it will start bundling process.
Hurray! you have successfully run your first app using Expo.
Isn’t it an easy process. You can modify your code of app.js and see automatic reloading of your app once you save your changes.
Thanks for reading!
Similar Reads
How to Convert an Expo App to Apk in React Native for Android
React Native is a cross-platform application that is used to build Android as well as IOS applications. It uses JavaScript as the standalone language for development. It is a JavaScript framework based on React, an open-source library that makes React native easy to learn. In this article, we will s
2 min read
Create a Map with Google Map Api using React-Native
In this project, we'll explore how to integrate Google Maps into a React Native application. We'll create a dynamic map that allows users to view their current location and interact with markers on the map. This project aims to provide a practical guide for developers looking to incorporate maps int
3 min read
Create a Weather App with Forecast using React-Native
React-Native is an open-source framework used to develop cross-platform applications i.e., you can write code in React-Native and publish it as an Android or IOS app. In this article, we will build a weather app using React-Native. The app contains two features: Getting the current weather of a give
5 min read
How to develop a Progressive Web App using ReactJS ?
Progressive React Applications respond very fast to user actions. They load fast and are engaging just like a mobile app. They can access Mobile device features, leverage the Operating System, and have a very high reach. It enables Installability, Background Syncing, Caching and Offline Support, and
10 min read
Create Job Board App using React-Native
In this article, we are going to Create a Job Board App using React Native. The Job Board App is a simple application that is a collection of job openings in any field. It helps the students and the people who are searching for jobs in the market. It helps to find jobs and provides in-depth informat
6 min read
10 Mistakes to Avoid When Developing React Native Apps
A leading public Q&A platform has released a 2022 Developer Survey report of late. This report states that React Native is one of the most famous software development kits and multi-platform app development tools with more than 13% of software developers already using it. Thatâs not all! There i
6 min read
Create an OTP Generator and Validator App using React-Native
One-time passwords (OTPs) have become a popular choice for enhancing the security of various online services and applications. In this article, we'll explore how to create an OTP Generator and Validator App using React Native, a popular framework for building cross-platform mobile applications. Prev
4 min read
How React Native Make Mobile App Development Simpler
Developed by Facebook, React Native is a framework for building native apps for iOS and Android using JavaScript. So if you know JavaScript, you can use your JavaScript skills to build real native apps for iOS and Android. These apps are truly native, so they are not web apps that look like a mobile
6 min read
Create an E-commerce App using React-Native
An E-commerce app using react native is an application designed to facilitate online buying and selling of goods and services. These apps aim to provide a digital platform for businesses to showcase their products or services and for consumers to browse, compare, and purchase items without the need
5 min read
Create a Blog App using React-Native
This article shows how to create a basic blog app using react native. This app contains functionalities such as adding a blog and a delete button to remove the blogs using react native. The user can enter content with a title and then click on 'Add New Post' to create a new blog post Preview of fina
4 min read