Getting started with React Native? Read this first!

React Native is a framework that allows developers to build mobile applications using JavaScript and React. It allows developers to use the same codebase for both iOS and Android platforms, making it a cost-effective and efficient solution for mobile development.

React Facebook first introduced native in 2015 as an open-source project. It is based on React, a JavaScript library for building user interfaces, and allows developers to build mobile apps that look and feel like native apps.

Use these tools and resources to build React Native app

There are two main ways to install and set up a React Native project using the Expo CLI or the React Native CLI.

Expo is a toolchain built around React Native that allows developers to easily set up and run React Native projects without needing Xcode or Android Studio.

Users can follow the steps below to get started with React Native.

Install and Set up using React Native CLI

React Native CLI is a command-line interface for building React Native projects. It allows developers to create and manage React Native projects, and build, run, and test apps for iOS and Android platforms.

Step 1 − The user will need Node, the React Native command line interface, a JDK, and Android Studio.

Step 2 − Install Android Studio and SDK and Configure the ANDROID_HOME environment variable.

Step 3 − If a global react-native-CLI package is previously installed in the system, we need to remove it as it may cause unexpected issues.

npm uninstall -g react-native-cli @react-native-community/cli

Step 4 − Create a new React Native project

npx react-native init <projectName>

Step 5 − navigate to the project directory

cd <projectName>

Step 6 − If users have a physical Android device, they can use it for development in place of an AVD by plugging it into their computer using a USB cable

Step 7 − Now, the user can enter the following command to run the project.

npx react-native start

Install and Set up using Expo Go

Step 1 − First, users must download and install the Node Js and npm (Node Package Manager) on the local computer.

Step 2 − Next, the user must install the Expo CLI. This can be done by running the following command in the terminal −

npm install -g expo-cli

Step 3 − Once the CLI is installed, the user can create a new React Native project by running the following command −

npx create-expo-app <projectName>

Step 4 − Navigate to the project directory

cd <project-name>

Step 5 − Now, the user can run the following command to start the development server.

npm start

step 6 − Now, users need to Install the Expo Go app on their iOS or Android phone and connect to the same wireless network as their computer. On Android, use the Expo Go app to scan the QR code from the terminal to open the project.

Create a simple "Hello World" project in React Native

With the above tools and resources, we can start building our first React Native app.

Create a new project (HelloWorld) by running the following commands −

npx create-expo-app HelloWorld
cd HelloWorld

npm start

Open the "App.js" file in the editor or IDE, and replace the existing code with the following −

import React from 'react';
import { Text, View } from 'react-native';

const App = () => {
   return (
         <Text>Hello World!</Text>

export default App;

The development server is started successfully, and when users scan the QR code from the terminal, they can see the output below.

Hello World!

React Native Functions and Concepts for Building Mobile Apps

The core concepts and functions needed for building efficient and user-friendly mobile apps with React Native.


React Native uses a component-based architecture, where components are the building blocks of the app, and these can be reused and nested to create complex UI.

Props and state

React Native uses props and states to manage the data and state of an app. Props are used to pass data from a parent component to a child component, while the state is used to manage a component's internal state.


React Native hooks allow users to use state and other React features in functional components. The most commonly used hooks are useState, useEffect, useContext, useRef, etc.


React Native uses Flexbox, a layout system that allows users to position and size elements flexibly.


React Native provides a StyleSheet API that allows users to define your components' styles.


React Native provides a powerful debugging tool called the React Native Developer Tools that allows users to inspect the component tree, view the props and state of the components, and make changes to the code in real time.

Example – Todo App

In the example below, we will create a to-do list in React Native, and the user needs to start by setting up a basic project.

This simple, functional component allows users to add and remove todos from a list. It uses the useState hook to manage the state of the todo input field and the list of todos.

A button next to each todo on the list allows users to remove it.

import React, { useState } from 'react';
import { View, Text, TextInput, Button } from 'react-native';

const TodoList = () => {
   const [todo, setTodo] = useState('');
   const [todos, setTodos] = useState([]);

   const addTodo = () => {
      setTodos([...todos, todo]);

   const removeTodo = (index) => {
      const newTodos = [...todos];
      newTodos.splice(index, 1);

   return (
            placeholder="Enter a todo"
            onChangeText={text => setTodo(text)}
            title="Add Todo"
  , index) => (
               <View key={index}>
                     onPress={() => removeTodo(index)}

export default TodoList;


We learned about some basics of React Native, including setting up your development environment, creating your first app, and debugging.

We also discussed some essential React Native functions and concepts for building mobile apps, such as using the useState and useEffect hooks, flexbox layout, and navigation. We also created a simple Todo List and a basic "Hello World" app.