Workspace Digital Awards 2025 — успейте номинировать кейсы по льготной цене до 1 декабря. Принять участие!
IT CRON
Ты в Плюсе - Спорт
IT CRON
WDA
2024
#Приложение под ключ #Разработка и поддержка 1C#Разработка программного обеспечения

Ты в Плюсе - Спорт

2991 
IT CRON
IT CRON Россия, Москва
Поделиться:
Ты в Плюсе - Спорт
Клиент

ПАО "Т Плюс"

Бюджет

2 500 000

Сфера

Услуги

Регион

Россия, Москва

Мобильная платформа

IOS, Android

Сдано

Декабрь 2023

Задача

Предыстория.

С нашим постоянным клиентом ПАО «Т ПЛЮС» мы совместно трудились над корпоративным мобильным приложением «Ты в Плюсе», который объединил в себе инструмент помощи сотрудникам в решении рабочих задач, новостной портал компании и развлекательные разделы. В данном кейсе поделимся с вами опытом разработки одного из модулей - «Спорт».

Что хотел Заказчик.

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

Два из них предполагают наличие призовых мест:

- Челленджи – мероприятия с итоговой целью, датой начала и датой окончания. Заказчик хотел, чтобы итоговая цель была разделена на дни, а не достигалась одномоментно. К примеру, если пользователю нужно пробежать 10 км за 5 дней, то общий километраж делится на количество дней, а задача участника – достичь цели поэтапно, день за днем. Если пользователь пропустит хотя бы один день, он исключается из данного соревнования.

- Общие спортивные мероприятия также имеют итоговую цель, на выполнение которой дается определенный срок. Но в отличие от челленджей пользователь может самостоятельно решить, постепенно выполнять задание или разом, главное – не позднее установленной даты. Например, цель – 10 км, период выполнения с 1 по 10 декабря. Участник может осилить всю дистанцию 1 декабря, а может пробегать понемногу ежедневно или с перерывами между днями. Но пройти необходимое расстояние нужно не позднее 23:59 10 декабря.

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

Еще 2 вида мероприятий без рейтинговой системы и наград пользователи смогут создавать самостоятельно:

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

- Персональные тренировки пользователь может запустить когда угодно и провести тренировку с любой длительностью, у нее нет конкретной цели.

Все мероприятия могут быть 2 типов:

- Для прохождения на улице. Учитывается пройденное расстояние, которое считается в километрах с помощью геолокации.

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

Вдобавок к функционалу прохождения мероприятий Заказчик попросил разработать для раздела следующие опции:

- Экран спортивного профиля – информация об общем количестве шагов и километров, которые пользователь набрал участием в мероприятиях или выполнением персональных тренировок в разделе «Спорт». Сведения должны быть доступны в карточке спортивного профиля и на графике, который можно настроить для отображения по типу тренировок (зал или улица) и периоду (неделя, месяц, год);

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

- Экран с достижениями пользователя – для отображения результатов участия в спортивных мероприятиях, в том числе, призовых мест пользователя.

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

-Для соревновательных спортивных мероприятий с призовыми местами, в которых пользователям нужно пройти или пробежать, предусмотреть «честное прохождение дистанции» (слова клиента, ред.), минимизировав возможность применения участниками велосипедов, самокатов и других транспортных средств;

- Экран с историей тренировок по всем маршрутам пройденных спортивных мероприятий.

Решение

Перед тем, как приступить к реализации проекта, следовало разрешить принципиальный вопрос: как будет рассчитываться пройденная дистанция?

Проанализировав возможные варианты, мы решили:

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

Для мероприятий в зале выполним интеграцию с приложениями «Здоровье» (iOS) и GoogleFit (Android) для доступа к шагомеру и получению данных о количестве пройденных шагов во время участия в наших спортивных событиях.

Поехали!

Теперь можно было приступать к разработке раздела «Спорт», которую мы разделили на несколько этапов.

1Создание главного экрана и блока «Общие спортивные мероприятия».

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

2Разработка экрана «Спортивный профиль».

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

3Разработка промежуточного и итогового рейтинга.

Внедрение этих функций позволило видеть общий список участников соревнований в соответствии с их достижениями.

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

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

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

4Разработка экрана «Достижения».

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

5Создание блока «Тренировки с друзьями».

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

6Создание блока «Челленджи».

Следом мы добавили возможность принимать участие в челленджах. В карточке блока находится таблица с условиями прохождения.

Тренировки челленджей открываются постепенно, в определенную дату. Каждый день имеет свою цель, на выполнение которой у пользователя – сутки. Если участник пропускает хоть один день, он выбывает из челленджа.

7Создание блока «Персональные тренировки».

Внедрение в приложение данного блока сделало возможным для пользователей самостоятельно запускать тренировки в зале и на улице когда угодно.

8Баги, и как мы их исправляли.

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

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

№1

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

Чтобы протестировать исправление бага «в полевых условиях», тестировщик, не имея рядом подходящего стадиона, начал ходить вокруг многоэтажки с тремя подъездами. На 20 круге его окликнул наблюдавший все это мужчина и спросил: «Вы заблудились, ищете какую-то организацию, может подсказать?». Наш сотрудник не растерялся и гордо ответил: «Нет, я просто вокруг дома хожу», - и продолжил прохождение маршрута. Остается лишь догадываться, что про него подумал бдительный житель.

№2

Также мы обнаружили проблему с «Холодным стартом». Она возникала, когда маршрут заканчивался в одной точке, а потом повторно начинался в другой. Последняя зафиксированная и текущая точки соединялись, моментально начисляя большую дистанцию пользователю, что приводило к автоматическому завершению мероприятия как успешно выполненному. Для предотвращения подобных сбоев, мы добавили между точками проверку на расстояние, а также сделали пропуск первых точек при прохождении маршрута (вреда для пользователя нет, но проблему с потенциальными скачками решает).

№3

Еще один вопрос возник после первого релиза и запуска раздела «Спорт» в массы. Нашлись пользователи, которые хитрили и проезжали маршрут тренировок на автомобиле. Чтобы это доказать, мы переносили точки из маршрутов недобросовестных участников на карту и сравнивали, где была пройдена дистанция. Если было четко видно, что пользователь двигался по дороге, это свидетельствовало о том, что для прохождения маршрута использовали транспортное средство. 

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

№4

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

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

Результат

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

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

Наш Заказчик после выпуска полной версии раздела «Спорт» решил сделать редизайн и перенести на новую архитектуру все остальные разделы корпоративного приложения «Ты в Плюсе».

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

Но это, как говорится, уже совсем другая история…)

Комментарий агентства

Александр Пухов
Александр Пухов

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

https://itplus.energy/

Стек технологий


Над проектом работали:


Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

IT CRON с удовольствием обсудит вашу задачу

Оставить заявку