Картографическое приложение Galileo закачивают в смартфон участники ралли-марафона «Дакар», капитаны судов и пилоты коммерческих авиакомпаний. Команда разработчиков любит свой проект настолько, что даже от поступающих предложений инвесторов отказывается и считает, что «лучше десятки тысяч счастливых пользователей, чем миллионы — просто довольных». При этом число активных пользователей переваливает за 100 тысяч в месяц.
dev.by пообщался с основателем и разработчиком сервиса Евгением Бодуновым и узнал, как из сырого хобби-проекта, «сделанного на коленке», Galileo превратился в мечту путешественника, грибника, рыбака и фаната исторической реконструкции.
Соль в том, чтобы сохранять историю путешествий
Разработчик сервиса Евгений Бодунов рассказывает, что изначально Galileo был его маленьким «хобби-проектом». Семь лет назад, работая менеджером мобильного направления в Oxagile, он решил сосредоточиться на том, что было интересно лично ему — офлайн-картах для путешествий:
— Мне хотелось попробовать что-то новое, да и карты, которые встроила в свои устройства компания Apple, были хуже некуда. Минск был представлен в виде «бублика»: там была только кольцевая дорога и, может быть, проспект Независимости — и всё.
К тому моменту уже существовали Google-карты, «но они не умели работать офлайн», вспоминает Евгений. Между тем, в этот же период набирал активность проект OpenStreetMap. И молодой человек «решил сделать простое приложение, которое позволит повседневно использовать карты OpenStreetMap —офлайн-решение, которое даст возможность сохранять историю перемещений».
Приложение «было ещё сырым», признаётся Евгений Бодунов, но он «не постеснялся выпустить его в AppStore» — и увидел, что Galileo начали скачивать.
— Рейтинги у первой версии были не очень. Пользователи ругались, что «продукт сделан на коленке». Но были и такие, кто говорил: «Ребята, это здорово! Как раз то, что нам надо — простое, эффективно работающее решение, которое позволяет использовать OpenStreetMap офлайн».
Основная идея Galileo— не столько городская навигация, как у Google: «Вся соль в том, чтобы сохранять историю путешествий». Приложение позволяет не только записывать, загружать и просматривать на карте GPS-треки своих передвижений, но и даёт информацию о пройденном расстоянии, времени в пути и даже позволяет фиксировать скорость передвижений.
Также разработчики предусмотрели для пользователей возможность отмечать интересные места на картах: готовясь к поездке, их можно «обойти» и отметить для себя разными метками. А после — делиться с друзьями.
Сегодня команда намерена сфокусироваться на офлайн-навигации.
— Мы хотим сделать так, чтобы пользователь мог спланировать поездку по Европе, составить маршрут, который будет вести его по интересным ему местам, и сохранить. Путешественник будет просыпаться утром, сверяться со своим сохранённым маршрутом, и говорить: едем дальше! Это то, чего Google не может сделать.
Galileo — не типичный стартап-проект, на который «наскребли по сусекам»
Разработчик сервиса рассказывает, что около полугода он работал над проектом один. Но в какой-то момент времени Galileo начал приносить деньги, и Евгений решил уволиться с работы, чтобы заниматься только своим проектом — «тем более, это было очень интересно».
Сначала Бодунов привлёк к работе над приложением свою жену Юлию — бизнес-аналитика по профессии, а затем лучшего друга Аркадия: «У нас много интересных задач, потому что мы сами их себе придумываем — давай к нам», — сказал тогда Евгений.
— Долгое время это был маленький проект на троих. Однако задач становилось всё больше, к выходу готовилась Android-версия — и мы не успевали со всем справляться. Тогда два года назад решили: надо расширяться. Тем более, что пользователям нравился Galileo — мы уже далеко ушли от той первой простой версии, «сделанной на коленке».
Сегодня в команде, кроме Евгения, ещё 3 человека: Android- и iOS-разработчики, а также тестировщик.
Бодунов признаётся: Galileo — «не типичный стартап-проект, на который «наскребли по сусекам», и теперь, пока деньги не кончились, необходимо поднять инвестиции. Проект существует на те средства, которые сам же зарабатывает почти с первого дня. Команда отказывается от предложений инвесторов, чьё видение не совпадает с их собственной позицией.
— Для текущих темпов разработки внешние инвестиции не нужны. К тому же, если деньги нужны для быстрого роста, их можно взять в банке, — комментирует разработчик. — А ценность инвестиций для нас не только в деньгах, но и в советах, а также большом опыте инвестора, найти такого — совсем непросто.
Фреймворк GLMap: офлайн-карты для других приложений
Команда несколько лет откладывала запуск Android-версии Galileo.
— В какой-то момент, когда мы всё-таки решили сделать приложение для Android, мы поняли: чтобы не писать всё с нуля, какую-то большую часть приложения нужно вынести из Galileo и сделать общей — и использовать снова под Android. И раз мы всё равно будем заниматься такой кропотливой работой, подумали мы, почему бы не сделать офлайн-карты и для других приложений.
К тому же нам писали разработчики: «Ребята, клёвые карты, мы хотим их встроить их в своё приложение. Как нам это сделать?» А мы долго отвечали: пока никак. Это был отличный повод! Мы переделали ядро с картами, весь рендер — и потратили чуть больше времени, чтобы сделать их отдельный компонент — GLMap.
Первым клиентом, который интегрировал фреймворк GLMap, стал американский стартап goTenna — известные производители «гаджетов, которые превращают телефон в рацию».
— Они работали над оффлайн-приложеним, которое даёт пользователю возможность отправиться туда, где нет ни сотовой сети, ни Wi-Fi, лишь только GPS. И им нужны были карты, работающие в таком режиме. goTenna были нашими первыми бета-пользователями: они давали фидбэк и помогали улучшить интерфейс для разработчиков — привести API GLMap к цельному виду.
Следующий проект команда делала совместно с сообществом рыболовов Fishing club.
— Им не просто нужны были оффлайн-карты, они пришли с задачей — показать на наших картах свой слой данных. Ребята сделали карту глубин белорусских озёр и искали возможность интегрировать данные с сервисом, чтобы рыбаки видели основные стоянки вокруг озёр, могли обмениваться метками — словом, нечто вроде соцсети для рыболовов.
Команде также работала с белорусами, которые делали карту общественного транспорта столицы.
— У многих, как оказалось, нет проблем с картографической подложкой, но они хотят отобразить на офлайн-картах какие-то сложные данные, поэтому на основе фреймворка GLMap было разработано несколько решений такого рода.
«Карты Google и Apple так не могут, Mapbox — с ограничениями»
На основе GLMap «можно даже сделать второй Galileo»: команда даёт все инструменты для этого — такой же поиск, такую же навигацию.
Разговор сам собою уходит в это русло. У Евгения на конкуренцию очень широкий взгляд:
— На этом рынке достаточно места, — уверен он. — Если ты всё время оглядываешься на своих конкурентов, тебе кажется, что их много и они повсюду. Но как только ты начинаешь делать по-настоящему качественный продукт, то их становится не так уж и много. Поэтому мы стараемся меньше оглядываться и больше фокусироваться на качестве своего продукта.
Бодунов полагает, что лучше десятки тысяч счастливых пользователей, чем миллионы — просто довольных, оценивающих приложение на «четвёрочку». И гордится, что ему часто пишут: «Здравствуйте, ребята! Мы с вами переписывались 5 лет назад, я всё ещё пользуюсь и очень доволен вашим приложением. Смотрите, вот тут можно сделать лучше». Или: «Пожалуйста, сделайте для меня такую-то функцию».
— Так же и с фреймворками для карт в приложении, — продолжает Евгений. — На рынке в настоящий момент только крупные игроки: есть Google, есть Apple, есть MapBox — 3 крупные компании, карты которых встроены в 95% приложений. И есть мы. И основное наше отличие от других карт — в том, что мы продолжаем делать такой компонент, который работает офлайн. Apple-карты так не могут, встроенные Google-карты так не могут. Mapbox так может, но с большими ограничениями.
В приложение можно загрузить хоть карты Генштаба СССР
До некоторых вариантов, как можно использовать Galileo, не додумалась даже команда разработки. Об этом они узнают в основном из писем в техподдержку. Среди всего прочего Galileo используют пилоты — в том числе коммерческих авиакомпаний — для записи своих полётов: как запасной источник навигации.
— Конечно, автопилоты в самолётах уже настроены на полёт по какому-то заданному маршруту — Galileo для этого не нужен. Но специалистам интересно сохранять «истории»: где они летели, с какой скоростью, сколько кругов сделали над аэропортом — и они этим пользуются. Узнав об этом, я попросил ребят прислать фото — и они не отказали: в кабине самолёта я увидел iPad, закреплённый на приборной панели, и на экране — наш Galileo.
Евгений рассказывает, что приложение также используют авторы блогов о путешествиях, любители яхтенного спорта, гонщики ралли-марафонов, таких как «Дакар».
— Кроме карт OpenStreetMap в Galileo можно использовать любые карты, которые пользователь сам загрузит в приложение. Хоть карты Генштаба СССР: их сейчас можно найти цифровом виде, и некоторые ребята путешествуют с Galileo по бездорожью, и фиксируют с его помощью свой маршрут.
Читая присланные сообщения, Евгений делает выводы, что своё применение Galileo находят охотники и грибники: последние отмечают на картах грибные места — и в следующий раз идут по «проторённому» маршруту. Есть среди пользователей приложения участники поисково-спасательных отрядов — таких как отряд «Ангел», и даже миротворцы ООН. Для них сделали военный тип координат — MGRS, который позволяет быстро передавать нужный квадрат на местности.
А ещё Galileo активно пользуются велосипедисты. И для них команда в ближайшем будущем намерена внедрить такое новшество, как построение велосипедных маршрутов с учётом ландшафта.
— Идею нам подкинули пользователи из Японии: они попросили сделать для них такую функцию, которая позволит им объезжать холмы. Но также они захотели и обратную штуку — такую, которая будет ввести их по самым крутым холмам. Это для тех, кто любит трудности.
Каждый байт бинарного формата рассматривали буквально под лупой
Евгений отмечает: у его команды всегда была страсть к оптимизации.
— Когда можно было писать на C++, мы писали только на C++. Ускоряли всё, что только можно: каждый байт бинарного формата офлайн-карт рассматривали буквально «под лупой», пытаясь сделать решение компактным. И в этом было много удовольствия.
Возможно, на это тратится больше времени, чем когда ты идёшь «по проторённой дорожке», но только таким образом можно изобрести что-то новое. Так мы сделали свой бинарный формат для карт, а также собственный рендер векторных карт на OpenGL. Были чуть ли не первыми: до этого то же самое делали только Google, Apple — и всё. Первые версии MapsMe были с растровым рендером.
Евгений не скрывает: команда гордится тем, как удалось «полностью собрать рендер текста» — над этой задачей разработчики бились долго, несколько раз переделывали. Перепробовав разные подходы, ребята узнали всё о том, как рисуются шрифты, на уровне разработчиков шрифтов.
— Простой пример: обычно буквы нарисованы так, чтобы стоять на некотором расстоянии друг от друга, — это красиво. Но когда в слове встречается две латинские «f», шрифты смотрят на эту пару и заменяют в общую лигатуру — в склеенное «ff». Но ведь таких пар очень много! И когда ты, познавая все тонкости, реализуешь их в общее решение, — все только выигрывают. И фраза, написанная по-арабски, смотрится так, словно человек написал её от руки.
Текущий текстовый компонент, по словам автора проекта, «ни в чём не уступает решениям от Google и Apple — и всё это потому, что мы любим сложные задачи».
«Вот на что пошли деньги налогоплательщиков!»: Galileo и его тёзка —спутник
— Интересно было, когда в декабре 2016 года состоялся запуск европейской спутниковой системы Galileo: об этом много говорили в новостях — и пользователи начали «серфить», что это. Зашли в App Store и Play Market — а там наше приложение.
В тот день количество скачиваний нашего Galileo перевалило за 100 тысяч. Все интересовались: а приложение уже использует спутниковую систему навигации? И отмечали: «Так вот на что пошли деньги налогоплательщиков!» Мы отвечали: «Ребята, нет — мы к ним никак не относимся!» Я действительно и подумать не мог, что у нашего Galileo может быть тёзка.
Этот случай не был единственным, когда к приложению было привлечено столько внимания пользователей.
— Как-то Galileo предложили стать приложением дня. Мы подписались на эту акцию, и за день нас скачало 800 тысяч человек, а потом ещё и ещё — это было очень серьёзное испытание. Пришлось помогать пользователям, потому что они пришли в приложение, а наши сервера не справлялись. За день мы раздали несколько десятков терабайт трафика со своими картами.
Фото: Андрей Давыдчик
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.