Category: Blog, Business, Development

How to Make an App like Uber: Process, Cost & Tips

Use our expert tips to develop a successful carpooling app like Uber and see how much it costs.

How to develop an app like Uber in 2020 - Carpooling App Development Guide for App Owners

TL;DR

The whole process of designing and developing an app like Uber will cost you ~ $442,000 – $621,000  (for both iOS and Android), and take ~ 5 – 7 months (MVP version).

Everything that matters most is included in the above-mentioned price. UX/UI Design, Passenger app for iOS and Android, Driver app for iOS and Android, Admin Panel, Backend development, Quality Assurance securing all applications & the backend, and the work of the Scrum Master who will make the development process smooth and effective.

To understand where these numbers come from and what assumptions we took, continue reading.

Introduction

How to make an app like Uber? What is the cost of an Uber-like app development? These are common questions we hear from business owners who approach us. Here’s the reason why: large cosmopolitan cities often suffer from lots of traffic and a lack of available parking space. That’s why so many of their inhabitants choose rideshare services like Uber instead of owning cars.

The high demand for personal or shared car rides inspires entrepreneurs around the world to verify how Uber-like apps could play out on local markets. New apps keep appearing on the market, and many startups around the world are looking to grab a piece of this pie.

Uber is considered the archetypal disruptive startup, having created a massive impact on the taxi industry in many cities across the world. This is only one of the reasons why many founders looking to build ride-sharing apps model their products on Uber. In the first quarter of 2020, users booked 1.65 billion trips on the app, helping the company to register a revenue of $15.8 billion. Uber reached an IPO valuation of $82.4 billion.

In this article, we zoom in on the development of an Uber-like app to give you a detailed breakdown of costs and help you estimate your project per feature.

Uber-like app development basics

How does Uber work?

First of all, it’s good to take a closer look at the exact service range Uber offers today. Users can choose from several types of cars that come with different benefits. These options are largely dependent on the location where you hail a ride.

For example, in New York City, users can choose from the following:

  • UberX – economic rides where user books the entire vehicle
  • UberXL – affordable rides for up to 5 users
  • Black – premium rides in luxury cars
  • Black SUV – premium rides for up to 5 users with professional drivers
  • Car Seat – cars that have a car seat for a child
  • WAV – rides in vehicles that are wheelchair-accessible

Moreover, Uber is connected to another handy app from the same company, Uber Eats. Users can easily move between the apps. This type of integration is something every founder should consider when building a ride-sharing application beyond the MVP (Minimum Viable Product) stage.

How many apps do you really need?

When building a ride-sharing app, you basically connect drivers with passengers. That’s why you’ll need to build:

  1. Driver App
    This app is for drivers who can share their location, find optimal matches and get paid for their services. It usually consists of features such as real-time and scheduled requests, trip details and tools for tracking payments.
  2. Passenger App
    This app allows users to request rides easily. It can include features such as real-time matching of passengers with drivers, real-time updates about rides, verified profiles for extra security, and a user-friendly payments portal.
  3. Admin Panel for the App Owner
    This usually comes in the form of a web-based admin panel, which is accessible from any browser. An admin panel is a key component of a successful carpooling app. You can customize it with features such as driver and passenger management, or reports and analytics.

What’s more, you will need also a backend for the above-named app. What is Backend and How to Choose the Best One for your Project?

How to develop an app like Uber and what apps you do need?

Features of an Uber-like app for passengers

Basic features:

  • Geolocation and routing
  • Calling or texting the driver right from the app
  • Ride states
  • Ride cost estimation
  • Payments
  • Push notifications
  • Registration and personal data management
  • Personal profile

Advanced features:

  • Booking rides for others
  • Scheduling rides in advance
  • Splitting the ride fare with companions

Features of an Uber-like app for drivers

Basic features:

  • Driver reporting
  • Route optimization
  • ‘Active/Inactive’ option
  • Daily or monthly reports of bookings and earnings
  • Geolocation and routing
  • Calling or texting the passenger right from the app
  • Ride states
  • Ride cost estimation
  • Push notifications
  • Registration and personal data management
  • Personal profile

