Мобильное приложение для инструкторов LDFA

Сентябрь 2023
Flutter
Более 4 000 установок за 3 месяца

Клиент

Latin Dance Fitness Alliance LDFA (ЛДФА) — компания, которая занимается популяризацией танцевального фитнеса в России и Беларуси, объединяет в сообщество сертифицированных инструкторов и поклонников танцевальных фитнес-программ.

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

Особенности

— управление приложением через админпанель сайта

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

— счетчик темпа (BPM) и звуковые эффекты

— оптимизация приложения под любое устройство

— работа в оффлайн режиме

Задача

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

Дизайн и структура

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

Функционал

Кроссплатформенное приложение LDFA разработано на фреймворке Flutter, и доступно пользователям Android и iOS устройств. Размещено в магазинах Google Play и AppStore.

Главный экран

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

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

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

Составляем свои плейлисты

Добавлять треки и видео в плейлисты можно не только из релизов, но и по результатам поиска, а также с устройства пользователя, из памяти на Android, и сохраненных треков в Apple Music на iOS. Для этого созданы отдельные экраны в которых хранятся доступные для пользователя материалы с курсов и других обучений. Зайти в них можно через панель навигации внизу.

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

Поговорим о нюансах: загрузка треков в «яблочной» системе

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

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

Музыкальные альбомы и скрытые инструменты

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

Расскажем подробнее о кроссфейде..

Танцевальные фитнес-программы требуют динамичного музыкального сопровождения, поэтому мы добавили кроссфейд — это плавное наложение одной звуковой дорожки на другую в указанном промежутке времени. Есть два варианта:

1. Установить единую длительность перехода между всеми треками в плейлисте. Например, 5 секунд — такая настройка будет работать между всеми треками.

2. Добавить универсальную настройку для каждого трека в плейлисте. Например, у первого — 5 секунд, у второго — 10 секунд и так далее.

..и 20 сценариях тестирования

Самой оптимальной библиотекой для работы приложения стала just_audio, в которой, увы, нет кроссфейда. По этой причине мы написали для нее свои функции и «подружили». Так, переделана вся система воспроизведения музыки и функционал сведения, отработано порядка 20 сценариев тестирования по каждой из двух операционных систем и двух режимов кроссфейда: для всего плейлиста и отдельно по трекам.

Похожих кейсов для реализации кроссфейда у нас не было. Обычно, в нем нет ничего сложного, например, в Яндекс.Музыке есть два режима вкл/выкл. Для одного трека кроссфейд настроить нельзя.

Музыкальный редактор

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

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

Работа в оффлайне

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

Управление приложением

Для удобства клиента создали функционал управления прямо из админпанели сайта LDFA на 1С-Битрикс. Можно загружать баннеры, составлять популярные плейлисты, вести рейтинг и проставлять теги для роликов, собирая блок «Похожие видео». Кроме того, есть возможность отправлять Push-уведомления на устройство.

Полная оптимизация

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

Метрика для анализа

Чтобы отслеживать статистику внедрили в приложение Яндекс.Метрику. Нам доступно:

— количество установок, сейчас это 1000+

— количество запусков

— количество копирований плейлистов от LDFA

— количество примененных эффектов из редактора, например, кроссфейд, обрезка и другие

— звуковые эффекты и их соотношение, например, 30 раз использовали наложение звука аплодисментов

Результат

Мы разработали инструмент для создания музыкального сопровождения фитнес-программ.

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

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