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
Top 10 React Native Development Companies in 2025
Facebook, the original creator of React Native in 2013, released it to the public in 2015, bringing a new approach to cross-platform mobile application development. Specifically, this is a JavaScript framework that can be used by professional developers for building Android and iOS applications usin
8 min read
How to Develop Android Apps with Ionic and Capacitor?
Ionic is an open-source UI toolkit for building performant, high-quality mobile apps that work across multiple platforms, such as native iOS, Android, and the web as a Progressive Web App. Ionic uses web technologies â HTML, CSS, and JavaScript â with integrations for popular frameworks like Angular
3 min read
Create Signed APK/AAB files for React Native App
In this article, you will learn how to create an APK or Android App Bundle (AAB) file for a React Native app. Your application should be digitally signed with an upload key in order to make your Android application published on the Google Play store.Generating Private Signing Keys in Terminal/cmdYou
3 min read
Android Applications and Their Categories
Android is an open-source operating system, based on the Linux kernel and used in mobile devices like smartphones, tablets, etc. Further, it was developed for smartwatches and Android TV. Each of them has a specialized interface. Android has been one of the best-selling OS for smartphones. Android O
5 min read
How Ionic Reduces Your Mobile App Development Cost?
The Ionic for Everyone is specifically designed to ensure its optimal functionality with different web developers from around the globe. Development requires the saving of both money and time. The Ionic project framework can prove to be a cost-effective solution to your development problem. The Ioni
6 min read
Best Practices for Mobile App Development in 2025
In todayâs fast-moving digital world, mobile applications have become an integral part of business as they cover a large range of end users. Targeting mobile applications for businesses can help them expand their business and reach a large range of end users. However, building successful mobile appl
8 min read
React Native Switch API
In this article, we will explore how to use the Switch component in React Native. The Switch component is a controlled component, meaning it requires a callback function to update the props based on the user's actions. Let's watch a demo video of what we are going to develop.Demo VideoSyntax<Swit
6 min read
How to style React Native Application ?
In this article, we'll learn how to style React Native applications. There are two major ways to style your React Native Application.Table of ContentStyle PropsUsing StyleSheetStyle Props ExampleUsing StyleSheet ExampleStyle PropsTo style an element with the style props, the value must be a JavaScri
5 min read
How To Deploy React Native Application on Play Store?
One of the most important advantages of using React Native is that it can generate applications for both Android and iOS operating systems. In this article, we will discover how to deploy a React Native app to the Play Store, and how to bundle all the files of the application and generate an AAB fil
5 min read
How to create a basic button in React Native ?
In this article, we will learn how to create a basic button in React Native. To build a React Native app, we will use the Expo CLI, which provides a smoother experience for running your applications.ExpoIt is a framework and a platform for universal React applications. It is a set of tools and servi
5 min read