Advanced features:

  • Free cancellations within a set period of time
  • Sophisticated reporting and heatmaps (for example, for showing street traffic)

Main functions performed by the Uber admin dashboard

  • Adding and deleting admins
  • Managing admins’ privileges
  • Browsing the list of drivers
  • Updating drivers’ data
  • Driver verification
  • Changing the price of a ride

Revenue models for an Uber-like app

Uber doesn’t own a fleet of vehicles but instead earns profits by acting as the mediator between drivers and passengers. The company charges its drivers a 25% fee on all fares for the use of the software, collection and transfer of fees, credit card commissions, and sending invoices to customers. However, this doesn’t mean that your ride-sharing or carpooling app should work the same.

If you’re looking to build a clone of Uber, consider developing different monetization models such as:

  • Charging fees from passengers
  • Charging fees from drivers
  • In-app advertising
  • Integration with other apps and services

7 stages of an Uber-like app development process

Here are the main phases of a mobile app development process:

  1. Choose a company to design and develop your app
    Researching, analyzing, and selecting a company to cooperate on your ridesharing app with. Signing an Independent Contractor Agreement. Read more about choosing a partner for your app development.
  2. Product Discovery – define what you want to create, for who and why
    Clarifying your app’s vision, defining your product’s goals & its final users. Deciding which features are the most crucial in creating your MVP, on which platforms your app will work, and defining your monetization models. Read more about the Product Discovery phase.
  3. UX/UI app design – determine how your Uber-like app will work and look
    Creating a User Journey Map, clickable wireframes, visual user interfaces, and motion design (animations & screen transitions). Read more about the UX/UI app design process.
  4. Project kick-off & setup – last preparations before the start of app development
    Ensuring the Product Owner knows the development team and vice versa. Defining every role in the team, agreement on rules, and next steps, as well as configuring tools. Setting up the project environment, using best practices from areas like project management to DevOps, helps to make the ride-sharing app development process faster and smoother. Read more about project kick-off and setup.
  5. App development with Quality Assurance
    App production with Continuous Integration: plan, code, build, test (and repeat). Ensuring Quality Assurance at every stage of carpooling app development with manual and automated tests. Development teams usually follow the Scrum framework and divide the work into short iterations, each followed by a demo.
  6. Preparation and publishing of the app on Google Play Store and Apple Store
    Releasing includes uploading assets required by laws & promotional materials, beta testing, optimizing the product page/store presence, and everything else needed for your app approval to go as smoothly as possible. Preparing for launch is essential if you want your Uber-like app to stand out from the crowd and succeed.
    Download for free: App Publishing Checklist for Google Play
  7. Post-development phase – app maintenance & further development
    Detecting crashes, monitoring app’s statistics, product enhancement, and further development. Your Uber-like app stays attractive, adapts to changing market conditions and users’ feedback.

Read Mobile App Development Process – 7 Stages of App Development to learn more about each of the above-mentioned stages.

If you’re not ready to start development, at Droids On Roids we offer a Product Design Workshop that helps to clarify the vision for the app, prepare end-user personas, and kick off a project successfully.

App for passengers – main features cost estimation & developer’s insight

The estimations you can find below show how many hours developers need to build a specific feature for the Android platform. The time required for the same application features for iOS will be approximately similar.

The following estimates are based on our practical experience with Uber-like app development. We give ranges of hours, showing you both the high and low case scenarios.

Geolocation and routing: 150 – 200 hours

Calculating the fastest route for the first time requires a stable internet connection. Later on, the user of the device can be offline since the route is saved in the phone’s memory. You can only get data about the exact position of the user only when they are connected to the Internet because relying on GPS alone might result in erroneous readings (up to several dozen meters!).

All the journey details (pickup point, destination, route, and driver/passenger) must be saved on the device and available offline. This is because, when the user turns off the phone (or it discharges) and then restarts it, all of this information should be recreated so that they can continue their journey.

Of course, it might happen that the driver or passenger change their device during the trip (for example, because it breaks). In this case, the trip needs to be recreated on the basis of the data stored on the server. However, this is a very extreme case.

