«Минск был у Apple в виде «бублика». Как белорусы делают офлайн-карты для пилотов, гонщиков и спасателей

3 комментария
«Минск был у Apple в виде «бублика». Как белорусы делают офлайн-карты для пилотов, гонщиков и спасателей

Картографическое приложение 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 тысяч человек, а потом ещё и ещё — это было очень серьёзное испытание. Пришлось помогать пользователям, потому что они пришли в приложение, а наши сервера не справлялись. За день мы раздали несколько десятков терабайт трафика со своими картами.

 

Фото: Андрей Давыдчик

Читайте также

Facebook запустила конкурента Pinterest, а с заменой Tinder не повезло
Facebook запустила конкурента Pinterest, а с заменой Tinder не повезло

Facebook запустила конкурента Pinterest, а с заменой Tinder не повезло

Пользователи Apple скоро смогут покупать одно приложение для всех платформ
Пользователи Apple скоро смогут покупать одно приложение для всех платформ

Пользователи Apple скоро смогут покупать одно приложение для всех платформ

Энтузиаст создал «пробку» на Google Картах при помощи 99 смартфонов в тележке
Энтузиаст создал «пробку» на Google Картах при помощи 99 смартфонов в тележке

Энтузиаст создал «пробку» на Google Картах при помощи 99 смартфонов в тележке

Microsoft запустила функцию звонков с компьютера через Your Phone
Microsoft запустила функцию звонков с компьютера через Your Phone

Microsoft запустила функцию звонков с компьютера через Your Phone

Обсуждение

3

Тэма падабенства з MapsMe не раскрыта

1

> Первые версии MapsMe были с растровым рендером
Нет. С самой первой версии в тогда ещё MapsWithMe был векторный рендеринг. Просто кэш тайлов был растровый.

Вадим Николаев
Вадим Николаев ios developer в iTechArt Group
4

Использую GLMap в своем pet-проекте - очень удобно, активная обратная связь, а главное - размер osm-карты - районный центр в Беларуси - 1 мб, mapbox - 57 мб (карл!) (оффлайн карты). Успехов ребятам!