Помогли приложению GorodPay достичь отметки в миллион пользователей

  • Android

  • Backend

  • iOS

  • Транспорт

Интро

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

GorodPay_обложка статьи
01

Интро

GorodPay — многофункциональная платформа, которая упрощает взаимодействие с городским транспортом

Заказчик обратился к нам в 2022 году с уже готовой MVP-версией приложения. От нас требовалось быстро подключиться к проекту и помочь с внедрением новых функций. Тогда мы уложились в пять месяцев и оперативно перезапустили продукт. А затем продолжили работать над его развитием, чтобы сделать ещё полезнее для бизнеса и пользователей.

02

Задача

Нарастить аудиторию приложения и повысить вовлечённость

GorodPay — не просто приложение, которое упрощает взаимодействие с общественным транспортом. Это ещё и площадка, которая выступает генератором лидов для «Газпромбанка» и его дочерних продуктов. Поэтому было стратегически важно увеличивать базу пользователей и работать над их активностью: повышать MAU, retention rate и другие метрики.

03

Решение

Расширили географию приложения и наладили бесперебойный запуск функций

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

04

Аналитика

Изучили, как работают транспортные карты разных регионов

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

Проанализировали пользовательское поведение и выявили best practice

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

Отзывы приложение GorodPay

Внедряли изменения с опорой на обратную связь пользователей и результаты исследований

Согласовали релизы с маркетинговыми активностями

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

Программы лояльности Город Пей

Релизы согласовывали с маркетинговыми активностями

05

Дизайн

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

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

Модули Gorodpay

«Коробочка, куда всё помещается»

Переработали механизм добавления транспортных карт

Раньше, чтобы добавить транспортную карту, пользователю нужно было сначала указать соответствующий регион. В обновленной версии приложения мы реализовали витрину. Теперь все транспортные карты отображаются сразу вне зависимости от региона.

Транспортные карты GorodPay

Переработали механизм добавления транспортных карт

Сократили количество сценариев и облегчили оплату проезда

Несмотря на то, что в каждом регионе свои правила пополнения транспортных карт, мы постарались максимально унифицировать сценарии оплаты. В первую очередь думали об удобстве пользователей. Частая история, когда человек живёт в Москве, но по работе регулярно приезжает в Санкт-Петербург или наоборот. Каждый раз переключаться между разными сценариями оплаты в рамках одного приложения сложно и неудобно. Мы пересобрали компоненты и проработали сценарии так, чтобы они стали максимально похожи друг на друга. Теперь пользователь на заметит различий, когда будет пополнять транспортные карты разных регионов.

Оплата проезда ГородПэй

Позаботились об удобстве пользователей и облегчили оплату проезда

Продумали лидогенерирующие фичи

Одна из бизнес-задач приложения — генерировать лиды для «Газпромбанка». Это мы также учли при проектировании интерфейса. Основные лидогенерирующие фичи: push-уведомления, сторис и рекламные баннеры.

  • Push-уведомления

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

  • Сторис

    Изначально сторис носили информационный характер и оповещали пользователей об обновлениях в приложении. Затем мы решили провести эксперимент и начали рассказывать в них о продуктах «Газпромбанка» и актуальных акциях. Юзеры позитивно отреагировали на такое решение — конверсия выросла примерно на 15%.

  • Баннеры

    Баннеры располагаются на главном экране под списком транспортных карт. Они обеспечивают рост вовлеченности в смежные продукты и приток новых клиентов.

Пуши, сторис и баннеры ГородПэй

Пуши, сторис и баннеры в действии

Работали над преемственностью и помогали развивать дизайн-систему

За три года у GorodPay было несколько масштабных редизайнов. Первый — в 2022-ом, когда мы только начали работать над приложением. Тогда нужно было перенести основные действия на главный экран и оптимизировать пользовательские сценарии.

