Команда студентов Высшей школы экономики выиграла наш антихакатон с решением по приёму пожертвований для стриминга.
Но он расскажет о проекте лучше всех Максим Дьяков , основатель сервиса «ЯСтрим» – Передаю микрофон автору.
Ниже немного туда-сюда между ChromeApps и Electron, впечатлениями от пробы Yandex SpeechKit и вообще о разработке в формате антихакатона.
.
Одним дождливым летним вечером мы с друзьями решили принять участие в Антихакатон Яндекс.Зачем кому-то платить за стриминг? Для общего понимания расскажу немного о том, как отправляются пожертвования и, главное, зачем это вообще нужно.Деньги
.И повод был подходящий, ведь я давно хотел создать приложение, связанное со стриминговыми сервисами и процессом отправки пожертвований.
В нашей команде было четыре человека: дизайнер Александр Наумов, Джавид Халилов, ответственный за мобильное приложение, Александр Кобрин, руководитель ПК-клиентов, и я, как бэкенд-разработчик и идейный вдохновитель.
Вышло хорошо — через две недели появился минимально жизнеспособный продукт «ЯСтрим».
В этой статье под стримингом подразумевается именно стриминг игр.Поскольку стриминг для зрителя — это всего лишь способ развлечься, нет очевидного смысла платить кому-то даже 50 рублей (это не фильм, и билеты при присоединении не просят).То есть когда кто-то транслирует свой игровой процесс онлайн и при этом все это комментирует. У популярных стримеров есть своя аудитория зрителей, которые следят за выходом новых «серий» и иногда присылают комментарии, сообщения или деньги.
Разумеется, все на добровольной основе и без какой-либо практической цели для зрителей – чисто ради развлечения.
Однако индустрия онлайн-стриминга набирает обороты чуть ли не быстрее, чем блоггинг, а значит, без хорошего денежного потока ей не обойтись.
В общем, однозначного ответа как такового нет. Когда мы бросаем монетку юным музыкантам в метро, мы не получаем никакой услуги или товара, а лишь благодарим исполнителя за его творчество – здесь то же самое.
Что касается технической стороны организации стрима, то давно известны продукты для захвата и трансляции видео с экрана, но толковой системы сбора пожертвований нет. Разумным является тот, который:
- позволяет пользователю перевести определенную сумму стримеру с минимальными усилиями;
- поддерживает передачу сообщения (текстового или голосового) от пользователя стримеру в процессе перевода денег;
- показывает стримеру сообщение и оповещения о получении денег от конкретных пользователей;
- умеет читать пользовательские сообщения вслух в прямом эфире и содержит настройки «пищания» нецензурной лексики и других слов, не подходящих для стримера;
- может работать с любым потоковым программным обеспечением, чтобы не заставлять стримера покидать привычную среду.
Кроме того, большинство продуктов отвечают за собственную разработку денежных переводов, что добавляет сомнений потребителю.
А раз толкового продукта нет, значит, есть повод для стартапа.
Нет смысла строить только один продукт для передачи пожертвований — это ограничит его возможности и сведет потенциал развития практически к нулю.
Поэтому мы решили сделать комплексное решение» ЯСтрим ", альфа-версию которого можно посмотреть на видео: Вот как стример видит интерфейс YaStream. Главное преимущество нашего проекта перед конкурентами в том, что YaStream не требует какой-либо интеграции с привычным для стримера приложением для захвата экрана и трансляции.
Вместо этого он просто накладывает на экран необходимый интерфейс и пользовательские сообщения, которые фиксируются потоковым приложением.
Создаём счастье для стримера Поскольку мы хотели охватить более широкий рынок, и в то же время узнать что-то новое на антихакатоне, решение должно было быть кроссплатформенным — с поддержкой всех стриминговых платформ и сопутствующего ПО.
За основу мы изначально выбрали Chrome Apps, который показался мне почти идеальным инструментом для отладки и разработки API (особенно мне понравилась отладка приложений в Postman, который тоже написан для Chrome).
Тогда настольные клиенты можно было бы писать на базе приложений Chrome для многих платформ одновременно.
Вдохновлен лучшим, на мой взгляд, инструментом для разработки Web API — Почтальон в версии Chrome — за основу я решил использовать Google Chrome Apps. Приложения, написанные для этой платформы, работают в Google Chrome и других браузерах на базе движка Chromium, что позволит создать простое кроссплатформенное решение.
Вот некоторые мотивирующие факторы:
- Google Chrome и другие браузеры на базе движка Chromium составляют большую часть рынка, поэтому решение станет «всеядным»;
- разработка на этой платформе представляет собой типичный веб-интерфейс с некоторыми нюансами, которые вошли в книгу Марка Рочкинда на 240 страницах.
Конечно, во всем этом царстве удобства и свободы были и досадные моменты.
Хочу поделиться тем, что все это время меня впечатляла книга Алана Купера «Психбольница в руках пациентов».Как только мы определились с основными компонентами продукта (приложение для ПК, веб-форма и мобильное приложение), наш интерфейсный разработчик внезапно обнаружил, что Google прекращает поддержку приложений Chrome в Windows, Mac и Linux. Неловкая пауза, разочарование, негодование, принятие.Книга посвящена теории дизайна взаимодействия, поэтому, когда дело дошло до второй составляющей — аудитории, — мне очень захотелось опробовать такие приемы, как составление персонажей в бою.
Король умер, да здравствует король Электрон В качестве альтернативы идеально подошёл фреймворк Электрон Открытый исходный код. Конечно, новизна платформы настораживала, но растущая популярность компенсировала опасения.
Что касается мобильного приложения, скажем так: в моей мобильной команде был только Android-разработчик.
Для YaStream выбрана архитектура клиент-сервер с Microsoft SQL в качестве внутренней базы данных.
Думаю, нет смысла детально разбирать архитектуру, рисовать блок-схемы и т. д. — это скучно и специфично для конкретного проекта.
Я бы предпочел поделиться некоторыми советами из собственного опыта проб и ошибок:
- В качестве идентификатора, как фундамента на будущее, лучше выбрать что-то глобально уникальное.
Например, для идентификатора онлайн-трансляций я выбрал URL, который позволил мне решить миллион проблем одним махом (уникальность, быстрый доступ, возможность последующей работы с API стриминговых платформ).
- Детально проработайте платформу вашего будущего сервиса — это сэкономит массу времени на более высоких уровнях внедрения.
Лучше провести на платформе еще пару дней, чем обнаружить на финальных этапах, что все нужно наполовину переписать.
- Если речь не идет о хакатоне или проекте, не имеющем дальнейших перспектив, сразу документируйте все сущности, логику, взаимодействия и т. д. Чем дольше все это откладывается, тем больше информации вам приходится держать в голове.
В большом проекте непросто все запомнить, поэтому лучше сделать это сразу.
Таким образом, в платформе появились следующие инструменты защиты:
- Для каждого перевода в поле метки вводится специальная метка, а в данные о пожертвовании включается идентификатор транзакции (если его можно получить).
Это было необходимо для удобной работы с API Яндекс.
Денег на стороне стримера и проверки наличия перевода в платежной системе.
- Когда YaStream получает данные о пожертвовании, пользовательский клиент запрашивает у Яндекс.
Денег операцию с тем же идентификатором или все операции с совпадением в поле метки.
Пожертвование появится в ленте только в том случае, если транзакция будет найдена.
- Вся связь между пользовательским клиентом и стриминговой платформой происходит с помощью специального токена YaStream, который выдается на этапе авторизации в платежной системе.
- Отдельно пришлось повозиться с загрузкой фотографий, так как опыта у меня не было, а чтобы было проще работать с API, пришлось создать небольшой фотохостинг.
Дальше был еще рефакторинг, рефакторинг и еще более захватывающий рефакторинг.
Увлекательный этап сборки Когда пришло время создавать рабочую сборку, мы не смогли подключить React — в результате приложение при запуске выдавало дикие ошибки.
Пример того, что мы поймали при попытке сборки.
Наша команда перекопала Stackoverflow и GitHub Issues вдоль и поперёк, так что остаётся только открыть новую тему и поискать знающих людей.
Так мы познакомились с разработчиком Electron и @akashnimar , который имеет соответствующий опыт и готов им поделиться.
Кроме того, мы обнаружили Российское электронное сообщество , куда следует обратиться всем, кто рассматривает возможность использования этой платформы.
Также возникла заминка с хранением файлов, что и послужило поводом для совета уделить больше внимания основам приложения.
Еще нам нужно было не лениться, а с самого начала подключить библиотеку Electron-Storage или Electronic-Storage-JSON, чтобы не переписывать код, когда окажется, что local-Storage из Main недоступен.
Стал лучом света в темном царстве незнакомых рамок.
Яндекс СпичКит , что не только дало отличные результаты, но и потребовало минимум времени на изучение документации.
Фактически нужная опция озвучивания сообщения от пожертвования пользователя была получена после трёх строчек кода:
Достаточно указать свой личный API-ключ, выбрать голос (захар), скорость, эмоциональную окраску (хорошо) — и все готово.const tts = new ya.speechkit.Tts({ apikey: 'ffffffff-2222-4444-0000-1111111111', emotion: 'good', speed: 1.2 }) .
tts.speak(donate.text_data, { speaker: 'zahar' })
За плечами у нас литры энергетических напитков и 3 недели интенсивного развития.
Подводя итог, хотелось бы сказать, что как стартап мы находимся даже не на первой стадии.
Но с точки зрения первоначальной цели мы добились главного: удалось реализовать практически все возможности (кроме голосовых сообщений, в которых еще есть некоторые шероховатости), что не часто удается молодым разработчикам на реальном уровне.
проект. При этом никто не ссорился, все четверо находятся в лодке и продолжают верить в успех.
Таким образом, достижение разблокировано, но до него еще далеко.
Если наш опыт показался вам интересным, буду рад ответить на ваши вопросы в комментариях.
Теги: #Разработка стартапов #Хакатоны #Продуктовый менеджмент #Разработка электронной коммерции #Медиаменеджмент #ИТ-терминология #Конкурс проектов #ЯСтрим
-
Советы По Установке Удаленного Доступа К Пк
19 Oct, 24 -
Обзор Нетбука Eeepc-1005Ha
19 Oct, 24 -
Вино, Вильгельм
19 Oct, 24