How to Build an App like Uber: Development Guide to a Million Dollar Project
Uber was the first company which successfully implemented both sharing economy and on-demand business model and boarded the entire world. The destabilization of the traditional taxi industry doesn’t prevent it from considering itself as a tech company, rather than a taxi firm. It makes sense: exemplary service and effective technical solutions are quite the things that led Uber to such stunning success.
Since the company’s foundation in 2009, it attracted a large number of followers in various business areas from courier delivery to the hotel industry. However in 2018 Uber still remains the most famous ride-sharing service and one of the most valuable startups in the world.
Take a look at the statistics:
How Uber Works
Before we proceed further, it won’t do any harm to recall how Uber service works.
Such plan of action defines the functional core of the apps and technologies used.
A basic Uber-like app should be able to request and accept a ride, send notifications, identifies the location and conduct payments in real time. We will take a closer look at these exact features in short order.
The first thing that needs to be taken into consideration when launching your project is that Uber is much more than just an app. Service with such concept requires 4 components:
- mobile app for passengers;
- mobile app for drivers;
- admin panel to control and manage operating processes on the administrator or owner side;
- server to keep the rides history, tariffs, user and driver bases, etc.
It shouldn’t be left unmentioned that Uber has its own web portal as well. Yet its main function is informative, whereas the 4 elements above are essential for service being operational.
Now let us consider the core functionality and technologies of Uber.
- iOS: in iOS mobile apps the device’s location and its orientation are detected with help of Core Location framework. Core Location also tracks the device movement and sends location events to the server at intervals decided upon by the developers.
Another framework - MapKit - is used to calculate the most optimal routes taking into account the current local traffic conditions and make the directions available to the device’s mapping software.
- Android: the similar functions are available thanks to Google’s Location APIs which provide intelligible solutions for tracking user’s location, movement, and environment up to the destination point.
Routes and the shortest distance possible are calculated using Google Maps Android API.
On top of that, on both platforms, Uber is integrated with Google Maps. Now all the users can choose the fare, locate a car on the map or contact a driver without opening the official Uber app.
There are 3 standard cases when Uber sends notifications:
- the driver accepts a request for a ride;
- the driver is less than a minute away;
- the request is canceled.
Notifications can be sent via push or SMS messages or emails. The decision on the manner of notification is made by the user himself.
- iOS: Uber uses Apple Push Notifications Service (APNs) to send push notifications to iOS-based devices.
- Android: users of Android apps receive notifications with help of Google Cloud Messaging.
SMS messages with status change information are powered up with Twilio AP platform both for iOS, and Android apps.
Important: Push and SMS notifications have their own technical nuances. If the device is switched off or outside the service area, there is a big risk that user will receive a Push-message with a delay or won’t receive it at all. Moreover, unlike Google’s Cloud Messaging service, APNs makes it impossible to check whether the notification was received by the user or not. In this respect, SMS messages are more stable. In case of any problems with message delivery, your SMS provider will inform you immediately.
As was said, Uber can send emails. Most of these letters are receipts, support replies and other service notices which user can’t unsubscribe from. The emails are powered up with SendGrid API.
Integration with the Payment System
Although cash payment is available now in some cities, Uber still focuses on the non-cash transactions. And as the company continues to grow globally the issues concerning the payment security, geographic footprint, and different currencies support become more sensitive.
For these reasons Uber partners with payment giant PayPal and its division Braintree that made it possible to pay for the ride via PayPal account or a card directly from the mobile app on any platform. The payments security is expressly linked to the technical solutions of the chosen systems, which have already gained the reputation of the reliable providers whose services meet the latest PCI DSS information security standards.
Additionally, another PayPal’s service is used by Uber - Card.io that uses a camera of a device to scan the payment card and read the numbers.
Uber-like App Development: Team, Time, Cost
The Uber-like project requires a team of at least 5 experts.
The number of developers may vary depending on your priority and other factors: application’s extended functionality, deadlines, potential risks, etc.
It’s the same thing for the project cost. The core driver here is the experience, rate, and a number of developers.
When we were taking part in the development of taxi service Cabdo which was built following Uber model, the decision was made to create a single hybrid app on React Native except for the two native ones. Such an approach allowed us to speed up the development process and reduce the number of developers involved in the project. As for the cost, our client paid per hour: developer’s rate in our company starts from $35.
According to our solution architects, the implementation of the Uber-like project takes 6690 to 7160 man-hours on average.
In this article, we have provided insight into how Uber technologically works and share our experience in developing similar projects. As practice shows, the success of Uber-like apps is explained not so much by its core technical solutions, as by the very idea behind it. Build like Uber - suggest a new solution to an old problem and Umbrella IT will help you to translate it into reality.