Can you improve the quality of an existing service and offer it on demand? If so, you might be the next Uber.
But to develop an app like Uber and get it into the Apple App Store or the Google Play Store isn't easy. Taking a large piece of the ridesharing market requires that you offer frictionless access, great experiences for drivers and riders, and a strong brand.
No wonder one of the first people Travis Kalanick wanted to hire after he got his big idea for Uber was a product manager (as we can see from this tweet).
This article can’t provide you with a product manager, but it can explain what has propelled Uber’s growth and what technology powers Uber’s mobile apps.
How Uber launched: the go-to-market strategy
Uber officially launched in 2010. Six months later they had around 6,000 users and had already provided about 20,000 rides.
[This is what Uber's website looked like in 2010. Image source: Business Insider]
To kickstart Uber, Uber’s co-founders needed to attract both drivers and riders simultaneously. In other words, they needed to tackle the chicken-or-egg problem.
People in tech communities in San Francisco are always interested in new tools. They also take every chance they get to improve their quality of life. Uber launched in San Francisco for this reason. They managed to spread by word of mouth among the tech community. How did they do it? By hosting and sponsoring tech events and giving participants free rides to these events.
Soon, early Uber adopters, who didn’t like the quality of traditional taxi services, took to blogs and social media to tell their friends about this cool new app.
Today, to encourage new riders to try out the service, Uber hands out 50 percent discounts for the first ride. With an initial discount, new riders are more likely to become long-term customers.
Uber had a brilliant go-to-market strategy. But the thing about brilliant strategies like Uber’s is that you can’t repeat them. If you were to develop an app like Uber and launch it in San Francisco with a focus on tech communities, your app would most likely go unnoticed. You need a different story.
How Uber works: the technology stack
Let’s briefly review how Uber works (even though I’m pretty sure you know). First, you let Uber know that you need a ride. Then, Uber asks you where you are. Next, Uber finds a nearby driver and tells you when this driver will arrive to pick you up. After your ride is over, Uber asks you how it went. You rate the ride and the cost is automatically charged to your credit card.
So here’s the question for you: what technologies does Uber rely on?
Uber’s co-founders called Uber a location-based startup from day one. To create Uber, Garrett Camp and Travis Kalanick needed to understand the specifics of iOS and Android geolocation features.
You’re a bit luckier than they were back in 2010. Technology has progressed,and it has become way easier to get information about the specifics of location features. You can actually get this information right here, in this article. I hope it will help you figure out how to make your own app like Uber.
Taxi-booking apps rely on the following mapping and geolocation features:
1) Identifying a device’s location
The Uber app for iOS uses the Core Location framework to locate a user’s device. The CoreLocation framework provides classes and protocols to configure and schedule location delivery and send location events to the server. The CoreLocation framework also lets Uber define geographic regions and monitor a device’s movements as it crosses defined boundaries.
Geolocation for the Android version of the Uber app was implemented using Google’s Location APIs. They can intelligently manage underlying location technology while meeting various development needs when implementing location-based features.
2) Providing driving directions
To display point-to-point directions on a map within the app, developers of the Uber app for iOS used MapKit. Registering the app as a routing app then makes directions available to the Maps app and all other mapping software on a user’s device.
Android routes and directions are made possible by the Google Maps Android API.
3) Integrating with mapping software
Uber didn’t go it alone with maps and did what you would expect any location-based service to do – implemented Google Maps for both iPhone and Android versions of their app. Now, Google Maps offers integration with Uber.
But Google Maps isn’t the only service that Uber uses. To avoid paying Google for access to their solutions, Uber buys mapping technology companies to solve their logistics issues. And why wouldn’t they? After all, Uber wants to be the global king of “local logistics and delivery of people and things.”
Geolocation is indeed the most important technology in Uber’s technology stack. But you might be interested in other functionalities as well if you want to know how to build an app like Uber.
[Map in Uber. Image source: AppleInsider]
Push Notifications and SMS
After you order a ride, Uber sends you a couple of notifications: the first when a driver accepts your request, and the second when the driver is less than a minute away. They also notify you when a ride has been cancelled for some reason.
You can receive these messages as SMS or push notifications (you can set your preferred method in the settings).
You’ve probably heard of Uber’s surge pricing, which has been vigorously criticized. Charging a premium for a ride (during peak hours, inclement weather, holidays), the company argues, it gets more drivers on the road and reduces demand from potential passengers.
This business model, however, didn’t always let a customer know when surge pricing ended. Today, Uber users are notified when the price multiplier is turned off.
Uber text messages are powered by the Twilio telecommunications provider. To implement push notifications in the iOS app, Uber must have used Apple Push Notifications Service, and for the Android app they must have used Google Cloud Messaging (GCM).
NOTE: The Apple Push Notification Service doesn’t guarantee delivery of push notifications. Messages are queued in such a way that if a user’s device is offline or unavailable, not all push notifications will necessarily be received. From a developer’s standpoint, APNS is uni-directional. This means that there is no way to know if a user’s device has received a notification, or, if it has been received, when it was received. On the other hand, an SMS will always be delivered. If it isn’t delivered successfully, your SMS provider will inform you that your message failed. Unlike APNS, Google’s Cloud Messaging service allows you to monitor the delivery of push notifications.
Uber uses a cashless system. You can pay via debit or credit card, or use a promo code. This removes any human-to-human cash transfers from the equation, including tips. (Uber takes 25 percent of a driver’s fare, which makes for a rather profitable business model.)
When accepting card payments, there are certain requirements that companies must comply with. In the US, these are known as PCI requirements. The Payment Card Industry Data Security Standards (PCI DSS) is a set of requirements designed to ensure that all companies that process, store, or transmit credit card information maintain a secure environment. In effect, this applies to any merchant that has a Merchant ID (MID).
Uber chose to partner with Braintree, one of the leaders in the mobile payment market, to accept card payments. Just for the record, we should mention another great payment system, Stripe, which provides its payment services to Uber’s competitor Lyft and to other popular on-demand economy startups such as Postmates and Instacart.
Uber also uses Braintree's service for credit card scanning on iOS. The service allows you to input credit card information by simply holding up your credit card in front of your phone’s camera. The app ‘sees’ the card, reads the numbers, and enters the information for you. With Android, though, you have to manually enter credit card data to link a card to your Uber account.
[How Braintree payments work. Image source: Medium]
In addition, Braintree's system has Uber integration, meaning that customers can pay for the taxi service directly from their PayPal accounts (though this is not available globally in all of Uber’s markets). You can also split your fare with your friends directly in the app.
How much money does Uber make?
Since we’re talking about how to build Uber, we think you should know how much money this business earns.
You’ve probably heard that Uber has had some troubles becoming profitable in the U.S. Only this year did the company start to turn a profit. Uber takes a 25 percent commision per ride, but what it earns in profits is only $ 0.19 per ride on average. The rest goes to interest, taxes, and equity-based compensation for employees.
Most of the money earned by Uber goes to antifraud efforts, credit-card processing, customer support, marketing, and software development. Even though Uber’s $66 billion valuation makes the company seem like a huge money bag, it doesn’t make actually make that much profit.
How much does it cost to build Uber?
When you develop an app like Uber, you actually develop two apps: an app for riders and an app for drivers. How much does it cost to develop an app like Uber? You would need to pay for the following services:
iOS and Android native app development
According to our estimates of similar projects, the time it takes to build a taxi-hailing app, including an app for drivers and an app for riders, is somewhere near 5000 hours. The cost depends on your service provider’s hourly rates, which vary greatly from $20 per hour to $150 per hour.
For more information about app development costs, check out our articles with infographics: how much does it costs of to develop and design an app. Also, you can read our article How much does it cost to develop an on-demand delivery app?