Одна версия кода, один бэкенд, 600 приложений. Как белорусы из Onde помогли такси-сервисам разделаться с Uber

14 августа 2019, 09:05

Белорусская компания Onde разработала решение, которое позволило онлайн-такси сервисам в разных странах отобрать долю рынка у Uber и других конкурентов.

Платформа Onde

Это SaaS-решение, которое включает в себя мобильное приложение (Android, iOS), диспетчерскую панель и облачное хранилище данных. Клиенты Onde получают приложение под уникальным брендом. Каждому клиенту предоставляют поддержку 24/7, обновление и маркетинг как дополнительный сервис. Регистрация на платформе — по телефону или смс-коду. Система поддерживает более 50-ти языков.

  • В App Store и Google Play сейчас доступно более 600 активных приложений (разработанных Onde) для водителей и пассажиров.
  • Платформой Onde пользуются более 100 тысяч активных водителей и 1,3 млн пассажиров в 75 странах мира.
  • За год количество заказов через платформу выросло в 5 раз — с 2 до 10 миллионов в месяц.
  • Клиенты компании уже запустили и другие типы сервисов: эвакуаторы, вызов плотника, сантехника, врача на дом, медицинское такси. В перспективе Onde хочет стать платформой для любых оn-demand сервисов.

Главным архитектурным решением, позволившим стартапу взлететь, в Onde считают доведённый до максимума процент переиспользования кода. В ближайших планах — полностью перевести систему на Kotlin и произвести реворк архитектуры сервера.

В интервью dev.by разработчики рассказали, как Onde из простого приложения для заказа такси превратился в глобальный сервис и почему в Африке и Азии перспектив больше, чем в Европе.

Уволился в среду, а в четверг начал стартап

— История Onde началась в июле 2011 года, — рассказывает СТО компании Игорь Зубчёнок. — На тот момент я работал в аутсорсинговой компании и писал программы под Windows Mobile. Но интерес к телефонам на этой системе уже затухал, несмотря на весь пиар, и клиент в итоге закрыл проект. В компании возник вопрос, что со мной делать дальше. Клиент много платил за мою работу, и я получал очень хорошую зарплату. Я был готов остаться работать только на прежних финансовых условиях, но компания уже не могла себе этого позволить. Для меня это был хороший повод, чтобы рискнуть всё бросить и начать свой стартап. Вот так 7 июня 2011 года я проснулся безработным и решил взяться за разработку мобильного приложения для вызова такси. Уже через неделю появился какой-то прототип приложения. Помню, мы с женой Аней бегали вокруг дома, тестировали его. В Google Maps тогда ещё не было шеринга локейшенов. 

Над приложением я поработал около трёх месяцев, привлёк к проекту друзей. Но понял, что в таком составе не хватает экспертизы. Ближе к зиме у меня появился партнёр Илья Атрашкевич. У него был опыт в области GPS-мониторинга. Параллельно Илья начал заниматься командой. Именно он переманил из Дании Женю (Евгений Сусло, СЕО Onde — прим. dev.by).

— На тот момент я жил в Скандинавии уже около шести лет, — вспоминает Евгений. — Успел закончить университет в Швеции (Lunds University, MSc in Computer Science and Efficient Algorithms) по специальности разработка эффективных алгоритмов, работал в Дании системным аналитиком в крупной компании Maersk. Но интереснее было заниматься разными проектами. Например, одним из проектов после моего ухода с основной работы был сервис Noromance — аналог Tinder до его появления. Правда, проект так и не развился. Мой партнёр переехал в другой город, а с разработчиками на удалёнке было сложно взаимодействовать. Пришлось опять пойти на работу, что меня не радовало.

В какой-то момент со мной связался Илья. Я c удовольствием подключился, мы встретились с командой на конференции в Амстердаме, обкатали идею, получили фидбек. 

Я оставил работу в Дании и вернулся в Беларусь. Думал, что ненадолго, на год. Тогда у нас не было долгосрочного планирования. Никто не знал, во что превратится проект.

«Белорусские службы такси убеждали нас, что люди привыкли звонить»

Ещё до появления первых клиентов у команды было понимание, что надо делать глобальный продукт и не фокусироваться на местном рынке. Но встал вопрос финансирования: для запуска своего сервиса в каждой конкретной локации требовались внушительные инвестиции.

— С деньгами инвесторов проект мог развиваться иначе. Но я считал, что привлекать инвесторов имело смысл при наличии команды в каждом конкретном регионе запуска. В итоге решили, что сфокусируемся на разработке технологии, а заказчики, используя наш софт, будут сами запускать сервисы-аналоги Uber на своих рынках, — поясняет Игорь.