You may also like: How to Develop a GPS Navigation App Like Waze in 2021

Calling or texting the driver right from the app: 50 – 100 hours

The driver and passenger need to have a direct line of communication in the event that they can’t find each other or experience other problems before starting a joint journey. It’s good to create an internal chat for such cases. Similarly, the calling feature should be carried out through a phone exchange due to the confidentiality of users’ phone numbers.

Ride states: 100 – 120 hours

Each trip has states that must be synchronized with the backend to notify the driver or passenger app about the new trip state (e.g. cancellation). Starting from the very beginning, the app can have states like: create a new ride, ride accepted, on the way, close to pick up point, at the pick-up point, going to a destination, at the destination, ride finished, ride canceled.

Ride cost estimation: 16 – 32  hours

For business and technical reasons, the passenger and driver should know the minimum (driver) or maximum (passenger) cost of the trip. From the business point of view, the user gets to learn the approximate cost before the trip and can be sure that the driver isn’t going to ask for more. This often happens to tourists from another country who don’t know the local rates, as dishonest taxi drivers can take advantage of this.

From the technical point of view, estimating the cost of the trip at the onset is important because of potential issues (such as a lack of internet access or GPS), as the cost of the trip might be wrongly charged, resulting in a loss for the driver or passenger.

Payments: 105 – 175 hours of developers’ work

When building this feature, be sure to pay attention to two issues: User Experience (UX) and security. It’s best to use native solutions such as Apple Pay or Google Pay that offer fast and secure transactions. Moreover, you should consider cash payments as well – paying via the app might become problematic in areas with poor internet connections (this depends on the region where you plan to release your app).

Push notifications: 90 – 160 hours

It’s important that the server-client communication is carried out via push notifications because they reduce the network traffic (primarily for the server), and the application can quickly notify users about events, even when it’s working in the background.

Registration and personal data management: 90 -150 hours

Make sure that the process of registration and login is fast and straightforward for users. The best method is using the telephone number and allowing the automatic reading of the SMS with a verification code. That way, the user will only have to pass a few steps to start using your app, and you’ll minimize the time it takes them. Remember to verify user data on the basis of a valid document since, in some countries, users might find it important whether their driver is male or female due to cultural reasons.

Personal profile: 40 – 60 hours

Profile details should be editable from within the application. Details such as phone number and card number need to be automatically verified so that no one from the company is forced to verify them manually.

In the case of editing the profile photo, taking it and sending it to the server is relatively straightforward. Verifying it is much more challenging. Photos can be verified on the server-side with the use of special algorithms or by a human agent from the customer service department. Consider these two options. Choose the one which is cheaper, faster to use, and safer for you. We usually recommend the first option.

App for drivers – main features cost estimation & developer’s insight

As mentioned before, the estimations you can find below show the number of hours developers need to develop a specific feature for the Android platform. The time required for building the same application features for iOS is approximately similar.

The following estimates are based on our practical experience with Uber-like app development. We give ranges for high and low cases.

Please note that some of the app features for passengers described above are also relevant to the app for drivers. We have described them above, so we don’t repeat them on this list.

Driver reporting: 16-24 hours

This is an important feature of the app because feedback is crucial for both the driver and passenger. The average ratings could affect the driver and passenger pairing algorithms, too. For example, a driver with a high rating would get rides faster and more often than a driver with a poor rating. Showing driver reviews also helps to build trust among passengers.

Route optimization: 24-60 hours

Both the passenger and driver usually want to achieve the shortest travel time and get to their destination as fast as possible. This doesn’t always mean picking the shortest route. The app should have an active internet connection to download current data about traffic while calculating the route.

Moreover, the cost of the journey is often shaped by more than one factor: distance and time. It’s worth remembering these components when calculating the route so that neither the driver nor the passenger experiences any losses.

“Active/Inactive” option: 30 – 50 hours

In the ‘Active’ option, you need to make sure that the driver gets a quick trip request. That’s why the app needs to send their current location and status so that they’re ready for new orders. On the server-side, keep in mind that this is the only method of identifying the available drivers.

