How to make an app like Uber

Bart Cywiński

Business Development Director

 

Taxi rides, food delivery, education, babysitting, lifestyle – on-demand platforms and apps have revolutionized the services sector thanks to providing people with easy access to products or services. For a few years in a row, Uber is considered a leader in the market. And currently, we can notice a growing demand for Uber-like applications among business entrepreneurs around the globe. How possible is it to create a similar app?

 

What is the Uber app? How does it work?

 

The idea was born in 2008 when Uber founders were discussing the future of tech at a conference. 2 years later, Uber officially launched in San Francisco. In half a year, they had 6k users and provided roughly 20k rides, and the company is still growing all around the world. BBC reports show, Uber estimated worth is $90 billion as of April 2019. This proves the expeditious yet continuous growth of Uber as a ride-sharing and hailing provider. So for those who have a plan to build a cool mobile app, we advise following their example. Uber definitely has transformed the world due to more than 75 million active Uber riders across the world.

 

Uber is one of the companies that created the so-called Sharing Economy. Being an online peer-to-peer marketplace, this platform connects service providers with users who need a particular service. Other examples of peer-to-peer marketplaces are Airbnb or Fiverr. Uber mobile app which is available both for Android and iOS connects customers (or riders) with drivers in a couple of clicks and charges the user’s debit/credit card automatically. Based on availability, there is a choice of various levels of Uber service that can be chosen directly by the user:

 

  • UberX – standard and the most cost-efficient option

  • UberSUV or UberXL – can accommodate up to  6 passengers

  • UberSelect offers luxury sedans. Expect to pay a premium price, and accommodate up to 4 riders. Select cars are typically BMW, Mercedes, Audi, etc.

  • UberBLACK and UberBLACK SUV – Offer luxury rides in the original Uber black car service. Vehicles must have a black exterior.

  • UberPOOL, offered in some cities, allows you to share your ride with another person and split the cost.

 

Before you start creating a mobile app (for taxi booking, for example), you should consider not only the technologies and frameworks that have to be used. The first thing to think about is the list of benefits that passengers and drivers can take. Uber is positioned as customer-oriented due to providing a user-friendly app with a bunch of features. If you want to create the same, your application needs to be convenient, reliable and professional.

 

A classic uber-like app should be able to place and accept a trip request, send push-notifications and SMS, determine geolocation and be cashless by making payments in real-time. These functions will be discussed in the article later.

 

The first thing to keep in mind when starting up your project: Uber is more than just one app. It's the whole system that consists of 4 connected with each other components:

 
  • Mobile app for passengers;

  • Mobile app for drivers;

  • Admin panel for monitoring and managing work processes;

  • Analytics - including trip histories, fares, user and driver databases, and other information

 

Let’s analyze its user flow from the passenger and driver sides:

 

Passenger

Driver

  • Choose a destination point on an interactive map

  • Choose the type of Uber service - X, XL, Black, etc.

  • Accept the fare. The company is using a dynamic pricing system, and a final price is based on current demand and number of cars available

  • Wait for the nearest driver’s respond 

  • Take a ride and pay according to the pre-selected option

  • Rate the trip and leave tips (optional)

  • Approve passenger’s request

  • Get an instruction on how to get to a passenger

  • Pick up the passenger(s) and get a direction to the destination point

  • Rate a passenger and check own rating

  • Get the revenue from a trip

 

Customer App Features

The first version of Uber or their MVP which was called UberCab set out to connect users with drivers and accept payments. Now, Uber offers a wider variety of features, for example, live-tracking for drivers, fare splitting, far estimates, automatic card payments,  pre-booking and more. Here are the core features to create an app like Uber from the customer's point of view:

 
  • The easy registration process and profile editing. A user could log in via email or social media account, add bank cards or promo code(s) info or choose another preferable payment method.

  • Geolocation and routing. Geolocation is the basic feature that should be considered while developing an app like Uber. In general, GPS technology is used to detect someone’s location.  will discuss it in more detail below.

  • Push notifications. If this feature is not disabled by the user, It informs about the trip status, arrival time, driver and car details, and finishing a trip.

  • Ride cost estimation. The payment process seems more transparent because a user can check the estimated cost of the ride before booking. 

  • Contact and feedback. In addition to the feature that users can easily find a driver’s phone number on his/her profile, there are also some options to contact the driver directly from the Uber app - send a message, call the driver and, when the trip is finished, rate and review them. Moreover, the user can check the driver's rating before a car arrives.

  • Booking history. This allows the customers to access their previous booking history, change star rating, switch a payment method, and report an accident or a different issue.

  • Customer support. Uber provides 24/7 customer support to its users. It does not matter whether the user is on or off the road, customer support agents provide consistent assistance on demand. The help section is also available on the website.

 

Even that list is not full. Uber developers and managers are constantly adding new features allowing passengers to have more personalized trips:

  • Choosing a type of car (standard, SUV, premium)

  • Booking a ride for others

  • Splitting a fare with other passengers

  • Booking in advance

  • Multiple drop-offs - users can tap “Add a Stop” to select up to two extra stops, either before or during a ride. 

Driver App Features