Публичная версия Android-приложения для водителя и пассажира появилась в январе 2013 года. Сначала компания называлась TaxiStartup. Первым клиентом белорусских разработчиков стало «Cowboy Taxi» из Канады «с небольшим автомобильным парком и сайтом «привет из 90-х».

— Изначально было две модели подписки, — вспоминает Евгений. Дешёвая стоила 99 долларов в месяц плюс 5-20 долларов за водителя. Компании работали не на брендированных, а на наших дефолтных приложениях. Дорогая подписка уже на брендированные приложения под каждого клиента стоила 300 долларов в месяц плюс 5-20 долларов за каждого водителя. Но в итоге мы отказались от такой модели монетизации.

Клиенты, которые заказывали брендированные приложения, платили за 1-2 месяца и уходили, инвестиции не окупались.

Поэтому вскоре мы добавили к месячной подписке единовременную плату за выпуск брендированных приложений.

Функционал приложения был ограничен. В первой версии не было даже расчёта стоимости поездки: водитель ехал по своему таксометру. Эту фичу разработчики добавили в первую очередь. Дальше важно было обеспечить пассажирам возможность связи с водителем по sms и телефону.

За 2013 год у компании появилось пять клиентов, в том числе один из Беларуси. Но при этом было много лидов. Других похожих сервисов на рынке фактически не было. Сайт компании был на первых строчках в Google по запросам типа «Apps Like Uber».

— База лидов росла в основном за счёт такси-компаний, и они были готовы платить за сервис. Правда, не везде. Изначально мы позиционировали продукт на существующие такси-компании и хотели оптимизировать их работу в Беларуси. Но службы такси не понимали, зачем им что-то менять. Нас убеждали, что приложение не будет популярным, так как люди привыкли звонить. Они поняли, как ошибались, уже через три-четыре года, когда Uber начал отбирать у них бизнес, — вспоминает CEO Onde.

Как это сделано. «Новая фича разрабатывается на трёх платформах и в три раза быстрее»

— Все понимали, что рынки разные, и каждый сервис захочет свой набор фичей. Это значит, что для каждой компании надо создавать отдельное приложение, и встал вопрос реализации,— отмечает Евгений.

Первый вариант — разделить код. «Но у нас уже был опыт использования множества версий кода, и все понимали, что это путь в никуда». В итоге команда решила, что должна быть одна версия кода и один бэкенд.

 — Писать поменьше кода и побольше его использовать — самое главное архитектурное решение, — уверен lead backend developer Артем Шабан. У Оnde есть большая кодовая база, которая используется одновременно для клиентов и в бэкенде.


— Мы не делаем копии системы под каждого отдельного клиента, а создаём одну для всех и продаем как уникальный White Label (брендированный) продукт по подписке. Дальше мы развиваем не десять разных продуктов, а один, поэтому расходы сокращаются в разы, а клиенты всегда получают приложения и систему последних версий, — отмечает Артём.

Новая фича разрабатывается сразу на трёх платформах (Android, iOS, Web) и в три раза быстрее. Есть общий модуль, написанный на Java, и UI-часть для iOS, Web и Android, т. е. они просто транслируют общий код. Такой подход имеет огромные плюсы, констатирует Артём. Приложения получаются нативные, работают как написанные на одном языке, «а кода нужно писать вдвое меньше и багов в разы меньше».

Недавно компания внедрила брокер сообщений Apache Pulsar. Это позволило в полной мере реализовать архитектурный подход.

— Для обеспечения пересылки координат водителей и пассажиров необходима связь в реальном времени и без задержек между сотнями тысяч клиентов и водителей. С технической стороны для нашего случая это более грамотное решение, чем Kafka (сейчас считается эталоном), так как позволяет создавать сотни тысяч топиков, — поясняет Игорь.

Один Java модуль используется как бекенде, так и на всех клиентах, включая не только Android, но также и iOS и Web.

— Модуль содержит общие реализации протокола и другой логики. Так же есть отдельные Java модули для клиента, водителя, оператора, которые транслируются и используются в iOS, Android и Web. Они содержат всю логику приложений, представляя общую кодовую базу для нативных приложений. Всё, что можно написать на Java — написано на Java. В нативных приложениях реализован лишь тонкий слой UI и обертки вокруг нативных сервисов.

«Новые фичи все клиенты получают автоматически, даже если за разработку заплатил кто-то один»

В App Store и Google Play сейчас доступно более 600 активных приложений (разработанных Onde) для водителей и пассажиров на Android и iOS платформах. Все приложения обновляются автоматически в режиме реального времени.

— Мы целенаправленно сделали ставку на автоматический апдейт. Если приложения не обновляются полгода, то умирают. На этом, кстати, сломались некоторые конкуренты, — отмечает Евгений.

