Uber Clone with React Native (CLI + Expo) | Live Tracking & Background Location via Sockets

4.3(9 reviews)
šŸ’š Loved by learners
₹499
React Native
Node.js
Expo
968 views
šŸŽ Offers Available

Description

This is a full-stack Uber clone app built with React Native (CLI + Expo). It includes live map integration, background location tracking, real-time routing, location search, and nearby places using REST APIs. A complete backend with Swagger docs is included for easy testing. Features: dark mode, RTL, and multi-language support. Purchase includes free lifetime updates with access to the latest features.

Documentation

šŸš– Uber Clone - React Native App

A fully functional Uber-like ride booking app built with React Native (CLI + Expo).

✨ Features

  • šŸŒ Multilingual support (LTR + RTL)
  • šŸŒ™ Light/Dark themes
  • šŸ“ Real-time ride tracking with Google Maps
  • šŸ”Œ Live location updates via sockets
  • ⚔ Built on a scalable boilerplate foundation – rn_boilerplate

šŸ—‚ Tech Stack

  • Frontend: React Native (CLI + Expo)
  • Backend: Node.js + Express
  • Maps & Location: Google Maps SDK + Background Location
  • APIs: REST APIs + Swagger Documentation

šŸš€ Extra

  • Dark mode & RTL layouts
  • Multi-language support
  • Lifetime free updates (new features included)

šŸ”— Boilerplate: rn_boilerplate


šŸš€ How to Run

Follow these steps to set up and run the app:

šŸ—‚ļø Step 1: Unzip the Project

Unzip the downloaded folder.

šŸ“‚ Step 2: Navigate to the rn_cli Project Directory

cd uberclone

šŸ“¦ Step 3: Install Dependencies

npm install

ā–¶ļø Step 4: Start Metro Bundler

npm start

šŸ“± Step 5: Run on Android

npm run android

šŸŽ Step 6: Run on iOS

npm run ios

šŸ”‘ Google Maps API Setup

To enable maps:

āœ… 1. Add your Google Maps API Key

Edit the following file:

// src/config/keys.ts
export const GOOGLE_MAP_API_KEY = 'PASTE_YOUR_API_KEY_HERE';

āœ… 2. Android Setup

Add this in android/app/src/main/AndroidManifest.xml:

<meta-data
  android:name="com.google.android.geo.API_KEY"
  android:value="PASTE_YOUR_API_KEY_HERE"/>

āœ… 3. iOS Setup

In ios/rn_boilerplate/AppDelegate.swift, inside application(...) method:

GMSServices.provideAPIKey("PASTE_YOUR_API_KEY_HERE")

1. Expo Setup

šŸ›‘ Important Note: This project uses native dependencies and cannot run in Expo Go. You must use the development build created by npx expo prebuild.

  1. Create Environment File

    # Copy the example environment file
    cp env.example.js .env
    
  2. Configure Environment Variables

    Edit the .env file in the root folder and add your API keys:

    EXPO_PUBLIC_GOOGLE_MAP_KEY="YOUR_GOOGLE_MAPS_API_KEY"
    EXPO_PUBLIC_LICENSE_KEY="YOUR_LICENSE_KEY"
    

2. Installation & Build

  1. Install Dependencies

    npm install
    
  2. Prebuild Native Folders

    npx expo prebuild
    

    This command creates the android and ios folders with native configurations.

  3. Run the Application

    For iOS:

    npm run ios
    

    For Android:

    npm run android
    

šŸ”§ Backend Setup

šŸ“ Step 1: Navigate to Backend Folder

cd backend

šŸ“¦ Step 2: Install Backend Dependencies

npm install

āš™ļø Step 3: Start the Backend Server

npm run dev

šŸ›‘ Important

Make sure MongoDB is installed and running locally before starting the backend server.

šŸ‘‰ Download MongoDB Community Edition

šŸ“ Folder Structure (Modular)

uberclone/
ā”œā”€ā”€ App.tsx                # App entry point
ā”œā”€ā”€ index.js               # Registers root component
ā”œā”€ā”€ app.json               # App configuration
ā”œā”€ā”€ package.json           # Dependencies & scripts
ā”œā”€ā”€ babel.config.js        # Babel config
ā”œā”€ā”€ metro.config.js        # Metro bundler config
ā”œā”€ā”€ tsconfig.json          # TypeScript config
ā”œā”€ā”€ yarn.lock              # Yarn lockfile
ā”œā”€ā”€ .eslintrc.js           # ESLint config
ā”œā”€ā”€ .prettierrc.js         # Prettier config
ā”œā”€ā”€ .gitignore             # Git ignored files
ā”œā”€ā”€ /android               # Android native files
ā”œā”€ā”€ /ios                   # iOS native files
ā”œā”€ā”€ /assets                # Global static assets
ā”œā”€ā”€ /backend                   # Backend (Node.js + TypeScript)
│   ā”œā”€ā”€ /src
│   │   ā”œā”€ā”€ /api               # API routes
│   │   ā”œā”€ā”€ /config            # DB and app config
│   │   ā”œā”€ā”€ /socket            # WebSocket (Socket.io) logic
│   │   ā”œā”€ā”€ /types             # TypeScript interfaces/types
│   │   └── index.ts           # Main server entry point
│   ā”œā”€ā”€ .env                   # Environment variables
│   ā”œā”€ā”€ package.json           # Backend dependencies & scripts
│   ā”œā”€ā”€ package-lock.json
│   └── tsconfig.json          # TypeScript config
ā”œā”€ā”€ /src                   # Main source code
│   ā”œā”€ā”€ /assets            # Fonts, Images
│   ā”œā”€ā”€ /components        # Reusable UI components
│   ā”œā”€ā”€ /config            # App-level config files
│   ā”œā”€ā”€ /constants         # App-wide constants
│   ā”œā”€ā”€ /context           # React contexts
│   ā”œā”€ā”€ /hooks             # Custom hooks
│   ā”œā”€ā”€ /lang              # Localization (en.json, ar.json)
│   ā”œā”€ā”€ /models            # Data models/interfaces
│   ā”œā”€ā”€ /navigation        # Stack & tab navigators
│   ā”œā”€ā”€ /redux             # Redux store, actions, reducers
│   ā”œā”€ā”€ /screens           # UI screens (Home, Profile, etc.)
│   ā”œā”€ā”€ /styles            # Global styles/themes
│   ā”œā”€ā”€ /typings           # TypeScript types
│   └── /utils             # Utility functions

šŸ“„ License

MIT License

What our users say

No reviews yet. Be the first to review this module!

Module Information

Downloads
Released
License
Last Updated
316
3 months ago
MIT
a day ago

Live Preview

View Live Demo

Tech Stack

Technologies used in this module

React Native
Node.js
Expo

Support

Home
Toolbox
ProblemsSign InSign Up