Daily or monthly reports of bookings and earnings: 70- 110 hours

This is an important part of the application where drivers can see historical information about their journeys. Offer a simple and clear interface where users can filter, browse, and sum up the cost of their travels. A map with routes taken may also be helpful in the event of a complaint. Make sure that reporting is also available offline.

Calling or texting the driver right from the app: 50 – 100 hours

Creating a direct line of communication between passengers and drivers is just as important for the latter. They can call a passenger if they can’t see them at the pickup location or experience other problems. Your app can include an internal chat as well. Make sure that calling is enabled through a telephone exchange for optimal data privacy and security.

Other

The other features are similar to those described in the App for passengers section:

  • Geolocation and routing: 150 – 200 hours
  • Ride states: 100 – 120 hours
  • Ride cost estimation: 16 – 32  hours
  • Push notifications: 90 – 160 hours
  • Registration and personal data management: 90 -150 hours
  • Personal profile: 40 – 60 hours

Backend development for a ridesharing app (2,500 – 3,200 hours)

For any Uber-like app, you’ll also need a backend – a centralized remote application. Although there may exist mobile apps that use no backend at all, or have a backend in a simplified form (like Firebase or Serverless), Uber-like apps tend to be complex and require the creation of a fully-fledged, custom-made backend application.

Generally speaking, even if you have more mobile applications in the same domain (like a driver app and passenger app in your Uber clone), you should have one common backend for all of them. The mobile apps use the same data and only present them from different perspectives – tailor-made for the driver or passenger.

It’s not uncommon to see the backend part of the whole application cost more than other platforms. This might be true for your Uber clone as well. The more computation and data synchronization an application requires (Uber-like apps have a lot of those), the more of it should be done on the backend side.

Under the hood, mobile apps, web apps, and admin panels only command (eg. “find me a driver”) and query (ew. “how much will I pay?”) for data, which is designed, partitioned, stored, and logically computed on the remote site. All that takes effort.

The typical responsibilities of the backend in Uber-like applications include:

  • Authentication and authorization of users
  • Data consistency – journey status, drivers availability
  • Algorithms (like choosing drivers for your trip or calculating a price for the ride)
  • Data storage and file storage
  • Managing payments, subscriptions, premium status, etc.

When properly configured, the backend can be auto-scaled in an on-demand fashion. This means that you only pay for the resources that are currently in use, depending on how many users (drivers and passengers) are using the application at the moment.

You don’t have to worry about predicting the number of users in the near or distant future. Auto-scaling backends are very handy in handling different numbers of users (and optimizing the costs) in both short-term cycles (like day-night cycles), and long-term cycles (for example, an application just published in stores vs. an application that has been on the market for 5 years).

For high product quality, try to have your backend team in the same company and/or office as the rest of the development team. There are a number of challenges, like understanding the requirements, designing the correct API, and prototyping features, that your team should resolve in close cooperation with each other.

Daily communication between backend devs and mobile devs, not to mention QA engineers and other members of the team, is very important and should help you to address these challenges. Outsourcing backend development generally leads to lower product quality and longer development time. That’s why it’s best to continue working with the same team that developed the mobile app.

Admin panel development for a ridesharing app (350 – 500 hours)

The Admin panel is the place where you or your back-office people (“admins” of the app) can see many different types of information about the application, and/or change some configuration of it. Generally, there is no limit on what data can be seen there. However, the more data is shown, the higher the cost of the admin panel. Similarly, every value used in the application can end up as a value configured via the admin panel, but it makes the panel more costly as well.

The right balance of how much to show and how much to make configurable is hard. On the one hand, you want to give your admins as much power as possible. Yet on the other hand, everything has a cost. A bloated admin panel can make the whole project more expense and complex, not to mention that it can also postpone the launch of the application. Typically, in the MVP stage, admin panels are basic to enable an early launch. As the project goes on, we have more information from the users (and the admins!) about what data is crucial. Remember that features can be added to the admin panel later.