Unlike a standard Uber app, one needs to pass the technical checks and to validate the driver's license to become a driver app user. After the procedures, the driver will have a right to have access to his/her personal app functions.

 Basic features of the driver app include:

  • Easy Registration /Log-in features

  • Estimated costs and the earnings tab. Driver Delivery Reports provide statistical information regarding trips and earnings on a regular basis.

  • Push notifications and trip alerts. In the same way as customers, drivers can receive alerts such as a new order, route details, payment info, and order updates.

  • Navigation and Route Optimization

  • Customer Support for drivers

  • Communicating with customers

  • Customer rating. It's the mutual process - passengers are rating their drivers and vice versa.

Technologies used to make an app like Uber

As was mentioned previously, a basic app (or your first MVP product) should allow users to request a trip, process payments automatically and use Google Maps API to determine locations. All of this requires third-party integrations and scalable backend infrastructure.

Geolocation and Mapping Software 

In order to locate a device, the Uber app uses the CoreLocation framework (for iOS apps) and Google’s Location APIs (for Android), however in React Native it’s possible out of the box. When the trip is started, Uber sends directions to both the driver and the passenger. To make it available Uber’s developers use MapKit for iOS and Google Maps Android API for Android. 

Payment processing

Since this service is providing a cashless system too, customers can use debit/credit card, PayPal, Google Pay, or Apple Pay to pay for trips. All of it is easy to use in React Native, which speeds up development in React Native for both Android and iOS. As a payment provider,  in February 2011 Uber chose Braintree for all of its international and US-based payments. Braintree processes payments in over 130 currencies around the world, so Uber's international passengers are able to pay in their local currencies. In addition, as Braintree claims, their encryption has also helped Uber reduce its PCI compliance costs by making sure all data is encrypted while sending between Uber and Braintree servers.  However, you may want to consider other payment gateway products for your product. The top competitors in Braintree's set are ChargeBee, PayPal, Stripe, Square, and others.

 

Push Notifications and SMS integration

 

The communication in Uber-like apps goes directly from one side (a passenger who's ordering a trip) to another (a driver who is accepting or declining it). The same is with trip updates:  a call center or customer support is not included in the process.

Uber text messages are processed by the Twilio telecommunications provider. To implement push notifications in the iOS app, we recommend to check more about Apple Push Notifications Service, and for Android - Cloud Messaging.

 

How to develop an app like Uber?

 

When you develop an app like Uber, from a user's perspective, you actually develop two separate apps: for passengers and for drivers. So, which processes are included in the development? For sure, you would need to consider the following services:

  • Prototyping, UI and UX Design

  • App development (iOS and Android, or cross-platform)

  • Backend development

  • Web development

  • Quality assurance and project-management

 

A set of features you are choosing to build an app like Uber is the main factor of its price. The development cost is ranging depending on the number of basic and advanced features you as a product owner would like to implement. The estimated time can take from 1500 to 5000 hours (depends on the project requirements), including a separate app for drivers and passengers. The time may be distributed as follows:

 

  • Prototyping and Design – 15%

  • App development – 40% 

  • Backend development – 20% 

  • Quality assurance and project-management tasks – 25%.

 

Based on Uber example, the following skills are required from the development team:

 

  • for the web development: JavaScript, React.js, Angular, Vue.js

  • for app development: React Native, Java, Objective-C, Kotlin, Swift

  • backend and business logic: PHP, Node.js, Python

  • databases: Redis, MongoDB, MySQL.

 

Even If you don't have an in-house development team, outsourcing can easily solve this. Collaborating with a software development studio makes it possible to meet any problems head-on, cut down operational costs, and reduce the amount of risk. Here you can get familiar with some of our successful projects.

 

Uber as a business model

 

Uber-like services can be applied not only in the ride-sharing sector.  Various business categories can implement the same approach, especially when:

 

  • Existing services work too slow and old-fashioned (food delivery, trip accommodation).

  • People need quick help with tasks they don't have time for it (babysitting, house-cleaning);

 

Even Uber has implemented its own model for in a different market segment and launched Uber Eats, a three-sided marketplace connecting a driver, a restaurant owner and a user with Uber Eats platform at the center. Uber Eats has grown from nearly 5% of the U.S. food delivery market in 2016 to a nearly 25% share in 2019.

This proves that the most important thing is to conduct market research, find your niche, and use Uber as an example of on-demand services leader.  At UIG we recommend starting with developing a Minimum Viable Product (MVP) instead of running a risky full-featured application from the very beginning. It would allow you to test your idea in the market and get the first customer feedback. What makes Uber so successful is the ability to change our imagination on how we think about technology and its operation.

 

Potential Development Time and cost

 

Based on the bare essential nature of the mobile MVP (the ‘must-have’ features), here’s what we estimate could look like in terms of time:

  • Prototyping, UI and UX design - from 250 hours

  • Mobile development - from 525 hours (less, if using React native framework)

  • Backend development - from 350 hours

  • Project Management and QA - from 375 hours. This is around 25% of development time, as the amount of testing is scalable to the amount of work produced.

Total: from 1,500 hours

Cost? It depends on the core feature list and can be estimated from $75 000 - if you choose the right development team!

Here we also would like to note that this is the number of man-hours which means that hiring additional people gets the work done faster (although there is a limit on how many people should be in a project - remember, too many cooks spoil the broth!) but doesn’t make it cheaper. If you are ready to translate the idea of your application into reality and evaluate the project in the first place, we are happy to discuss the details here.

 
Easter egg ;)