Проект
TeamPlayer — ВКР бакалавриата
iOS-приложение для совместного прослушивания музыки в сообществах — общий плеер, чат и плейлисты в реальном времени
- 3
- сервиса — iOS-приложение, сервер на Vapor и сервис на FastAPI
Задача
Слушать музыку вместе с друзьями на расстоянии неудобно: каждый включает трек у себя, и воспроизведение расходится. Нужны общие комнаты-сообщества, где у всех участников играет одно и то же и музыку можно обсуждать в чате.
Решение
Проект из трёх частей. iOS-приложение на Swift и UIKit: главная с публичными сообществами, поиск, медиатека и плейлисты, комната с общим плеером и чатом. Сервер на Vapor с PostgreSQL (Fluent, миграции): пользователи и токены, комнаты — публичные и по коду, участники и роль DJ, рейтинг комнат, плейлисты. Через WebSocket сервер раздаёт аудио по чанкам всем участникам комнаты, синхронизирует команды play / pause / next / back и ведёт чат. Отдельный сервис на FastAPI работает с Яндекс Музыкой: поиск, треки, альбомы, избранное и плейлист дня.
Результаты
- Синхронное воспроизведение у всех участников комнаты через WebSocket
- Чат сообщества в реальном времени