No history yet

Introduction to React Native and Expo

Build Mobile Apps with JavaScript

Imagine building an app for both iPhone and Android without having to write two separate sets of code. That's the core promise of React Native. It’s a framework that lets you use your existing JavaScript and React skills to create mobile apps that look and feel truly native.

React Native, developed by Facebook, allows developers to build native mobile applications using JavaScript and React.

Instead of rendering to the web's DOM like in a browser, React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You write your logic in JavaScript, and the framework translates that into the native buttons, text, and views for each platform. This gives your app the speed and polish of a native application.

Lesson image

But getting a mobile development environment set up can be tricky. You often need to install and configure platform-specific tools like Xcode for iOS and Android Studio for Android. This is where Expo comes in.

Expo is a set of tools and services built around React Native that simplifies the development process. It handles most of the complex configuration for you, so you can focus on writing your app.

Think of Expo as a helpful layer on top of React Native. It provides a smoother on-ramp, especially if you're coming from a web development background.

Setting Up Your Machine

To get started, you'll need a few tools. The setup is much simpler than a traditional native development workflow.

ToolPurpose
Node.jsA JavaScript runtime. It lets you run JavaScript code outside of a web browser. It also includes npm, the Node Package Manager, which you'll use to install other tools.
Expo CLIThe command-line tool for creating and managing Expo projects.
Code EditorA program to write your code in. Visual Studio Code is a popular choice.

First, make sure you have a recent version of Node.js installed. You can download it from the official website. Once that's done, open your terminal or command prompt and install the Expo CLI globally with this command:

npm install -g expo-cli

This command uses npm to download and install the expo-cli package on your computer. The -g flag means it's installed globally, so you can use the expo command from any directory.

Creating Your First App

With the tools installed, you can now create a new project. Navigate in your terminal to the folder where you want to keep your projects and run the following command:

npx create-expo-app my-first-app

This command kicks off a process that creates a new directory called my-first-app. Inside, it places a starter template with all the files and dependencies needed for a basic Expo app.

Once it's finished, navigate into your new project's directory:

cd my-first-app

The most important file in this new project is App.js. This is the main entry point for your application. It's where you'll start writing your code.

Running the Project

Now for the exciting part: seeing your app run. While inside your project directory (my-first-app), run this command:

npx expo start

This starts the Metro Bundler, which takes all your JavaScript code and dependencies and bundles them together. Your terminal will display a QR code, and a new tab might open in your web browser with some helpful options.

Lesson image

You have a couple of options for viewing the app:

  1. On a physical device: This is the easiest way. Download the Expo Go app from the Google Play Store or Apple App Store. Once installed, open the app and scan the QR code from your terminal. Your project will load directly on your phone.

  2. On a simulator/emulator: If you have Xcode (for iOS on a Mac) or Android Studio (for Android) installed, you can run the app in a simulated device on your computer. After running npx expo start, just press i in the terminal to open the iOS Simulator or a to open an Android emulator.

You should now see the default starter screen on your device or simulator. Congratulations, you've just set up your environment and run your first React Native app!

Quiz Questions 1/5

What is the primary benefit of using React Native for mobile app development?

Quiz Questions 2/5

What is the role of the Expo Go app?