Build an Uber Clone App in Swift with AI
By the Vibecode teamUpdated 6 min read
Short answer
An Uber clone is three products: a rider app, a driver app and a dispatch backend that matches them in real time. Most of the work, and most of the cost in clone scripts, sits in the backend. Vibecode's template, Zipride, is the complete rider app (map, destination search, ride options, driver matching, live trip, rating and receipts) as a native iPhone app written in Swift, with simulated drivers. Remix it, then add the driver side and real dispatch by chatting.
See it running

Template
ZiprideiOS
Uber clone · Swift and SwiftUI
Map with moving cars, destination search, ride options, driver matching, live trip and rating.
Remix copies the working Swift app into your Vibecode account for free. Or open a new iOS app with the prompt below to build a fresh copy.
Open the template pageThe prompt we used
This is the prompt that built Zipride in Vibecode. Paste it into a new iOS app project to build your own copy from scratch, or change the details first.
Prompt · 755 words
Build a polished, fully working native iOS app in SwiftUI named Zipride: an original ride-hailing app that recreates the core experience of Uber, but with its own name, its own original logo and its own color palette. Do NOT use the Uber name, logo, wordmark, app icon or any trademarked asset anywhere in the app. Design an original Zipride logo mark, drawn with SwiftUI shapes (Path/Canvas) or made as a generated image asset, and use it in the header.
Screens and flows (bottom tabs: Home, Services, Activity, Account; clean light UI, black primary buttons, your own accent color):
1. Home: a full-screen SwiftUI MapKit Map of downtown San Francisco with a muted map style (no location permission: show a custom pulsing annotation at a fixed coordinate instead of the user's location) with a pulsing blue "you are here" dot and 5 small car annotations slowly driving along fixture street coordinates. Bottom sheet: "Where to?" search pill with a "Now" schedule chip, saved places (Home: 1458 Oak Street, Work: 200 Market Plaza), 3 recent destinations with distances, and service shortcuts (Ride, Reserve, Package, Rental).
2. Destination search: tapping "Where to?" opens a screen with pickup "Current location" and destination inputs; typing filters 12 fixture places (name, address, distance), plus suggestions before typing.
3. Ride options: choosing a place returns to the map, which draws an animated MapPolyline route from pickup pin to destination pin (MKDirections, with a fixture polyline fallback) and animates the camera to fit it. Bottom sheet lists ride types with car illustrations, seats, arrival time and price: ZiprideX $14.20 (4 seats, 3 min), Comfort $18.75, XL $24.10, Green $15.30, Black $32.40. Tapping selects with a highlight; payment row "Visa •••• 4242" opens a payment picker; big black "Choose ZiprideX" button.
4. Matching: confirm shows "Finding your driver" with a radar pulse on the pickup pin for about 3 s, then a driver is matched: card with driver photo, "Marcus", 4.92 star rating, "Toyota Camry · Gray", plate "8KJD372", call and message buttons, "Cancel ride". The driver's car annotation drives along the route coordinates to the pickup over about 8 s while the header counts down "Arriving in 3 min" to "Your driver has arrived".
5. Message button opens a chat sheet with quick replies ("I'm on my way", "I'm at the pickup spot"); sending shows the driver replying.
6. Trip: "Start trip" (or automatically after arrival) moves the car along the route to the destination over about 8 s with a trip progress bar and ETA; arrival opens a "How was your ride with Marcus?" screen with 5 tappable stars, tip chips ($1, $2, $5, Custom), and Done returns Home with the trip added to Activity.
7. Activity: past trips with mini route maps, date, price; tap for a receipt. Services: grid of service tiles. Account: profile, rating, wallet, settings rows.
Rules for the whole app:
- Native SwiftUI for iOS 26, the deployment target the Vibecode iOS template already uses (do not change it). iPhone-first layout. SF Symbols are fine for UI icons (never for the Uber logo or any brand mark).
- Everything runs on-device from realistic, deterministic fixture data in one Swift file (e.g. Fixtures.swift: real-sounding names, handles, numbers, timestamps, captions). No backend (leave the backend/ folder alone and make no network calls except loading images and media), no login, no permissions (no camera, photos, location, contacts, notifications, microphone). Do not persist state (no UserDefaults, @AppStorage, SwiftData or files): every launch starts from the same fixture state, so the demo is repeatable.
- Remote images: load images.unsplash.com photo URLs (with ?w=800&q=80 style params) with AsyncImage (or a small cached image view) and a tasteful placeholder. Verify every image and media URL with `curl -s -o /dev/null -w "%{http_code}" <url>` before you use it and replace any that do not return 200. No broken or blank images anywhere.
- Polish: native-feeling spacing and typography, safe areas, smooth spring animations (.spring/.snappy, most under 350 ms), matchedGeometryEffect for hero and expand/collapse transitions where it helps, .sensoryFeedback haptics on key taps, pressed states, and loading/empty states. Simulated waits stay short (under 3 s). Every button visible on screen does something sensible; nothing is a dead end.
- Keep the compiler happy: small files (under ~300 lines each), big view bodies split into subviews, and no long chained expressions, so nothing hits "unable to type-check this expression in reasonable time".
- It must build with zero errors and run in the iOS simulator with no crash. Walk through every flow above and fix anything broken.Uber clone features
What Zipride includes today, and what you add next. Everything in the template runs on sample data, with no login and no backend, so it works the moment you open it.
In the template
Home map
Apple Maps view with a pulsing pickup point and nearby cars moving along the streets, plus a 'Where to?' sheet.
Destination search
Pickup and drop-off inputs, saved places like Home and Work, recent trips and live filtering.
Route and fare estimate
Route line between pins and ride types with seats, arrival time and price.
Payment picker
Saved card row and a sheet to switch payment method before you confirm.
Driver matching
'Finding your driver' state, then a driver card with photo, rating, car, plate, call and message.
Live tracking
The car drives to the pickup with an arrival countdown, then along the route with trip progress and ETA.
Driver chat
Message sheet with quick replies and driver responses.
Rating and tips
Five-star rating, tip chips and a receipt saved to trip history.
Trip history and account
Past trips with receipts, services grid, wallet and settings.
Add with a prompt
Driver app
Go online, accept or decline requests, navigate to the pickup and see earnings.
Real location
The rider's GPS position for pickup and live driver positions.
Dispatch and payments
Matching backend, card charges and driver payouts.
How to build an Uber clone with Vibecode
- 1
Remix the template
Open the Zipride share page and press Remix. Vibecode copies the whole Swift project into your account, so you start from a working app instead of an empty screen. Remixing is free.
- 2
Make it yours by chatting
Tell the agent what to change in plain English, for example: “Rename the app to Hopper, make it a campus shuttle service, and replace ride types with Shuttle and Night Safe Ride.” Each change rebuilds the app and runs it in Vibecode's cloud iOS simulator, right in your browser.
- 3
Publish to the App Store
Click Publish, choose Publish to App Store and sign in with your Apple ID. Vibecode builds, signs and uploads the app to Apple, with no Mac and no Xcode. You need an Apple Developer account ($99/year) and the Plus plan or higher.
The hard parts of a real Uber clone
Screens are the quick part. These are what take the time once real people use it.
Live location both ways
The driver app sends its position every few seconds and every rider watching that car needs it pushed to them over a socket, not by polling. On the driver side, location in the background needs Apple's background location mode and a clear permission explanation, which App Review checks.
Matching without double-booking
Dispatch finds available drivers near the pickup (a geospatial query), offers the ride to one at a time with a timeout, and moves on when someone declines. Two riders must never get the same driver, so the claim has to happen inside a database transaction.
Maps, routes and fares
Routes and arrival times come from a directions service, and fares are usually a base price plus per-minute and per-mile rates with surge multipliers. On iPhone, Apple's MapKit draws the map and plans routes without an API key. The template uses it with a fixed pickup point, so it runs without asking for your location.
Charging for rides
A ride is a service used outside the app, so Apple requires a card or Apple Pay rather than in-app purchase (Guideline 3.1.3(e)). Use Stripe for the charge and a marketplace product such as Stripe Connect to pay drivers.
Take it from template to real app
Each step is one message to the Vibecode agent. Send them one at a time and test in between.
- 1
Real location
The map is already Apple Maps. The next step is the rider's real position and real place search.
Prompt
Ask for location permission, use my real location for pickup, and use real place search and driving directions for the route.
- 2
Driver app
Build the driver side as its own project so each app stays simple, sharing the same backend.
Prompt
Build the driver app: go online or offline, receive ride requests with a 15-second accept timer, navigate to the pickup, start and end trips, and see today's earnings.
- 3
Accounts and dispatch
Vibecode Cloud gives both apps sign-in and a shared database for riders, drivers and trips.
Prompt
Add Vibecode Cloud. Store riders, drivers and trips, assign the nearest online driver when a rider confirms, and never assign one driver to two rides.
- 4
Payments and push
Stripe charges the rider's card. Push notifications tell riders when the driver is close.
Prompt
Charge the rider's card with Stripe when the trip ends, and send push notifications when a driver is assigned and when they arrive.
What an Uber clone costs
Uber clone scripts usually bundle a rider app, a driver app and an admin dashboard on a backend you host. The Vibecode template covers the rider app only, with simulated drivers. In exchange you own a polished, readable Swift codebase you can change by chatting, and you add the driver app and dispatch one prompt at a time.
| Option | Typical cost | What you get | Still on you |
|---|---|---|---|
| Clone script | $299–$5,000 one-time license | Source code for the apps, usually with an admin panel | Servers, setup, rebranding, store accounts and future updates |
| Freelancer | Hourly or a fixed bid, set by scope | Custom code built to your spec | Writing the spec, reviewing the work, hosting and store submission |
| Development agency | Custom quote per project | Design, build, testing and launch handled for you | A budget and timeline fixed by contract; every change goes through the agency |
| VibecodeThis template | Free to remix; plans from $20 a month | A native Swift Uber-style iPhone app you change by chatting, with App Store publishing (Plus and up) and source code download (Pro and Max) | A backend for real data (one prompt with Vibecode Cloud) and an Apple Developer account ($99/year) |
Clone-script prices are the range listed by script marketplaces and vendors. Vibecode plans and what each includes are on the pricing page.
Frequently asked questions
Is it legal to build an Uber clone?
Yes. Ride-hailing as a product (request a ride, match a driver, track the car) is not owned by Uber, and many regional apps work this way. Don't use Uber's name, logo, car icons or brand colors, or suggest you are affiliated. The template is called Zipride for that reason. Running a real ride service also means local transport licensing and insurance for drivers, which no app template covers.
Can I publish an Uber clone to the App Store?
Yes, as your own service. Apple rejects copies that only change the name (Guideline 4.1), so pick a market Uber does not serve well: a campus, a city, airport transfers, school runs. Ride payments go through Stripe or Apple Pay, not in-app purchase. Vibecode publishes to the App Store on the Plus plan and up, with your Apple Developer account.
Does the Uber clone work on Android?
No. Zipride is a native iPhone app written in Swift, so it runs on iPhone only. For Android, start a Mobile app project in Vibecode, which builds React Native apps for iPhone and Android, and paste the prompt from this page.
Can I add a real backend to the Uber clone?
Yes. Zipride runs on sample data so it works the moment you remix it. When you need real users, Vibecode Cloud adds a database, sign-in and file storage with one prompt, enough for riders, drivers, trips, driver locations and payments. It is on the Plus plan and up. You can also connect Supabase, Firebase or your own API.
Does the Uber clone include a driver app?
No. The template is the rider app, with a simulated driver who is matched, drives to you and completes the trip. Ask the agent to build the driver app as a second project, then connect both to one Vibecode Cloud backend.
Does it use real maps and GPS?
Real maps, simulated location. The template uses Apple Maps through MapKit, with a fixed pickup point in San Francisco and simulated cars, so it runs in the simulator without a location prompt. Ask the agent to switch to your real location and live place search.
Is the Zipride template free?
Remixing it is free with a Vibecode account and gives you your own copy of the Swift project. Changes you ask the agent for use credits. Publishing to the App Store needs a paid plan (Plus and up) and an Apple Developer account ($99/year), and downloading the source code is on the Pro and Max plans. See the pricing page for current plans.
Other guides: Instagram cloneTikTok cloneYouTube cloneNetflix cloneSpotify cloneDiscord clone
Browse all app templates. Choosing a builder? Read the best AI mobile app builders guide or compare Vibecode with other app builders.