Новые фичи все клиенты получают автоматически, даже если за разработку заплатил кто-то один под свои потребности. Таким образом, например, для всех клиентов появилась возможность предзаказа и оплаты за проезд кредитными картами.


Кроме мобильных приложений, у платформы Onde есть диспетчерская онлайн-система для Web. Она позволяет диспетчеру создавать и отслеживать заказы, мониторить зоны повышенного спроса, движение водителя и пассажира. Своим сервисом компании могут управлять в админке.

Монетизация

Onde экспериментировала с разными бизнес-моделями, в итоге остановилась на Revenue Share. Ежемесячно заказчики платят 2-4% от оборота. Также компания ввела единоразовый платеж за разработку приложения: 7,5, 15 и 45 тысяч долларов в зависимости от тарифного плана, в которые включены маркетинговые пакеты.

— Самый дешёвый тарифный план включает App Store оптимизацию, два других — ещё и продвижение, — поясняет Head of Product Growth Анна Лозицкая. — Например, в самый дорогой маркетинговый пакет входит помощь по запуску проекта, создание медиа-контента, формирование концепции позиционирования, обеспечение пассажирского трафика. Мы помогаем компаниям правильно оценить, сколько на начальном этапе им нужно водителей и пассажиров, чтобы занять определённую долю на рынке при наличии конкурентов.

Плюсы развивающихся рынков. «В Азии есть крупный игрок — Grab с оценкой в $30 млрд. Это не помешало PassApp (наш клиент в Камбодже) его обойти»

Клиентская база Onde уже насчитывает 200 компаний в 75 странах мира. На платформе зарегистрировано более 500 тысяч водителей, из них больше 100 тысяч активных, которые принимали хотя бы один заказ в месяц. За прошедший год количество активных водителей выросло в 3,5 раза, количество заказов — в пять раз до 10 миллионов в месяц. Количество активных пользователей — пассажиров превышает 1,3 миллиона человек.

— Сегодня мы начали больше фокусироваться не на существующих такси-компаниях, а на стартапах с потенциалом роста в большие компании. Наши целевые рынки — страны Латинской Америки, Африки, Ближнего Востока и отдельные страны Азии.

Например, в Африке еще некоторое время назад не было доступа к интернету. Сегодня технологии беспроводного интернета становятся дешевле, развивается 3G, люди покупают дешевые смартфоны за 20 долларов, получают доступ в интернет и ко всем онлайн-сервисам. И этот рынок быстро набирает обороты, — отмечает Евгений.

По его словам, на развивающихся рынках новые сервисы строятся с нуля, а не перекраивают рынок. Например, чтобы в Европе запустить приложение онлайн-заказа такси, придётся разбираться с такси-ассоциациями, юнионами и следовать местным строгим законам. Это убивает весь профит такого бизнеса.

На развивающихся рынках такой проблемы нет, потому что часто такие сервисы — это единственная опция.

— Показательный пример — Судан. Там нет общественного транспорта и ограниченное количество личного транспорта, так как это дорого. Tirhal, наш клиент в Судане, стал самым популярным сервисом для среднего класса с базой в 30 тысяч водителей. 

Многие клиенты Onde успешно конкурируют на местных рынках с Uber и другими гигантами.

— В Азии есть крупный игрок — Grab, который оценивается в 30 млрд долларов. Но это не помешало PassApp (наш клиент в Камбодже) его обойти. В Саудовской Аравии еще один наш клиент Kaiian является лидером несмотря на присутствие Uber и Careem — крупнейшего игрока на Ближнем Востоке в сфере пассажирских перевозок, в марте этого года его купил Uber за 3 млрд долларов, — отмечает Евгений.

Впрочем, развивающиеся рынки имеют свои особенности, время от времени мешающие Onde продвигаться.

— В Африке случаются военные перевороты, один из них произошёл относительно недавно в Судане. В результате в стране на полторы недели отключили интернет, и наш сервис все это время не работал. Похожая ситуация с отключением интернета была в Эфиопии.

Перевести систему на Kotlin

Сейчас команда Onde проверяет идею полностью перевести систему на Kotlin, используя Kotlin Native для iOS и Kotlin JS для Web приложений, вместо аналогичных компиляторов для Java. В планах — также произвести реворк архитектуры сервера: разбить на модули и настроить общение между ними. Это обеспечит больше стабильности и корректности работы системы, поможет решить проблему с синхронизацией.

На данный момент основной фокус Onde — это пассажирские перевозки.

— Но клиенты компании уже запустили и другие типы сервисов: эвакуаторы, вызов плотника, сантехника, врача на дом, — отмечает Евгений. — Есть например, медицинское такси. Контакт с водителями и медцентрами осуществляется через нашу платформу. В перспективе хотим стать платформой для любых оn-demand сервисов, как, например, доставка еды.

По теме
Все материалы по теме
подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение