Разработали приложение, которое подбирает места и маршруты по интересам

  • iOS

  • Приложение

  • Бизнес

Интро

Подключились к разработке лайфстайл-приложения «иду». Реализовали алгоритм подбора мест на основе персональных рекомендаций и генерацию маршрутов.

01

Задача

Разработать лайфстайл-приложение с местами и маршрутами по интересам

Команда из «выжла» пришла с идеей приложения, которое предлагает места на основе интересов юзера. Дизайн-концепция уже была готова. От нас требовалось подключиться к проекту и помочь с технической реализацией визуальных решений. А самое главное — совместно разработать механизм, который бы безошибочно понимал пользователя.

02

Решение

Создали алгоритм, который анализирует пользовательские предпочтения

При входе в «иду» юзер отмечает, что ему нравится, а что нет. И сообщает, чем бы хотел заняться, например, сходить в бар или погулять. Алгоритм анализирует интересы и подбирает места. В результате происходит мэтч пользовательских ожиданий и параметров заведений. Это та самая магия, которая спрятана под капотом приложения.

Пользователю нужно просто сказать, что ему нравится. Всё остальное алгоритм возьмёт на себя

03

Дизайн

Провели техническое ревью дизайн-макетов

Концептуально визуальные решения были на команде из «выжла». Ребята продумали пользовательские сценарии и айдентику приложения. Подготовили нетиповой и при этом понятный дизайн с живыми эмоциональными маскотами.

Мы выступали в роли технических экспертов и ревьюили макеты. Совместно с ребятами из «выжла» обсуждали реализацию фич, анимаций и градиентов. Следили за тем, чтобы дизайн соответствовал требованиям iOS-платформы, а в итоговой версии приложения всё корректно отображалось и работало.

04

Разработка

Фишка «иду» — принцип подбора мест. Создали алгоритм, который всегда знает, что предложить

В «иду» есть баблы, с помощью которых пользователь сообщает, что ему нравится. Он может выбрать один бабл или несколько, например, «винтаж», «винные дегустации» и «искусство». Так алгоритм поймёт, что предлагать.

Алгоритм всегда знает, что предложить

Дальше юзер отмечает, чем он хочет заняться, например, «поесть» и «погулять». И указывает стартовую точку. Алгоритм подбирает подходящие места поблизости. Чтобы добавить заведение в маршрут, пользователь делает свайп вправо. Если вариант не заинтересовал — влево.

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

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

Спустя время интересы пользователя могут меняться — предусмотрели и это

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

Сделали так, чтобы у пользователя всегда был большой выбор мест

В «иду» мы выполнили дополнительную группировку интересов с помощью тегов. Она объединяет интересы по ассоциативному ряду. Если алгоритм не может подобрать для пользователя места напрямую, он использует дополнительные группы по тегам.

Например, юзер указал всего один интерес «авторская кухня» и бабл «погулять». Но мест, которые были бы связаны баблом «погулять» и интересом «авторская кухня», нет. Тогда мы смотрим, какие интересы в системе связаны тегами с «авторской кухней», и подбираем места.

В «иду» пользователи могут не только построить собственные маршруты, но и воспользоваться готовыми гидами

Реализовали удобную систему поиска

В «иду» мы используем поиск с автодополнением, когда при наборе текста в выпадающем списке показываются похожие результаты. Сложность реализации фичи заключалась в том, что места и гиды (готовые подборки мест от редакторов) предстояло искать и по тегам, и по названию. Чтобы быстро и корректно обрабатывать большое количество информации, развернули специальную поисковую систему Elasticsearch.

В «иду» используем поиск с автодополнением

Придумали систему, которая адаптирует текст под размер бабла

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

Баблы всегда отображаются корректно вне зависимости от того, что на них написано

Расширяем функциональность, чтобы пользователю не приходилось покидать приложение

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

05

Тестирование

Проводили тестирование в «полевых условиях»

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

Чтобы удостовериться, что всё работает корректно, наши QA-инженеры организовывали тестовые прогулки. Сначала по-настоящему — составляли маршрут из нескольких мест рядом с офисом и отправлялись к ним пешком. А затем делегировали эту задачу Xcode. С помощью эмулятора задавали геолокацию, имитировали хождение и оценивали, насколько корректно передаются данные.

Отлавливали все потенциальные проблемы до релиза

На «иду» мы достаточно часто выпускаем обновления. И за всё время существования приложения в App Store ни разу не столкнулись с серьёзными багами. Секрет в комплексном тестировании, которое помогает обнаружить все потенциальные проблемы и не допустить, чтобы с ними столкнулись реальные пользователи.

Заголовок

На проекте применяем функциональное, нефункциональное и смоук-тестирование. Следим, чтобы даже на специфичных девайсах не возникало ошибок. Для этого закупили в парк тестовых устройств iPhone SE — у него нестандартное разрешение экрана, и было важно убедиться, что контент отображается корректно. Параллельно внедряем инструменты для оптимизации и ускорения релизов. Например, для работы с базами данных используем DBeaver.

Максим Самошин

QA-инженер

06

Результат

Создали приложение, которое слышит пользователя и безошибочно подбирает для него места. А сейчас работаем над расширением функциональности

На текущий момент у «иду» 14 тысяч установок. Каждый месяц мы добавляем новые фичи. Балансируем между достижением бизнес-целей продукта и упрощением жизни юзеров.

Активно следим за ключевыми метриками приложения. Анализируем действия пользователей — как они собирают маршруты и доходят ли до конечной точки. Например, конверсия основной воронки от установки до открытия маршрута составляет 22%. TimeSpent — 8 минут. За это время человек как раз успевает совершить целевое действие и составить маршрут с крутыми местами по интересам.

Заголовок

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

Олеся Казначеева

Head of product

07

Команда

  • Руководитель проекта

    Алиса Долматова

  • Аналитика

    Глеб Гусько

  • iOS-команда

    Виктор Костин-Промысловский, Даниил Смирнов

  • Тестирование

    Максим Самошин

  • Дизайн

    Команда «выжла»

01

Сотрудничество

Контакты

0

Мы всегда рады сотрудничеству и новым проектам.

Опишите задачу, и мы с вами свяжемся.
Или напишите в Телеграм.

Давайте знакомиться!

ВыбратьОткуда вы о нас узнали
  • Рейтинги
  • Рекомендации
  • Конференции
  • Публикации
  • Соцсети
  • Другое

Нажимая «Отправить», вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности

Ваша заявка успешно отправлена

Мы все изучим и скоро выйдем на связь