In our case, the MVP stage of the admin panel contained:

  • Adding and deleting admins
  • Managing admins’ privileges
  • Browsing the list of drivers
  • Updating drivers’ data
  • Driver verification
  • Changing the price of a ride

What other factors influence taxi app development cost?

What are the key factors that influence the cost of developing an Uber-like application? Naturally, it all depends on the number and complexity of features that will become part of your MVP.

Here’s a short breakdown of factors you need to take into account during estimation.

  • Number and complexity of features
    Is your passenger/driver app going to include only the basic features or advanced ones as well? Both the range of features and their technical requirements will have a direct impact on the number of hours it will take developers to build your app – and hence, its final cost.
  • Platform
    If you want your app to get the widest reach possible, develop it for both iOS and Android. But, if your budget is tight, you can start with an MVP created for one of the platforms – choose the one that your target audience uses the most.
  • Team setup
    If you’re building a complex app and want to release it to the market as soon as possible, it’s worth hiring a larger team than standard (4 developers per platform). Moreover, if you care about the product quality and efficiency of the software development process, include a Scrum Master and Quality Assurance specialist in your team.
  • Hourly rates of developers
    Where you hire your development team will have a massive impact on the cost of your project. Here is a breakdown of the average hourly rates of development team members in different regions of the world (Source: 2020 Report by Accelerance):
    App development cost - rate ranges per world region

The final cost to develop an app like Uber

So, how much does developing an Uber-like ride-sharing app cost?

Let’s make the following assumptions:

  • We’re going to create an Uber-like app for 2 platforms (iOS and Android),
  • Team setup: 3 mobile developers per platform, 4 Backend Developers, 1 Frontend Developer, 1 UX/UI Designer, 1 Scrum Master, and an Extended QA Plan + Backend Tests Add-on (read more about our QA Plans and Add-ons),
  • The iOS and Android apps + Admin Panel are created at the same time, while the backend development starts about 2 weeks later,
  • The UX/UI Designer begins their work 2 weeks before the development phase begins.
  • The iOS app development has the same hourly estimates as the Android app (in practice, these values may differ slightly from each other).

How much does the team work?

  • One month consists of 4 week-long sprints.
  • Each developer works for 35h per 1 week.
  • The designer works for 35h per 1 week.
  • The monthly amount of payable hours of the Scrum Master is 15% of the hours logged by developers and designers during the month.
  • The QA Engineer works 20 hours per week (Extended QA Plan). The Backend Tests Add-on gives you additional 25 hours of testing per month (API testing, Backend regression testing).

What are the hourly rates of each team member?

  • iOS and Android developer hourly rate = $60 per hour*,
  • UX/UI Designer hourly rate = $60 per hour,
  • Scrum Master hourly rate = $55 per hour,
  • QA Engineer hourly rate = $55 per hour.

*Note that the hourly rates may vary based on platform and country. $60 is a typical hourly rate in Eastern Europe. To learn more, read the article about mobile app development costs.

The total cost of Uber-like app development (including everything from UX/UI Design to Quality Assurance)

The costs presented below are based on:

  • the above assumptions
  • the estimated number of hours needed for developing all app’s features components, listed above.
Hours (low case)
Hours (high case)
Passenger app (iOS + Android) 1,314 2,074
Driver app (iOS + Android) 1,352 2,132
Admin panel 350 500
Backend 2,500 3,200
UX/UI Design (all apps) 540 600
Quality Assurance (all apps + backend) 525 735
Scrum Master 908 1,276
Cost (low case) Cost (high case)
Passenger app (iOS + Android) $78,840 $124,440
Driver app (iOS + Android) $81,120 $127,920
Admin panel $21,000 $30,000
Backend $150,000 $192,000
UX/UI Design (all apps) $32,400 $36,000
Quality Assurance (all apps + backend) $28,875 $40,425
Scrum Master $49,962 $70,175
SUM $442,197  $620,960

Summarizing: The entire process of developing an application like Uber will cost you ~ $442,000 – $621,000 (MVP version).

