Uber Clone with React Native (CLI + Expo) | Live Tracking & Background Location via Sockets
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
.
-
Create Environment File
# Copy the example environment file cp env.example.js .env
-
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
-
Install Dependencies
npm install
-
Prebuild Native Folders
npx expo prebuild
This command creates the
android
andios
folders with native configurations. -
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
What our users say
No reviews yet. Be the first to review this module!
Module Information
Live Preview
View Live DemoTech Stack
Technologies used in this module