Последний редизайн случился в 2023 году и был направлен установление преемственности между приложением GorodPay и другими продуктами «Газпромбанка». Предстояло адаптировать наши решения под дизайн-систему заказчика.

Заголовок

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

Ася Михайловская

Дизайнер

06

Разработка

Подстроились под архитектурные каноны и поддерживаем их

Не было цели переделывать проект под свои каноны — подстроились под существующие. С 2022 года продолжаем работать с MVI на основе шаблона MVIKotlin на Android и с Redux на iOS.

Заголовок

Оля Апарина
В GorodPay реализована многомодульная структура, позволяющая разделить код на отдельные смысловые зоны (модули). Такой подход помогает новым разработчикам быстрее погрузиться в проект, а также снизить количество дублируемого кода. На данный момент мы применяем императивный подход по созданию пользовательского интерфейса с использованием XML, но в будущем рассматриваем вариант перехода на декларативный подход с использованием Compose.
Оля Апарина

Оля Апарина

Android-разработчик

Заголовок

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

Максим Алиев

iOS-разработчик

Реализовали интеграции с «2ГИС»

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

Анимировали движение транспорта

Играючи научились обрабатывать большой поток данных с транспорта для отображения движения по карте. Выбрали в качестве пилотных городов Воронеж и Санкт-Петербург. Сейчас GorodPay получает данные о движении транспорта в режиме реального времени: забираем их из ГЛОНАСС, агрегируем и строим пути следования онлайн.

Заголовок

Максим Алиев
Мы настроили получение координат через сокеты, но выяснилось, что новые координаты подгружаются с периодичностью 15 секунд. Нас это не устраивало, поэтому разработали решение, позволившее анимировать движение транспорта между ожиданием новых координат.
Решение использует данные 2GIS по маршруту, а также скорость и направление транспортного средства. Маршрут представляет собой набор точек, из которых формируются отрезки. Мы вычисляем отрезок, на котором находится транспорт, и следующие отрезки для анимирования с учётом скорости и интервала в 15 секунд. Со временем анимация может отставать или спешить — мы учитываем это, определяя нужные отрезки и ускоряя или замедляя анимацию на них.
Максим Алиев

Максим Алиев

iOS-разработчик

Добавили возможность оплаты проезда в электричках

Расширили не только географию, но и виды транспорта. Одно из наиболее крупных обновлений связано с возможностью покупать билеты на пригородные поезда. Сейчас эта опция доступна для Санкт-Петербурга, Ленинградской, Псковской, Новгородской и Мурманской областей, республики Карелия, а в дальнейшем, возможно, распространится и на другие регионы.

Для оплаты проезда в электричках выделили отдельный флоу. Но переиспользовали тот же код, что и для пополнения транспортных карт.

Повысили безопасность

Внедрили SSL-пиннинг, который помогает защищаться от атак злоумышленников. Он скрывает важные секретные данные и не позволяет перехватывать запросы.

Реализовали киллер-фичу — возможность пополнить карту и записать платёж

Одно из главных преимуществ GorodPay — пополнение и запись через NFC. Пользователи могут пополнить любую транспортную карту, доступную в приложении, через СБП или GazpromPay. Стоять в очереди к кассе для оплаты больше не нужно.

Владельцам Android особенно повезло, поскольку приложение умеет записывать информацию о пополнении прямо на транспортную карту с помощью технологии NFC. Практически на каждом устройстве Android есть NFC-считыватель, который при контакте с NFC-меткой может считать данные с неё или передать ей беспроводным способом.

Заголовок

Оля Апарина
Наше приложение делает флоу пополнения транспортной карты завершенным: от добавления карты в приложения до записи новых данных на неё.
Процесс записи на карту состоит из трёх этапов. Первый — считывание UID NFC-метки для определения карты и получение ключей доступа к ней. Второй — чтение информации на карте и получение новой информации для записи. Третий — непосредственно запись. Всё это осуществляется посредством беспроводной передачи данных.

