DATER
Развлечения
Россия, Ульяновск
IOS, Android
Октябрь 2022
Знакомства вслепую по видеосвязи, из которых можно сделать крутой стрим и онлайн-вечеринку — с такой идеей пришел в CleverPumpkin новый заказчик. У компании DATER собственная философия и десятки амбассадоров еще до релиза приложения, и за счет этого они собираются ворваться в 2023 год с крутейшим приложением для стримов, видеовстреч и вечеринок в прямом эфире. А мы им в этом помогаем.
Кто наш заказчик
У ребят из Ульяновска (хотя в DATER команда из нескольких городов и даже стран) планов куда больше, чем просто организовывать онлайн-встречи двух ярких и общительных собеседников. Команда создает целую экосистему коротких созвонов в режиме вечеринки с прямыми эфирами и крутыми стримерами.
Ребята развивают свой проект очень открыто. На корпоративном портале https://open.dater.com/ подробно описываются успехи и неудачи, развитие проекта, принципы работы, объясняется выбранный стиль, философия продукта, в открытый доступ выкладываются внутренние демо-встречи. Наша работа с Dater началась год назад — в ноябре 2021 года.
Сейчас приложение загружено в сторы в тестовом варианте с функциональностью MVP. Первый релиз в App Store не прошел: команда AppReview потребовала внести доработки в логику соединения собеседников. За две недели мы внедрили новые фичи по требованиям стора в iOS и в Android и отправили сборку на повторное ревью. Спустя несколько реджектов общими усилиями двух команд ревью успешно пройдено, и первые версии опубликованы в Google Play и App Store. Финальная версия должна стать единственной в своем роде программой, у которой очень мало конкурентов. Команда DATER’a подчеркивает, что это не чат-рулетка — важна философия проекта, где пользователям помогут преодолеть стеснительность, где не будет эротического контента, но будет взаимоуважение, интересные собеседники, свободный диалог и т.д.
Изначально Dater собирался сделать ставку на веб, но отказался от него в пользу нативного приложения еще до начала сотрудничества с CleverPumpkin. За мобильными приложениями будущее — нам ли это не знать?
Заказчик пришел с макетами и техзаданием на разработку приложения в iOS, а техзадание на Android мы готовили сами. На базе уже отработанной веб-версии заказчик понимал, чего хочет, и с нашей стороны потребовались минимальные исследования. Аналитику, планирование и карту экранов предоставлял заказчик, наша команда консультировала по их реализации, дизайн также на стороне заказчика, а мы проводили дизайн-ревью макетов.
Каждая новая версия — это новые задачи, некоторые из которых возникают уже в процессе реализации приложения. Например, стало ясно, что платформа для видеозвонков, планируемая к внедрению изначально, не отвечала необходимым требованиям к функциональности, поэтому было принято решение о реализации по протоколу SRT (об этом позже).
Также в процессе работы было решено сделать приложение приватным, с доступом только по кодам-инвайтам. От регистрации по номеру телефона отказались в пользу электронной почты.
Решили поменять и стиль приложения — сделать его более ярким, узнаваемым и вайбовым — произошла смена цветовых стилей, иллюстраций и текстов, добавились новые фичи.
По ходу работы появляются некоторые изменения дополнительного функционала, но глобально ничего не меняется, за что спасибо заказчику: последовательность значительно упрощает работу.
«Я ответил на кучу вопросов от «Клеверов» по версии 0.6.0», — это говорит член команды Dater на внутреннем публичном еженедельном созвоне. Вопросов мы задаем много, но, кажется, клиент доволен.
CleverPumpkin в этом проекте, как и во многих других, работает с Firebase, это система базовой аналитики, распространения сборок и сбора крешей. Но Dater использует эту платформу гораздо шире — во многом архитектура построена на Firebase firestore Database — классическую базу данных с таблицами, документами и данными.
Большая часть логики работы приложения строится на прослушивании определенных таблиц: таблицы пользователей, звонков, поиска собеседников, наград и т.д. Непосредственно классического API (запрос-ответ) в проекте очень мало, и в большинстве случаев это односторонний функционал — приложение говорит бэку, что нужно сделать: к примеру начать поиск собеседника, поставить в очередь, завершить звонок, продлить звонок, поменять данные пользователя. Вся остальная логика построена на том, что мы постоянно реактивно прослушиваем таблицы — и как только происходят какие-либо изменения, мы их отображаем.
Еще из интересных решений, применяемых на проекте — заказчик использует систему от Amazon, отслеживающую порно-контент. Система умеет его определять, но не банит автоматически, а отправляет данные на ручную модерацию.
В приложении по желанию заказчика стали использовать протокол передачи видео SRT. Рассматривались варианты использования более распространенного протокола RTMP, но он имеет закрытый исходный код и определенные ограничения. Еще изучали возможности протокола VOX Implant, но и от него отказались: он не поддерживает Estimate, видеозвонки возможны были бы только для двоих и т.д. Такая ограниченная функциональность абсолютно не вписывалась в концепцию дальнейшего развития приложения.
Протокол SRT относительно молодой — 2013 года рождения — и довольно сырой. Он потребовал достаточно большого ресерча и внесения доработок с нашей стороны в доступные решения и библиотеки. Проводились эксперименты с разными sdk и их настройками, пока в итоге не был найден оптимальный баланс по скорости и стабильности работы, качеству звука/видео и иным моментам.
В частности, начинали с нового видеоформата H265 (HEVC) — фишки протокола SRT: с большой степенью сжатия, с меньшим количеством затрат трафика, меньшей потерей пакетов. Это в идеале.
Однако фактически же выяснилось, что на больших расстояниях пакеты теряются чаще, а из-за степени сжатия потеря пакетов более критична, чем в формате H264. Кроме того, есть проблемы с декодированием. В итоге мы потестили HEVC — идея клевая, но не подходит — и перешли на формат H264
На декабрь 2022-го продукт версии 0.5.2 представляет собой приложение для коротких видеовстреч. Встроены фильтры, которые определяют, с кем соединять пользователя, есть возможность настройки черного списка, жалоб модераторам, автоматическая проверка на запрещенный контент.
Приближаемся к функционалу стримов — главной задумке приложения. Долго обсуждали с заказчиком, как это лучше претворить в жизнь, искали оптимальную схему реализации, предлагали свои идеи. В итоге все-таки был выбран вариант, предложенный нашей командой — да, мы умеем не только в разработку, но и немного в продакт.
Олег Dater
Dater Founder & CEO
Наша цель — завести в телефонах бесконечную видеовечеринку, в которую хочется возвращаться.
Мы долго шли по пути веб-приложения: верили в потенциал этой экзотической платформы. Но в итоге признали, что для адекватного показателя retention Dater надо полностью переводить в нативное мобильное приложение. Выбрали для разработки CleverPumpkin, когда увидели, что продуктовая «идеология» и амбиции ребят совпадают с нашими. Самой крутой задачей был перевод созвонов WebRTC на платформе VoxImplant на протокол SRT со своим сервером. Над синхронизацией видеосозвонов между устройствами Android и iOS тоже пришлось потрудиться.
Итог — первый релиз симпатичного приложения Dater с рабочими ключевыми функциями. На этом фундаменте теперь будем выстраивать разные весëлые механики.
CleverPumpkin с удовольствием обсудит вашу задачу