К нам обратились заказчики — группа спортсменов, проживающих на территории ОАЭ. У них появилась идея создать приложение для проведения тренировок в режиме онлайн, которое устраивало бы и спортсменов, и тренеров, предлагающих свои услуги онлайн. Основная концепция будущего сервиса на данный момент является революционной: онлайн тренировки в видео формате, где и тренер, и атлет видят друг друга и общаются в режиме реального времени во время выполнения упражнений.
У них уже было готово свое видение проекта, наработки дизайна и огромное количество идей, которые очень хотелось использовать.
Проект поступил в студию с уже готовыми наработками. Перед поиском команды программистов заказчики самостоятельно провели аналитику, написали первый вариант ТЗ и сделали структуру в формате блок-схемы. У них уже было примерное видение готового приложения и его аудитории.
Часть документации мы адаптировали под удобные для себя форматы. В частности изменения коснулись структуры. Блок-схема в виде скриншотов будущего приложения выглядит красиво, но может быть неудобной для программистов из-за запутанности и неочевидности некоторых взаимосвязей.
На основе той структуры, что нам прислали, мы сделали свою – более простую для восприятия. Дизайнеру и разработчику опираться на неё удобнее, ведь на изображениях не всегда видно, куда ведут те или иные разделы.
Опрос целевой аудитории
Для лучшего понимания проекта мы провели опрос среди атлетов и тренеров. Это помогло понять будущих пользователей сервиса и доработать его.
Среди пожеланий со стороны тренеров чаще всего упоминалось:
Спортсменам в первую очередь оказались интересны:
Анализ на соответствие правилам маркетплейсов
После сбора информации от целевой аудитории мы провели анализ на соответствие приложения правилам App Store и Google Play, чтобы в дальнейшем успешно пройти модерацию. Подробнее о важности этого исследования и требованиях сторов мы уже рассказывали ранее.
На основе анализа мы выяснили, что проект может не пройти модерацию. Это было связано с его спортивной направленностью и элементами социальной сети. Для успешной публикации приложения в сторах мы внесли некоторые изменения:
Оценивать риски и выявлять проблемные места лучше до начала разработки. Ведь если модераторы не пропустят приложение, придется вносить в него изменения, а это лишние затраты по деньгам и времени.
Основная задача сервиса – создать комфортную экосистему для онлайн тренировок, которая выведет взаимодействия между тренером и атлетом на новый уровень, а также объединит любителей спорта по всему земному шару.
Под словом «экосистема» мы имеем в виду многофункциональное приложение. В Трайнет входят не только тренировки по видеосвязи, но и элементы социальной сети с возможностью обмениваться опытом в блогах и личных сообщениях. А также создавать клубы, команды и вступать в них.
1. Дизайн
Как уже говорилось ранее, проект поступил к нам уже с готовыми наработками. Заказчики выработали фирменный стиль и на его основе сделали первую версию дизайна.
В его основу легли контрастные цвета и большое количество акцентов. Такая стилистика характерна для западного разработчика, но пользователям из России может быть непривычна. Поэтому мы приняли решение его откорректировать.
Когда мы получили дизайн, мы провели ревью и выписали в Excel таблицу все предложения. Из ста строк семьдесят были приняты почти сразу. Двадцать мы обсуждали некоторое время с заказчиком и убедили в необходимости изменений. Десять оставили как есть.
Во время работы над дизайном мы:
2. Взаимодействие тренера и спортсмена
Нам не сразу удалось настроить удобную схему взаимодействия тренера и атлета на этапе бронирования занятия. Рассматриваемый изначально вариант оказался слишком громоздким и не мог гарантировать на 100%, что тренировка состоится.
В самом начале работы мы рассматривали следующую схему взаимодействия: атлет покупает тренировку, выбирает любое время в календаре. Потом тренер либо подтверждает бронь, либо отклоняет. Выяснилось, что при такой системе бронирования стороны могут просто не договориться между собой, а это недопустимо.
Сейчас процесс выглядит следующим образом:
3. Возможности тренера
В экосистеме Трайнет для тренеров предусмотрен личный кабинет. Он имеет ряд полезных опций, которые могут использоваться в процессе работы. Рассмотрим их поближе.
Многофункциональный календарь и напоминания о ближайших тренировках и событиях;
Инструменты для дополнительной рекламы и продвижения своих услуг, ведение личного блога. Постами из него можно делиться как внутри приложения, так и в других соц. сетях при помощи ссылки.
4. Возможности для спортсменов
Если для тренера в первую очередь нужно следить за программой тренировок, доходами и параметрами спортсменов, то для атлетов важной составляющей является социальная активность. Возможность поделиться своими успехами и найти клуб по интересам мотивирует к развитию не меньше, чем изменения показателей на графике.
В рамках развития внутренней социальной сети мы ввели в приложение:
Также из полезных функций можно выделить:
5. Полезные фичи
В процессе работы над приложением мы выполнили ряд задач для улучшения пользовательского опыта. Главными функциями приложения являются:
Календарь
Календарь в нашем случае – одна из основополагающих опций. Календарь нужен атлету для бронирования и отслеживания занятий, а тренеру – для отслеживания и настройки своего расписания. Мы также сделали возможность отмечать в нем спортивные мероприятия и настраивать регулярные занятия.
Видеосвязь
В отличие от многих других сервисов Трайнет предполагает использование видеосвязи с тренером как альтернативу тренировкам по заранее записанным роликам. Такой подход помогает:
Для внедрения видеосвязи в приложение мы использовали библиотеку agora_rtc_engine и видео сервис Agora IO.
У Agora есть официальная библиотека для работы с Flutter. Выбор этого сервиса помог избежать проблем с интеграцией. Работает связь по следующей схеме: при начале тренировки со стороны одного из участников Agora создает комнату и отправляет ее ID на сервер. Когда к занятию присоединяется второй участник, сервер проверяет ID комнаты для этой тренировки и подключает его к звонку.
В пакете библиотеки есть только видеосвязь. Чтобы функция корректно работала и гармонично вписалась в приложение, мы сделали:
6. Технологический стек
Для создания приложения мы использовали PHP, Laravel, MySQL 8, Docker, Node JS на бэкенде и Flutter, Dart, MobX, Firebase на фронтенде.
Это наиболее популярный набор технологий для бэкенда на PHP. Мы умеем его готовить, а на случай сложных ситуаций по всем инструментам есть документация и множество ресурсов с рецептами от других разработчиков.
Laravel содержит все необходимое для решения подавляющего большинства задач PHP бэкенда, а также позволяет в процессе работы подключить дополнительные библиотеки. Кроме того фреймворк значительно облегчает интеграцию приложения со сторонними сервисами.
Flutter позволяет видеть результаты изменения кода в реальном времени. Он обладает целым набором виджетов, которые облегчают разработку, тестирование и позволяют создать красивое приложение с оригинальным пользовательским интерфейсом.
Trainet стал для нас интересной задачей. Благодаря тесному сотрудничеству с заказчиком, мы смогли разработать экосистему, которая позволит заниматься с тренером из дома.
Приложение опубликовано в Google Play и App Store. Уже сейчас его можно скачать, зарегистрироваться и записаться на первую тренировку.
У нас получился классный сервис, объединяющий любителей спорта со всего света и позволяющий заниматься даже вне спортивного зала. А чтобы их опыт становился лучше, мы не прекращаем техническую поддержку проекта и уже держим в голове идеи для дальнейшего его развития.