Оля Апарина

Оля Апарина

Android-разработчик

07

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

Использовали разные виды тестирования

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

Из интересного: в тестировании покупки билетов РЖД участвовал не только QA-отдел, но и вся команда MobileUp. На вокзалах с помощью боевых турникетов мы проверяли, как работает новая функциональность.

08

Результаты

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

На текущий момент приложение GorodPay работает в более чем 50 регионах России. С марта 2022-го по май 2024-го его аудитория увеличилась в 30 раз, и сейчас составляет более миллиона человек. А количество уникальных юзеров за сутки (DAU) возросло с 500 до 25 тысяч. И мы не собираемся останавливаться на достигнутом — продолжаем совершенствовать пользовательские сценарии, расширять функциональность и добавлять новые транспортные карты.

Заголовок

Маргарита Вырвич
Мы работаем над проектом GorodPay на протяжении трёх лет. С точки зрения управления, у нас нет конкретного стиля. У нас не Scrum, не Kanban и не Agile. У нас что-то между.
Заказчик в любой момент может прийти с задачей и сказать: «Это срочно, ребята. Мы готовы расширять команду, но вы должны успеть к такому-то числу». Тут мы всегда вступаем в диалог. Если выясняется, что без обновления никак и от него зависят прибыль и репутация, расширяем команду и приступаем к реализации. Если понимаем, что спешка не оправдана и нет смысла тратить больше ресурсов, объясняем это заказчику. Вместе находим компромиссное решение.
Огромную роль играет то, что нас воспринимают не просто как подрядчика, а как часть команды. В нас уверены, нам доверяют и знают, что мы придём к нужному результату, какими бы ни были внешние обстоятельства.
Маргарита Вырвич

Маргарита Вырвич

Head of Project Management

Слово заказчика

Заголовок

Когда создаешь такой масштабный продукт, каким стал наш GorodPay, очень важно, с какой командой ты это делаешь. Легко говорить: «Вот почему нет», но важнее найти способ сказать: «Вот как». Команда MobileUp всегда ищет только решения, а не причины — это ребята не раз доказали впечатляющими результатами своей работы. Включенность команды — ресурс, который не купишь ни за какие деньги, и, работая с MobileUp уже два года, я каждый день наблюдаю не просто подрядчика, а часть своей команды, своих людей, которые горят проектом, так же как и я. У GorodPay большие амбиции и серьёзные планы, но я абсолютно уверена в успехе, и блестящий путь от крошечного стартапа до современного сервиса с миллионной аудиторией — отличное подтверждение этой уверенности.

Полина Коваленко

CPO GorodPay

09

Команда MobileUp

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

    Маргарита Вырвич

  • Frontend-аналитик

    Глеб Гусько

  • Дизайнер

    Ася Михайловская

  • Android-разработчик

    Оля Апарина

  • iOS-разработчик

    Максим Алиев

  • Команда тестирования

    Антон Сухарев, Илья Зеленский

10

GorodPay Team

  • CPO

    Полина Сергеевна

  • Директор

    Александра Головенкина

  • CTO

    Роман Еремин

  • IT Lead

    Екатерина Федина

  • Менеджер проекта

    Дарья Гончарова

  • Креативный директор

    Анастасия Величко

  • Руководитель клиентской поддержки

    Анна Хмельницкая

  • Директор разработки IT-сервисов

    Федор Бодян

11

DEX Team

  • Архитектор

    Максим Тонкоглас

  • Менеджер проекта

    Артём Гончар

  • Backend-тимлид

    Сергей Фетеско

  • Команда backend-разработки

    Виталий Чабан, Ольга Аристова, Лина Балан

  • DevOps-команда

    Дмитрий Игнатьев, Дмитрий Фрей

  • QA-команда

    Антон Волошин, Дмитрий Тиханский

  • Backend-аналитик

    Данила Булгаков

01

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

Контакты

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

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

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

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

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

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

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