What do you do when the idea for a mobile application has already ripened in you head? Unique and ideas are like rare diamonds. Technology is rapidly advancing, and there is a reasonable chance that the ingenious thought spinning around in your head has already been implemented.
Back in 2009 Garrett Camp and Travis Kalanick, entrepreneurs from San Francisco, founded a car service and called it Uber. Since then the taxi booking startup has grown rapidly into an international transportation network company.
Uber has expanded to 35 countries and more than 100 cities worldwide. And great ideas tend to be repeated. Just look at the latest buzz: an Estonian startup called Taxify closed a $100K seed round; Cabify, a competitor of Uber in Spain and Latin America that received $8M in Series A; a Berlin-based startup, Talixo, got backed recently. I recommend that you check out all of these services before you start building your own taxi booking app.
By the way, have you read our article about taxi-booking app development?
This time we’ll talk about the technology stack behind Uber.
The matter of geography. Location and maps
An application that provides delivery of any physical goods or services to a customer must deal with mapping. Taxi-booking apps tend to rely on the following mapping and geo-location features: (1) identifying a device’s location, (2) providing driving directions, (3) drawing/highlighting routes, and (4) integrating with other mapping software.
Uber technologies. Location
Without a doubt, it is necessary to be able to determine the current location of a customer using a taxi booking app. How does Uber accomplish this? The Uber iOS app uses the CoreLocation framework to geo-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. There are two ways to do this with the CoreLocation framework — geographical region monitoring and beacon region monitoring (using an iOS device’s onboard radio). They both can function in the background.
*iBeacon is an iOS technology that Apple calls “a new class of low-powered, low-cost transmitters that can notify nearby iOS devices of their presence.” A beacon region is an area defined by a device’s proximity to Bluetooth low-energy beacons (transmitters that use Bluetooth Low Energy 4.0 to broadcast signals that can be seen by compatible or smart devices).
NOTE: You can use the capabilities of iBeacon technology to generate alerts or provide other relevant information when a user enters or exits a beacon region (why not do some advertising of your car service?).
Read also: 7 things to learn about iBeacon and beacons
Geo-location 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 in implementing location features.
Routes and directions
In order to display point-to-point directions on a map within a taxi app, developers of the iOS Uber app used MapKit. Registering 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 with Google Maps Android API v2. This version has simplified route drawing, and is much simpler for a developer to use than were previous versions.
Uber didn’t go far with maps and did what you would expect any location-based service to do — implemented Google Maps for both iPhone and Android versions.
NOTE: Google Maps now offers integration with Uber.
Push Notifications. Do they even exist in the Uber technology stack?
You probably have heard of Uber surge pricing, which has been vigorously criticized. By charging a premium for a ride, the company argues (during peak hours, inclement weather, holidays) it gets more drivers on the road, and reduces demand from potential passengers. This business model, however, didn’t let a customer know when surge pricing ended. You can check out this article on Forbes that tells about an analogue to Uber technologies called Gett — a new NYC car-hailing app that offers a much more attractive pricing model.
Uber learned a lesson from surge pricing, and has made it more customer friendly. Now users get notified when the price multiplier is turned off.
To implement push notifications in the iOS app, Uber must have used Apple Push Notifications Service, and Google Cloud Messaging service (GCM) in the Android app. Read about the actual push notification implementation here.
In fact, the Uber car service relies on SMS (users log in to the app with their telephone numbers) to send notifications about a ride status. Probably there are certain UX and $ reasons not to use push notifications.
NOTE: The Apple Push Notification Service doesn’t guarantee delivery of push notifications. The messages are queued in a way that if a user’s device is offline or unavailable, all push notifications might not be received. From a developer’s standpoint, the APNS is uni-directional. This means that there is no way to know if a user’s device received a notification, or – if so – when it happened. On the other hand, an SMS will always be delivered. Otherwise, your SMS provider will inform you if a message failed. Unlike APNS, Google’s Cloud Messaging service allows you to monitor the delivery of push notifications.
Uber real-time text messages are powered by Twilio telecommunications provider. Messages are sent every time a driver accepts a request, when a driver is less than a minute away, and when a ride has been cancelled for some reason.
First, I’d like to say a few words about money: Uber’s business model is giving the company around $20M per week in global revenue.
Uber uses a cashless system. You pay via debit or credit card before your ride, or use a promo code. This removes any human-to-human cash transfers from the equation, including tips. (Uber takes 20% of a driver’s fare, which makes for a rather profitable business model.)
NOTE: If you want to pay your driver a tip, you are welcome to do that. With Uber Taxi, however, a 20% tip is automatically added to your fare.
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 Standard (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. PayPal bought Braintree in 2013 for $800 million to get a piece of the large mobile payments marketplace (Braintree makes $4 billion annually on mobile).
Uber also uses PayPal’s Card.io service for credit card scanning on iOS. Card.io 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.
In addition, PayPal’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.
Just for the record, we should mention another great payment system, Stripe, that is said to be even better that Braintree (according to Business Insider). It even swiped two of Braintree’s fast-growing customers and Uber competitors: the ride-sharing apps Lyft and Sidecar.
If you like business stories, here is an exciting narrative about the battle between Stripe and Braintree. If you're more of a technical person, here is our article where we compared Stripe and Braintree's SDKs.
Be vigilant about legal issues
You probably know that Uber has been accused of illegal taxicab operations in several jurisdictions. Officials within traditional taxi firms often complain that Uber is not regulated in the same way they are, even though the application provides the same taxi service. I tend to think that the reason for the Uber injunctions is taxi company resistance to increased competition.
In any case, ‘boring’ legal issues are important to take into consideration before launching a car service in any city.
The length of the route in the Uber app is calculated via smartphone GPS. This contradicts a claim that the Licensed Taxi Drivers Association (LTDA) made, saying Uber drivers are violating the law by calculating the price of taxi fares, or by using taxi meters.
Despite the legal challenges that traditional taxi companies continue to put forward, mobile cab booking services are rapidly expanding. This is a very profitable segment of the market. Perhaps there are still opportunities for mobile booking services in your local area?