34 заметки с тегом

mobile

Главное решение

Сейчас читаю очередного Кори Доктороу и его мысли насчёт схлопывания платформ из-за рукомашества. Мол, «мы сделаем всё тип-топ, не обращайте внимания, верьте нам, крутым пацанам». Кори напоминает о «пакте Улисса»: создайте себе ограничения до того, как появятся соблазны. И тут я вспомнил о главном решении в Maps.Me.

Руководители Maps.Me приняли много решений, которые определили это приложение. Они правильно выбрали конкурента (гуглокарты), правильно не стали покупать данные, воспользовались поглощением, чтобы сделать приложение бесплатным (и, следовательно, доступным каждому). Придумали монетизационную модель, которая не мешала, а помогала пользователям: гостиницы booking.com, работавшие и без интернета, приносили львиную часть прибыли. Работая там, я слабо понимал, насколько деморализующими могли быть альтернативы.

Но о главном решении мне рассказали ещё на собеседовании, и его я помогал воплощать. Это публикация всего кода приложения под открытой лицензией. И не только — вообще, перевод разработки в публичную сферу, работу в пул-реквестах, которые каждый мог прочитать. Тогда мне, только пришедшему из нескольких лет кувыркания в открытом сообществе, не было известно, насколько редкая эта практика. Насколько... Честно, я не могу вспомнить даже пять продуктов с аналогичной историей. Обычно всё идёт вспять.

Объяснять, зачем нужно открывать код, было довольно просто. Чтобы сообщество участвовало в разработке (хаха). Чтобы доказать свою готовность работать с другими. Маркетинговый повод (мало кто заметил, на самом деле). Важным было не навредить продукту — и я уверял: над Maps.Me работают полтора десятка крутых инженеров, и чтобы кому-то «увести» продукт, понадобится создать такую же команду. Мы ничего не теряем и становимся более благонадёжными.

Mail.Ru сделал пару пресс-релизов, потом мы помогли сделать страницу opensource.mail.ru, которую с гордостью возглавляли. Со временем на ней нас заменила база данных Tarantool, а потом и она отъехала. Мы продолжали кодить, в гитхаб сыпались сотни тикетов от пользователей, но нас это не смущало: мы привыкли работать без баг-трекера. Несколько людей сделали форки для своих задач, в сторах появлялись фейковые копии с платными частями, но MAU рос, Maps.Me был главным и лучшим.

А потом давление мейла заработать деньги стало слишком большим, и команда начала сыпаться. CEO начал дёргаться. Приложение начало плющить. Mail.Ru не понял, зачем им дальше его тащить, и они продали приложение корейским криптанам. Это ощущалось, как поражение.

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

Да, чтобы конкурировать со старым Maps.Me, понадобилась бы большая команда. Чтобы конкурировать с новым, который в момент помешательства даже заменил офлайн-карты на библиотеку от Mapbox, достаточно просто не делать хуже. Organic Maps живёт и догоняет Maps.Me по пользователям не потому, что маркетологи покупают установки и рекламируют приложение, а потому что пользователи советуют установить эти карты всем своим знакомым.

Более того, они развиваются! Над приложением работают несколько сотрудников, плюс им помогают пул-реквестами остальные. Только в прошлом году в Organic Maps добавили импорт GPX, линейку, стиль для походов, и даже сборку для Android Auto. По мне, это невероятно, что в отсутствие какого-либо финансирования, разработчики не только делают новые штуки, но ещё и терпят странные требования и ругань пользователей в телеграме.

Это чудо стало возможным, в первую очередь, благодаря главному решению — открыть исходный код. Не знаю, кто из основателей Maps.Me это придумал, — Юра, Алекс, Витя, они все могли. Не уверен, что они ожидали, что из этого выйдет что-то путное. Но заложив основу открытости, они, как оказалось, сделали приложение бессмертным, как OpenStreetMap бессмертен по той же самой причине. Как AMDmi3 комментировал девять лет назад, недостаточно обещаний сделать всё хорошо, важны юридически связывающие действия.

Организация НКО — обычный вариант такого связывания, в этом случае венчурные инвестиции невозможны, и все финансы открыты. Можно принять юридически значимую хартию. Или ограничить себя технически: например, как Mastodon, в который сбежали технически подкованные люди из твитера, не может контролировать какая-то одна компания. Открытая лицензия — очень хороший вариант для приложений и данных. Она делает обещание вечности реальным, потому что отвязывает от людей и юридических лиц. Жаль, что увидеть, как новые или устоявшиеся проекты выбирают открытость, удаётся всё реже.

 4 комментария   9 мес   maps.me   mobile

Вы полюбите микромаппинг

Сегодня я рад показать свой новый редактор OpenStreetMap. Он называется Every Door и работает на айфонах и андроидах. Его идею я рассказал прошлым летом на State of the Map, но начал писать лишь 22 октября. Последние полтора месяца тридцать человек сделали этим редактором под десять тысяч правок и помогли сделать его на порядок удобнее. Теперь я запускаю открытое тестирование.

На официальном сайте есть ссылки в TestFlight и Google Play, видеоролик про редактор и ответы на некоторые вопросы на русском языке.

У меня одно чувство — наконец-то. Так или иначе я рассказывал о том, что OSM требуется нечто подобное, с 2013 года. Делал неудачную попытку с OpenSurveyor. С надеждой следил за инициативами крупных компаний с оплачиваемыми разработчиками — все угасли. За это время у нас появился ослепительный StreetComplete, чему я рад, но он не для меня.

Every Door — не StreetComplete. Он не для каждого, у кого выдалась минутка, чтобы нажать две кнопки в телефоне. Этот редактор — для увлечённых картографов. Для той, кто идёт по торговому центру на двести магазинов и думает, что было бы классно добавить их все на карту. Для того, кто выгуливая ребёнка, мечтает замапить каждую песочницу и качель отдельно. Для «маньяков», готовых отметить каждый фонарь, скамейку и каждое дерево в парке. Это полноценный редактор, с который можно забыть про фотомаппинг и треки.

Установите Every Door сегодня и помогите сделать его ещё лучше. Открытое тестирование продлится где-то до конца июня, и за это время мы поменяем интерфейс, отутюжим поля ввода и навернём ещё много эвристик внутри. И попутно замапим сотни тысяч магазинов. Всё для того, чтобы пользоваться редактором было увлекательно и наша карта росла как на дрожжах.

Кнопки не нужны

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

Современные интерактивные карты выглядят гораздо проще классических ГИС: нет панели с полусотней слоёв, нет трёх рядов кнопок управления и панели состояния с рядом загадочных чисел. Мы постепенно избавлялись от лишнего, и теперь карту загораживают только строка поиска и несколько кнопок. К сожалению, для хорошего интерфейса недостаточно убрать лишнее: нужно убрать, а затем переизобрести всё остальное.

Кнопки изменения масштаба появились от свойств тайловой схемы вкупе с линукс-мышлением. Тайлы, из которых состоит карта, устроены просто: на нулевом масштабе один тайл, на первом — четыре (2×2), на втором — шестнадцать (4×4) и так далее, каждый квадратик делится пополам в обоих измерениях. Линукс-мышление требует максимальной конфигурируемости: вдруг пользователь захочет посмотреть на карту конкретно на 13 масштабе, а мы ему не дадим? Поэтому развитие карт идёт увеличением количества уровней масштаба как вглубь, так и вширь, добавлением промежуточных уровней и переходом на векторные тайлы с непрерывным масштабированием. Больше контроля пользователю!

Работа с интерактивной картой похожа на управление автомобилем с ручной коробкой передач. Ты дёргаешь рычаг при езде, довёл действия до автоматизма и понимаешь, зачем это делаешь и чем одна передача отличается от другой. Когда приходит дизайнер и предлагает убрать рычаг, первой реакцией будет от него отмахнуться. Но теперь мы ездим на машинах с двумя педалями вместо трёх с рычагом, и всё меньше людей готовы работать частью механизма. То же и с кнопками масштабирования в интерактивных картах: они упрощают жизнь разработчикам javascript-библиотек и усложняют всем остальным, от пользователей до создателей карт.

Эти кнопки — бич веб-картографии. Как не устаёт напоминать Сергей Голубев, при каждом нажатии на «+» вы видите новую карту, с собственным картостилем и свойствами. На сайте osm.org у нас 20 (двадцать) различных картостилей. Каждое изменение стиля osm-carto затрагивает примерно половину из них, поэтому неудивительно, что дискуссии в репозитории обильно иллюстрированы и могут затягиваться. Но если подумать, действительно ли пользователю нужны все эти карты? Вне компьютера хватает трёх-четырёх: атласа мира, атласа области и карты города. Когда масштабов мало, больше времени остаётся на полировку оформления каждого. А точная настройка интерфейса становится излишней.

Изменить масштаб можно многими способами, в зависимости от устройства и сайта:

  • кнопками плюс-минус на экране;
  • теми же кнопками с зажатым shift для большей скорости;
  • ползунком масштабирования;
  • колёсиком мыши;
  • двойным кликом левой кнопкой;
  • растягиванием прямоугольника мышью с зажатым shift;
  • кнопками «+» и «-» на клавиатуре;
  • перетягиванием двумя пальцами на тачпаде или экране;
  • щипком или расщипком на экране;
  • дважды тыкаешь пальцем, второй раз не отпуская удерживаешь и тянешь вниз или вверх.

Почему так много? Потому что у каждого из этих способов есть недостатки: от сложности обнаружения (последний пункт от Сергея Синицына удивил многих в чате) и отсутствия технической возможности (клавиатура есть не у всех) до неудобства, неточности или низкой скорости отклика.

Но пользователи обычно приходят к вам не для того, чтобы масштабировать карту. Им все эти способы нафиг не нужны. Они хотят посмотреть на данные или понять взаимоотношение географических объектов. Если остановиться и подумать, что нужно пользователю, может оказаться, что либо не нужна интерактивность целиком, либо не нужно масштабирование, либо не нужны двадцать карт и сложные способы переключения между ними.

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

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