Everything that matters most is included in this price. UX / UI Design, Passenger app for iOS and Android, Driver app for iOS and Android, Admin Panel, Backend development, Quality Assurance securing all applications and the backend, and the work of the Scrum Master who will make the development process smooth and effective.

The time needed to develop an Uber-like app

The entire ride-sharing app design & development process will take ~ 5 – 7 months (MVP version).

Please note, that the above data is indicative. We can estimate your project for free.

How much Uber-like app cost in 2021

Best tech stack for a taxi app like Uber

The key choice in building an Uber-like app is the Map and Navigation SDK. At first glance, Google Maps is the obvious choice. However, Google Maps may sometimes present legal problems or lack accurate maps for certain countries. In our recent project, we used Mapbox because it is an open-source tool with great documentation and an SDK that uses Open Street Maps.

The second most important thing is choosing the right architecture. We must remember that the main functionality of the application – the map – needs to be visible on most screens. In our opinion, such an application should be based on a Single-Activity Architecture. You can use ViewModels with a Navigation component, for example, or make your own custom solution where everything is based on views (in our Uber-like project, we chose the second option). This means that a few views are closed in a larger view (screen). A screen can be understood as a fragment.

We also have to consider Dependency Injection. For our project, we chose Dagger 2 by Google because it’s the most scalable solution and the best one in terms of speed. Due to the fact that our architecture was a proprietary solution, we also used Assisted Injection by Square.

Also, it’s important to pick tools that are native to iOS and Android due to the optimization of the app size and its speed. Choosing common technologies is important, too. For example, you can pick Firebase Push Notification for push notifications, so that the backend has to integrate with only the one common service, which significantly reduces implementation times.

Sample tech stack for GPS navigation app and Uber-like app:

iOS app Android app
Language Swift 5.1 Kotlin
Analytics Firebase Firebase
Push notifications Firebase Firebase
Crash reporting Firebase Crashlytics Firebase Crashlytics
Networking Moya OkHttp + Retrofit
Maps MapBox MapBox
Database Toolkit GRDB Room
Local map server GCDWebServer Mock Web Server
Continuous Integration Bitrise Bitrise
Architecture MVP+Coordinators Flow MVI + Inflation-inject
Unit Tests Quick, Nimble, Snapshot Testing, Sourcery KoTest, JUnit, AndroidXTest
Security Keychain, CocoapodsKeys Encrypted Shared Preferences
LayoutSDK SnapKit Native, ConstraintLayout
UI Toolkit Native Material

Backend

Runtime Node.js
Language Typescript
Web application framework Express
Tests Mocha, Chai, Supertest
Application deployment AWS Elastic Beanstalk
Database (addressing data) MySQL
Database (user’s data) DynamoDB
IaC (Infrastructure as a code) Terraform
Continuous Integration Semaphore CI
Documentation, Acceptance tests Postman

Droids On Roids’ experience in the ride-sharing app development

We have experience in developing an Uber-like application whose name we cannot disclose due to NDA restrictions. It enables 24-hour-per-day, an on-demand connection between passengers and drivers, working on both Android and iOS. What’s more, we have already realized another relevant app – a GPS navigation app called Makani – check out the Makani app case study.

I appreciate the communicative collaboration among their team – and with us – on a personal level. What’s more, I highly value their astounding organizational skills and scheduling abilities.

Droids On Roids generously provided advice, suggestions, and expertise in their field of work for the benefit of our project, assuring us that it would not only be executed but also further developed and improved.

Ahmed Photo 1

Ahmed Alkaloush
CTO, Lamah Technologies

We have developed over 130 app ideas for clients from around the world, including the UK, US, Saudi Arabia, Norway, and Germany. Get in touch with us if you want real experts in the field to build you a great ride-sharing app.

About the authors

Jacek Czerski

Jacek Czerski

Android Developer

Bartosz Krajka

Bartosz Krajka

Web Developer

Magdalena Zygmunt

Magdalena Zygmunt

Scrum Master

Scrum Master for 3 years with the PSM I certificate. Magda loves her work because of its unpredictability and absolute lack of boredom. In her spare time, she learns French and plays the drums.