Разработка медиаплеера в кроссплатформенном приложении — это не только про воспроизведение аудио и видео, но и про работу с жизненным циклом, фоновым режимом, системными событиями и различиями платформенных API.
Расскажу, как реализовать единый слой бизнес-логики для медиаплеера на Kotlin Multiplatform и при этом сохранить нативное поведение на Android и iOS. Разберем, как выстроить общий контракт взаимодействия с медиа, синхронизировать состояния плеера и управлять воспроизведением в разных режимах — от фонового до полноэкранного и Picture-in-Picture.
Покажу архитектурные решения, которые позволяют избежать дублирования логики, и разберу реальные проблемы, с которыми пришлось столкнуться: управление ориентацией, различия в работе PiP, взаимодействие с системными API и синхронизация жизненного цикла между платформами.
Доклад ориентирован на разработчиков, которые работают с Kotlin Multiplatform и хотят применять его в сложных продуктовых сценариях, где важно сохранить нативный пользовательский опыт и контроль над платформенными возможностями.