DEV Community

Cover image for ๐Ÿ”ฅHow I Built My First React Native App (Step-by-Step With Modern Tools)
Umaar Ahmed
Umaar Ahmed

Posted on

๐Ÿ”ฅHow I Built My First React Native App (Step-by-Step With Modern Tools)

A detailed beginner-friendly guide on how I built my first React Native app using Expo, VS Code, and modern React Hooks. Includes setup, code, and tips for 2025.

cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/smx20j0geiomlrchrn3x.png

When I first started learning React Native, I had no idea where to begin.

I wanted to build an app that could run on both Android and iOS โ€” but the setup guides online looked overwhelming.

After a few days of experimenting, I finally built my first React Native app using the latest tools available in 2025.

Hereโ€™s a complete guide to help you do the same ๐Ÿ‘‡


๐Ÿงฐ Step 1: Setting Up the Environment

Install Node.js

React Native requires Node.js to run.

Download and install it from nodejs.org.


bash
node -v
npm -v
Make sure both commands show a version number.

Install Expo CLI (Recommended for Beginners)
Instead of setting up Xcode or Android Studio manually, I used Expo, which makes the whole process smooth.

bash
Copy code
npm install -g expo-cli
Then create your first project:

bash
Copy code
expo init my-first-app
cd my-first-app
expo start
This command launches the Expo DevTools in your browser and gives you a QR code to open the app directly on your phone using the Expo Go app.

๐Ÿงฑ Step 2: Creating the First Screen
Open your project in VS Code and edit the App.js file:

javascript
Copy code
import React from "react";
import { View, Text, StyleSheet } from "react-native";

export default function App() {
  return (
    <View style={styles.container}>
      <Text style={styles.title}>Hello World ๐Ÿ‘‹</Text>
      <Text style={styles.subtitle}>My First React Native App</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#f5f5f5",
  },
  title: {
    fontSize: 28,
    fontWeight: "bold",
    color: "#333",
  },
  subtitle: {
    fontSize: 18,
    color: "#666",
    marginTop: 8,
  },
});
๐Ÿ’ก Tip: React Native uses the same components on both iOS and Android, so you can design once and run everywhere.

๐ŸŽจ Step 3: Adding Styling & Reusable Components
I created a simple component called Button.js to learn how modular design works.

javascript
Copy code
import React from "react";
import { TouchableOpacity, Text, StyleSheet } from "react-native";

export default function Button({ title, onPress }) {
  return (
    <TouchableOpacity onPress={onPress} style={styles.button}>
      <Text style={styles.text}>{title}</Text>
    </TouchableOpacity>
  );
}

const styles = StyleSheet.create({
  button: {
    backgroundColor: "#4B7BE5",
    padding: 12,
    borderRadius: 8,
    marginTop: 10,
  },
  text: {
    color: "#fff",
    fontSize: 16,
    textAlign: "center",
  },
});
Then imported it into App.js:

javascript
Copy code
import Button from "./Button";

<Button title="Click Me ๐Ÿš€" onPress={() => alert("Button pressed!")} />
This small addition taught me how reusable UI components make large apps scalable and maintainable.

โš™๏ธ Step 4: Debugging and Testing the App
Expo provides an excellent debugging environment.

Use r in terminal to reload the app.

Press d to open developer tools.

Use React Native Debugger or Flipper for advanced logs.

If you face errors like โ€œMetro Bundler not starting,โ€ simply clear cache:

bash
Copy code
expo start -c
๐Ÿ“ฑ Step 5: Running on Real Device
Install Expo Go app from Google Play or App Store.

Scan the QR code from your terminal or browser.

Boom ๐Ÿ’ฅ โ€” your React Native app is live on your phone!

For a standalone build:

bash
Copy code
expo build:android
expo build:ios
๐Ÿš€ Step 6: Adding Modern Tools (Optional but Powerful)
To make development faster and professional:

TypeScript for type safety

React Navigation for routing

Redux Toolkit or Zustand for state management

NativeWind (TailwindCSS) for styling

EAS Build for production-ready builds

Example installation:

bash
Copy code
npm install @react-navigation/native @react-navigation/stack
npm install react-native-screens react-native-safe-area-context
๐Ÿ’ก Lessons Learned
Expo simplifies mobile app development.

React Native lets you reuse your React knowledge.

Debugging on a physical device is always more accurate.

Styling in React Native is fun when you use consistent components.

๐Ÿงญ Final Thoughts
Building my first React Native app was an amazing journey.
I started with zero mobile experience, and now I can confidently say โ€” React Native makes cross-platform development simple, fast, and enjoyable.

If youโ€™re a beginner, start small but stay consistent.
Within weeks, youโ€™ll be building powerful apps for both iOS and Android!


Follow me on Dev.to for more React Native tips, tools, and project tutorials.

Written by Umaar Ahmed โ€” React Native Developer & App Builder ๐Ÿš€
Enter fullscreen mode Exit fullscreen mode

Top comments (0)