Как мы собрали сложный интерфейс музыкального редактора в приложении и запустили MVP

Всем привет, я Эд Хорьков из КОД9. Хочу рассказать о том, как мы создали для заказчика музыкальный редактор Туттии, который умещается на ладони. В приложении можно без опыта работы с музыкой делать ремиксы на популярные песни — сейчас оно в альфа-тесте и скоро появится в App Store.

Как мы собрали сложный интерфейс музыкального редактора в приложении и запустили MVP

Познакомились с заказчиками и изучили вводные

Основателям Туттии нас посоветовали другие наши клиенты. Им объяснили, что к нам можно обратиться со сложными идеями, которые нужно формализовать и помочь довести до продукта. Основатели Туттии как раз искали такого подрядчика: они впервые занимались ИТ-проектом и не имели технического опыта.

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

Что такое ремикс?

В случае с Туттии ремиксом или мэшапом мы называем сочетание из музыкальных отрывков двух типов — вокала и инструментальной партии. Отрывки можно взять из популярных треков: например, голос Джастина Бибера положить на музыку Дуа Липы.

Основатели передали нам вводные в нескольких форматах:

Вайрфрейм. Они самостоятельно собрали простой прототип интерфейса, чтобы нам было, от чего оттолкнуться.

Вайрфрейм, который нам передали
Вайрфрейм, который нам передали

Текстовые описания. Заказчики подготовили несколько документов с примечаниями и требованиями. Они покрывали три главных направления работы на первое время:

  • онбординг-экраны,
  • музыкальный редактор,
  • интеграция с Amplitude Analytics.

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

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

Референсы. Заказчики попросили нас ориентироваться на приложения BeatSync и Medly, в плане фичей ссылались на GarageBand и iTunes Music.

Приложения для работы с музыкой, на которые мы ориентировались: слева — BeatSync, по центру и справа — Medley
Приложения для работы с музыкой, на которые мы ориентировались: слева — BeatSync, по центру и справа — Medley

Провели R&D-фазу и проверили техническую реализуемость проекта

Мы изучили вводные и решили не браться за полноценную разработку сразу, хотя основатели были готовы. Мы предложили разделить проект на части и сначала запустить R&D-фазу: исследовать задачу и понять, какие технологии для неё потребуются.

Определили пользовательские сценарии. Вот ключевые из них:

⚙ В приложении можно использовать оригинальные треки для создания мэшапов. В одном мэшапе можно задействовать неограниченное количество треков и дорожек двух видов — c аудио и вокалом.

⚙ В мэшапе можно менять темп, тональность и громкость звуковых дорожек, сохранять проект, экспортировать его и делиться готовым аудио.

⚙ Пользователь может выложить мэшап на продажу в маркетплейс в виде NFT и купить мэшапы других пользователей.

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

Нам хватило возможностей AudioKit — это open-source библиотека для синтеза, обработки и анализа звука для iOS и macOS, надстройка над системным AVFoundation.

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

Фрагменты нашего первого прототипа: выбор треков для мэшапа и изменение тональности
Фрагменты нашего первого прототипа: выбор треков для мэшапа и изменение тональности

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

  • приветственные экраны (Onboarding),
  • рабочее пространство (Editor),
  • кошёлек пользователя (Wallet),
  • библиотека пользователя (My library),
  • поиск по исполнителям, трекам и мэшапам (Explore)
Структура будущего приложения
Структура будущего приложения

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

После R&D мы приступили к дизайну приложения. Процесс был устроен так:

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

Фрагмент мудборда проекта: тёмные решения нравились нам больше, поэтому мы решили сразу делать тёмную тему
Фрагмент мудборда проекта: тёмные решения нравились нам больше, поэтому мы решили сразу делать тёмную тему

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

Выбрали цветовую схему слева
Выбрали цветовую схему слева
Катя Волкова, дизайнер

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

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

Наша задача — создать такой пользовательский опыт, чтобы даже человек без подготовки разобрался, как создавать мэшапы.

Подготовили подробный прототип. Учли выбранные цветовые решения и стали создавать образ интерфейса:

Детализированный прототип: библиотека треков и рабочее пространство — по центру пустое, справа — заполненное музыкальными фрагментами
Детализированный прототип: библиотека треков и рабочее пространство — по центру пустое, справа — заполненное музыкальными фрагментами

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

⚙ Увеличили ползунок громкости, а кнопку Mute убрали. Чтобы заглушить звук, достаточно нажать на иконку динамика или опустить ползунок вниз до конца.

