Хотите дальше читать devby? 📝
Support us

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

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

 

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

Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
Signal назначил президентом организаторшу протестов в Google
Signal назначил президентом организаторшу протестов в Google
Signal назначил президентом организаторшу протестов в Google
3 комментария
В США разработали мессенджер для общения под водой
В США разработали мессенджер для общения под водой
В США разработали мессенджер для общения под водой
Google запустила SDK для создания приложений, которые будут работать на разных устройствах и ОС
Google запустила SDK для создания приложений, которые будут работать на разных устройствах и ОС
Google запустила SDK для создания приложений, которые будут работать на разных устройствах и ОС
Flo ответила на критику Mozilla о защите приватности
Flo ответила на критику Mozilla о защите приватности
Flo ответила на критику Mozilla о защите приватности
2 комментария

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.