Создаем приложение с механикой Uber: руководство по разработке проекта на миллион долларов
Uber стал первым, кто применил бизнес-модель совместного потребления и экономику по требованию и взял на абордаж целый мир. Дестабилизация традиционного рынка такси не мешает Uber позиционировать себя прежде всего как технологическую, а не транспортную компанию. И это вполне оправданно – образцовый сервис и эффективные технические решения – именно то, что привело компанию к оглушительному успеху.

С момента основания компании в 2009 году у нее появилось множество последователей в различных сферах бизнеса: от курьерской доставки до гостиничной индустрии. Но даже в 2018 году Uber остается самым известным райд-шеринговым сервисом и одним из самых дорогих стартапов в мире.
Посмотрите на статистику:

Впечатляет? Umbrella IT расскажет, какой стек технологий находится под капотом Uber, во сколько обойдется разработка приложений под ключ и как набрать сильную команду для создания собственного Uber-like проекта.
Как работает сервис Uber
Прежде всего будет не лишним напомнить, как функционирует сервис Uber.

Такой алгоритм действий определяет функциональное ядро и используемые приложением технологии.
Стандартное uber-like приложение должно уметь размещать и принимать запрос на поездку, отправлять уведомления, определять геолокацию и совершать платежи в реальном времени. Именно эти функции мы рассмотрим подробнее чуть позже.
Первое, что необходимо иметь в виду при запуске своего проекта: Uber – это больше, чем просто приложение. Для работы сервиса с подобной концепцией, необходимы 4 компонента:
- мобильное приложение для пассажиров;
- мобильное приложение для водителей;
- панель администратора для контроля и управления рабочими процессами со стороны администратора/ов и собственника;
- cервер, на котором будут храниться истории поездок, тарифы, база пользователей и водителей и многое другое.
Нельзя не упомянуть, что у Uber есть официальный веб-портал. Однако функция сайта, скорее – информационная, в то время как 4 перечисленных компонента жизненно необходимы для работы сервиса.
А теперь пришло время рассмотреть основные функции и технологии Uber.
Геолокация
Геолокация – основополагающая технология для Uber. Набор инструментов для получения геолокационных данных зависит от выбранной платформы приложения – Uber доступен в App Store и Google Play.

- iOS: в мобильных приложениях на iOS за определение местоположения устройства и его ориентации в пространстве отвечает фреймворк Core Location. Core Location также отслеживает перемещения устройства и отправляет на сервер данные об изменении локации с периодичностью, определенной разработчиком заранее.
Для построения оптимального маршрута с учетом дорожной ситуации и его отображения на картах устройства, используется фреймворк MapKit.
- Android: эти же функции доступны благодаря Google’s Location APIs, которые предлагают интеллектуальные решения для определения местонахождения и окружения устройства пользователя и отслеживания его перемещений вплоть до пункта назначения.
Для прокладывания маршрута и вычисления самой короткой дистанции Uber использует Google Maps Android API.
Ко всему прочему, на обеих платформах Uber интегрирован с Google Maps. Теперь пользователи могут выбрать тариф, отследить водителя на карте, а также связаться с ним без необходимости открывать официальное приложение Uber.
Уведомления
Обычно Uber отправляет уведомления в трех случаях:
- водитель принимает заказ пассажира;
- водитель находится в минуте езды от места посадки пассажира;
- заказ отменен.

Уведомления могут отправляться в формате push- и SMS-сообщений, а также электронных писем. Решение о том, какой способ оповещения выбрать, принимает сам пользователь.
Push-уведомления
- iOS: для передачи уведомлений на устройства Apple использует Apple Push Notifications Service (APNs).
- Android: аналогичные функции для приложений на базе на Android выполняются с помощью Google Cloud Messaging.
SMS-cообщения
Отправка SMS об изменении статуса заказа обеспечивается благодаря использованию платформы Twillio AP как на iOS, так и на Android.
Важно: Push- и SMS-уведомления имеют свои технические нюансы. Если устройство пользователя выключено или недоступно, высок риск, что Push-сообщение придет с задержкой, или не придет вообще. При этом, APNs, в отличие от Google’s Cloud Messaging service, не позволяет точно отследить, было ли уведомление получено пользователем. В этом смысле SMS-сообщения более стабильны. Ваш SMS-провайдер оперативно проинформирует вас в случае возникновения каких-либо проблем с доставкой.
Uber может присылать e-mail – как правило, это квитанции, ответы службы поддержки и другие уведомления об использовании сервиса, рассылку которых отключить нельзя. Письма отправляются при помощи SendGrid API.
Интеграция с платежными системами

Несмотря на то, что в некоторых городах уже доступна опция оплаты поездки наличными, Uber по-прежнему держит курс на безналичный расчет. Одной из главных трудностей, связанной с глобальным ростом компании, стал вопрос о безопасности платежей, географии присутствия и поддержке различных видов валюты.
По этим причинам Uber сотрудничает с платежным гигантом PayPal и его дочерним сервисом Braintree, позволяющими оплачивать поездку в приложении на любой платформе через привязанный аккаунт PayPal или банковскую карту. Безопасность платежей напрямую связана с техническими решениями выбранных систем, которые давно зарекомендовали себя как надежные провайдеры, чьи услуги соответствуют последним стандартам безопасности PCI DSS.
Дополнительно Uber использует еще один сервис PayPal – Card.io, позволяющий распознавать данные карты на любом устройстве, оснащенном камерой.

Разработка uber-like приложения: команда, сроки, стоимость
Для разработки такого проекта как Uber, необходима команда, состоящая минимум из 5-6 специалистов.

Число специалистов может варьироваться в зависимости от различных факторов и приоритетов проекта: расширенная функциональность приложения, сроки выполнения, потенциальные риски и многое другое.
То же самое со стоимостью проекта: определяющий фактор здесь – опыт, ставка, и число разработчиков.
Когда мы принимали участие в разработке сервиса для заказа такси Cabdo, построенного по модели Uber, было принято решение создать одно гибридное приложение на React Native вместо двух нативных, что позволило ускорить время разработки и сократить число задействованных специалистов. При этом, как и во всех наших проектах, клиент оплачивал выполненную работу по факту в часах: ставка нашего разработчика начинается от $35.
По оценке наших архитекторов IT-решений, создание Uber-проекта занимает в среднем от 6690 до 7160 человеко-часов:

В этой статье мы описали основные функции приложений Uber и поделились своим опытом разработки подобных проектов. Как показывает практика, успех Uber-like приложений объясняется не столько техническими решениями, лежащими в их основе, сколько идеями, которые стоят за ними. Будьте как Uber – предложите новое решение старой проблемы – а Umbrella IT поможет вам воплотить его в реальность.