⚙ Распределили навигационные инструменты так, чтобы кнопка Play оказалась не по центру, как в прототипе, а левее: так нажимать на контроль темпа и тональности стало удобнее.

⚙ Отказались от отдельной кнопки Undo, а кнопку Save — добавили: решили, что её важнее иметь под рукой.

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

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

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

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

🎵 Нот всего семь, — на самом деле 12, но давайте для упрощения считать, что семь — и они повторяются по циклу: до, ре, ми, фа, соль, ля, си и снова до. Так что мажоров и миноров ограниченное количество, причём поднявшись на полный цикл тональностей вверх, вы придёте в ту же точку, откуда вышли.

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

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

Катя Волкова
Дизайнер

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

Колесо выбора тональностей почти не изменилось со второй версии прототипа. Сверху и снизу в парах — параллельные мажор и минор. Переход влево или вправо — движение вниз или вверх на полтона
Колесо выбора тональностей почти не изменилось со второй версии прототипа. Сверху и снизу в парах — параллельные мажор и минор. Переход влево или вправо — движение вниз или вверх на полтона

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

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

Раздел Explore, где можно искать работы других пользователей
Раздел Explore, где можно искать работы других пользователей

Отказались от NFT-составляющей из-за изменений в политике App Store

Мы не успели дойти до реализации покупок через NFT. Пока мы занимались дизайном и разработкой, в Apple обновили политику по рецензии приложений в App Store, и теперь там фактически запрещены покупки или продажи NFT внутри приложений.

Поэтому концепция изменилась: от NFT отказались и решили сделать MVP только с функциями музыкального редактора. Из-за этого мы существенно переработали дизайн.

Пришлось поменять экран библиотеки. Оттуда исчез раздел с NFT и остался только список оригинальных треков:

Изменения в библиотеке
Изменения в библиотеке

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

Этих экранов нет в приложении
Этих экранов нет в приложении

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

В Тутти было много нестандартных элементов интерфейса — вот что оказалось самым сложным для наших iOS-разработчиков:

Реализовать drag&drop музыкальных фрагментов из библиотеки в рабочее пространство. Вокальные треки можно перемещать только в верхнюю дорожку, а музыку — в нижнюю. На макетах все фрагменты были одинакового размера, но в реальности они могли отличаться по длительности — это вызвало проблемы.

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

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

Собрать колесо выбора тональностей. Контролер со скроллом в 360° и таким большим количеством сегментов оказался интересной технической задачей. К тому же в каждом сегменте круга живут сразу две тональности — между ними тоже можно выбрать.

Колесо можно крутить в обе стороны — на картинке переходим из до мажора в ре диез мажор
Колесо можно крутить в обе стороны — на картинке переходим из до мажора в ре диез мажор

Подытожим: как мы работали над приложением ремиксов Туттии

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

Провели R&D-фазу. Заказчик был готов сразу стартовать разработку, но мы предложили разбить проект на части и сначала убедиться в технической реализуемости идеи. На этом этапе описали пользовательские сценарии, отобрали технологии и создали прототип.

Выбрали визуальный стиль. Собрали мудборд, а затем выбрали цветовую схему. В основном ориентировались на неоновые решения на тёмном фоне.

Проработали UX и UI. Создали детальный прототип, а затем финализировали дизайн. Придумали несколько инструментов, которые помогают интуитивно работать с аудиофайлами — создать свой ремикс в Туттии сможет любой человек без музыкального бэкграунда.

Занялись разработкой. Drag&drop музыкальных фрагментов в рабочее пространство и колесо выбора тональностей оказались нетривиальными техническими задачами.

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

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

👤 Проджект-менеджер

👤 UI/UX-дизайнер

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

👤 QA-специалист

⏲ Проект занял 8 месяцев.

Все экраны, которые мы собрали для Тутти, на одной картинке
Все экраны, которые мы собрали для Тутти, на одной картинке

Если интересно узнать больше о мобильной разработке и о том, как мы помогаем клиентам превращать идеи в цифровые продукты, буду рад видеть вас у себя в телеграме ↓

Делимся другими кейсами:

4242
10 комментариев

Описали классно, а ссылку забыли )

Ответить

Спасибо! А мы пишем в самом первом абзаце – "...сейчас оно в альфа-тесте и скоро появится в App Store". Так что пока что все в процессе.

1
Ответить

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

Ответить

Проводили тестирование непосредственно самой рабочей текущей версии, где-то на 300-400 пользователях.

1
Ответить

А ссылка будет на продукт?)

Ответить

Сейчас продукт в альфа-тесте, мы пишем об этом в начале статьи. Ссылка будет, но не сразу 🙂

Ответить