Адаптивные карты

Во время конференции YaC я восхитился примером адаптивных карт от яндекса, и читатели телеграма спросили, что это такое. Если коротко, это карты, которые адаптируются к контексту. Загвоздка в том, что под этим понимают и как нас ограничивают технологии. В публичной картографии две догмы:

  • равноугольная проекция и отсутствие искажений: проекция меркатора мгновенно считывается как ошибка, а фрагмент всегда может быть встроен в полную карту;
  • неизменность слоёв: если на карте видно кафе, то на ней будут все кафе, если видна улица — будут все улицы.

Другими словами, несмотря на общепризнанную смерть громоздких интерфейсов ГИС для массовых приложений, работа с картой в любых публичных сайтах и приложениях до сих пор сводится к масштабированию и переключению слоёв, лишь с более удобным управлением.

От этих ограничений много веков назад ушла инфографика: показывать статистику по регионам неудобно, когда Красноярский край в тысячу раз больше Санкт-Петербурга. Поэтому регионы показывают одинаковыми кубиками. С другой стороны, площадь и расстояние — тоже индикаторы, отсюда популярность в визуализациях уродливых картограмм (правильнее — анаморфоз, подсказывают в комментариях), где нашу страну сжимают в длинную кляксу. Интерактивной инфографике до такого кощунства ещё далеко, она ограничена теми же догмами.

Печатные карты часто искажают, адаптируя для человека. Очевидный пример — атлас трассы М10, где она вытянута в идеально прямую линию, или нарисованные от руки схемы проезда. Что люди создают инстинктивно, алгоритмы едва могут воспроизвести: в 2010 году исследователи из Microsoft, Adobe и колледжа Беркли опубликовали статью про автоматическую генерацию схем проезда (открывающая иллюстрация — из неё). Важность этой публикации затмевает только безразличие, с которым к нему отнеслись все картографы. Печать карты маршрута сейчас — всё ещё печать фрагмента привычной карты с подсвеченными линиями.

Во время движения по маршруту водитель отвлекается на экран смартфона на долю секунды. За это время ему нужно выдать максимум релевантной информации. Поэтому карты для навигатора делать сложнее, чем обычные тайловые слои. Например, в этой заметке сотрудник Mapbox рассказывает, как правильно подписывать улицы, чтобы водитель видел только те названия, что могут ему пригодиться. Чтобы сделать карту в навигаторе лучше, нужно учитывать контекст.

Контекстом в публичной картографии является viewport, окно вывода. Экран мобильного устройства или прямоугольник на веб-странице. «Контекстный поиск» — поиск в окне. И так далее. Поэтому когда Миша Высоковский начал рассказывать о новых функциях яндекс-навигатора, он использовал термин длиннее: «гиперконтекстность». Это отображение карты с учётом контекста, включающего не только состояние, но и намерения пользователя. И это — будущее карт.

На фрагментах слайдов выше отображены только те заведения, которые находятся на поворотах линии маршрута и могут помочь водителю сориентироваться. А на развязке справа подсвечены все выезды из него, а не только стрелка по нужному выезду. Так водитель лучше поймёт, куда не надо сворачивать. Всё это изменяет привычную карту и использует контекст, адаптируется к задачам пользователя. На слайдах мы увидели лучшую адаптивную карту и, кажется, первую в публичном приложении, доступном миллионам пользователей.

Такую карту не покажешь в виде тайлов на веб-сайте. Её с трудом можно сотворить в QGIS. Но теперь у нас есть векторные тайлы, которые содержат атрибутированную геометрию. Фильтровать их с учётом контекста, подсвечивать и искажать можно прямо на мобильном устройстве, учитывая показания разных датчиков. Будет увлекательно посмотреть, как сильно изменятся навигационные карты в погоне за максимальной информативностью для пользователя. Хорошо, что Яндекс сделал заметные шаги в направлении адаптивных карт, но хочется, чтобы потребители OpenStreetMap перехватили инициативу.

Снова иди, снова мапь

Единственный полнофункциональный редактор OpenStreetMap для iOS, аналог Vespucci, но приятнее на вид, обновился — спустя два с половиной года после прошлого релиза. Версию 1.5 (уже 1.5.2 после правки ошибок) приложения Go Map!! качайте в сторе. Из нового:

  • поддержка последних моделей iPhone;
  • заготовки тегов на вашем языке (но не остальной интерфейс);
  • можно увидеть и поправить теги на запретах поворота;
  • копирование и поворот объектов;
  • запись трека в фоне;
  • компас;
  • уведомления о неотправленных правках;
  • выбор сервера OpenStreetMap.

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

28 марта после долгого молчания разработчик Брайс Когсвелл появился в багтрекере и позакрывал кучу замечаний: «сделано». Пока он не пропал снова, попробуйте отредактировать карту на своём айфоне и напишите ему, если что не так.

2018   mobile   редакторы
Ранее Ctrl + ↓

Мнения, высказанные на этом сайте, отражают точку зрения лично автора сайта и ничью больше: ни его бывших или настоящих работодателей, ни семьи и знакомых.