25 января 2023

ВРЕМЯ ПРОЧТЕНИЯ — 5 МИН

DATER App: как мы создаем приложение для стримов видеовечеринок

Знакомства вслепую по видеосвязи, из которых можно сделать крутой стрим и онлайн-вечеринку — с такой идеей пришел в CleverPumpkin новый заказчик. У компании DATER собственная философия и десятки амбассадоров еще до релиза приложения, и за счет этого они собираются ворваться в 2023 год с крутейшим приложением для стримов, видеовстреч и вечеринок в прямом эфире. А мы им в этом помогаем.
How to upload an app to the App Store and not get rejected
Кто наш заказчик
У ребят из Ульяновска (хотя в DATER команда из нескольких городов и даже стран) планов куда больше, чем просто организовывать онлайн-встречи двух ярких и общительных собеседников. Команда создает целую экосистему коротких созвонов в режиме вечеринки с прямыми эфирами и крутыми стримерами.
Ребята развивают свой проект очень открыто. На корпоративном портале подробно описываются успехи и неудачи, развитие проекта, принципы работы, объясняется выбранный стиль, философия продукта, в открытый доступ выкладываются внутренние демо-встречи. Наша работа с Dater началась в ноябре 2021 года. Вот что пишут об этом сами заказчики:
Сейчас приложение загружено в сторы в тестовом варианте с функциональностью MVP. Первый релиз в App Store не прошел: команда AppReview потребовала внести доработки в логику соединения собеседников. За две недели мы внедрили новые фичи по требованиям стора в iOS и в Android и отправили сборку на повторное ревью. Спустя несколько реджектов общими усилиями двух команд ревью успешно пройдено, и первые версии опубликованы в Google Play и App Store. Финальная версия должна стать единственной в своем роде программой, у которой очень мало конкурентов. Команда DATER'a подчеркивает, что это не чат-рулетка — важна философия проекта, где пользователям помогут преодолеть стеснительность, где не будет эротического контента, но будет взаимоуважение, интересные собеседники, свободный диалог и т.д.
Какие задачи были поставлены
Изначально Dater собирался сделать ставку на веб, но отказался от него в пользу нативного приложения еще до начала сотрудничества с CleverPumpkin. За мобильными приложениями будущее — нам ли это не знать?

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

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

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

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

По ходу работы появляются некоторые изменения дополнительного функционала, но глобально ничего не меняется, за что спасибо заказчику: последовательность значительно упрощает работу.
Коммуникация
«Я ответил на кучу вопросов от «Клеверов» по версии 0.6.0», — это говорит член команды Dater на внутреннем публичном еженедельном созвоне. Вопросов мы задаем много, но, кажется, клиент доволен.

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

У DATER своя большая команда, да еще и около 100 амбассадоров, принимающих участие в тестировании. Это позволяет заказчику оперативно корректировать направление развития приложения, изменять концепцию, определять направление дальнейшего движения.
Используемое ПО
CleverPumpkin в этом проекте, как и во многих других, работает с Firebase, это система базовой аналитики, распространения сборок и сбора крешей. Но Dater использует эту платформу гораздо шире — во многом архитектура построена на Firebase firestore Database — классическую базу данных с таблицами, документами и данными.

Большая часть логики работы приложения строится на прослушивании определенных таблиц: таблицы пользователей, звонков, поиска собеседников, наград и т.д. Непосредственно классического API (запрос-ответ) в проекте очень мало, и в большинстве случаев это односторонний функционал — приложение говорит бэку, что нужно сделать: к примеру начать поиск собеседника, поставить в очередь, завершить звонок, продлить звонок, поменять данные пользователя. Вся остальная логика построена на том, что мы постоянно реактивно прослушиваем таблицы — и как только происходят какие-либо изменения, мы их отображаем.

Еще из интересных решений, применяемых на проекте — заказчик использует систему от Amazon, отслеживающую порно-контент. Система умеет его определять, но не банит автоматически, а отправляет данные на ручную модерацию.
Интеграция протокола SRT
В приложении по желанию заказчика стали использовать протокол передачи видео SRT. Рассматривались варианты использования более распространенного протокола RTMP, но он имеет закрытый исходный код и определенные ограничения. Еще изучали возможности протокола VOX Implant, но и от него отказались: он не поддерживает Estimate, видеозвонки возможны были бы только для двоих и т.д. Такая ограниченная функциональность абсолютно не вписывалась в концепцию дальнейшего развития приложения.

Протокол SRT относительно молодой — 2013 года рождения — и довольно сырой. Он потребовал достаточно большого ресерча и внесения доработок с нашей стороны в доступные решения и библиотеки. Проводились эксперименты с разными sdk и их настройками, пока в итоге не был найден оптимальный баланс по скорости и стабильности работы, качеству звука/видео и иным моментам.

В частности, начинали с нового видеоформата H265 (HEVC) — фишки протокола SRT: с большой степенью сжатия, с меньшим количеством затрат трафика, меньшей потерей пакетов. Это в идеале.

Однако фактически же выяснилось, что на больших расстояниях пакеты теряются чаще, а из-за степени сжатия потеря пакетов более критична, чем в формате H264. Кроме того, есть проблемы с декодированием. В итоге мы потестили HEVC — идея клевая, но не подходит — и перешли на формат H264.
Что умеет приложение
На декабрь 2022-го продукт версии 0.5.2 представляет собой приложение для коротких видеовстреч. Встроены фильтры, которые определяют, с кем соединять пользователя, есть возможность настройки черного списка, жалоб модераторам, автоматическая проверка на запрещенный контент.

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

На текущий момент в приложении нет каких-либо реальных платежей и донатов, но уже есть внутренняя валюта. Есть задатки для будущей монетизации: если собеседник интересный, то за внутреннюю валюту с ним продлевают разговор, а он в свою очередь получит на свой баланс процент от стоимости продления. После реализации прямых эфиров будет добавлена возможность поощрения популярных стримеров. В будущем все такие монеты превратятся в дейтеркоины или нечто подобное. Внедрение Dater Coin требует огромной подготовительной работы за рамками приложения, и она сейчас уже активно ведется заказчиком.
Другие статьи по теме: