В современную эпоху потокового видео стриминговые сервисы стремятся обеспечить максимально широкий охват аудитории, предоставляя доступ к своему контенту на самых разных устройствах — от старых телевизионных приставок до современных игровых консолей и смарт-устройств. В этом контексте Disney+, один из крупнейших мировых стриминговых сервисов, создаёт уникальные возможности для партнёров и разработчиков благодаря своему Application Development Kit (ADK). Disney+ ADK представляет собой набор инструментов и библиотек, разработанных для упрощения и стандартизации процесса портирования и запуска приложения Disney+ на самых разных платформах. В отличие от классических браузерных решений, где приложение зависит от качества и возможностей встроенного браузера устройства, ADK предлагает собственный нативный клиент, написанный на языке программирования C, что гарантирует высокую производительность и стабильность. История создания Disney+ ADK началась ещё в конце 2019 года, когда команда разработчиков поставила перед собой амбициозную задачу — создать универсальную и масштабируемую платформу, способную работать как на современных мощных процессорах, так и на десятилетних устройствах с архитектурой MIPS.
Такая совместимость позволила Disney+ быстро расширить собственную аудиторию по всему миру и оказаться практически на любом устройстве, которое могут иметь пользователи. Основой ADK является Native Client Platform v2 (NCPv2), известная внутри команды под кодовым названием «m5». Этот компонент, написанный в соответствии со стандартом C’99, обеспечивает весь необходимый функционал для запуска приложения, включая управление графикой, сетью, вводом с устройств и рендерингом. Благодаря продуманной архитектуре NCPv2 может быть как «зашит» в устройство, так и поставляться в виде апдейтабельного бинарного файла. Видео является сердцем любого стримингового сервиса, и Disney+ не исключение.
Для реализации качественного воспроизведения видео используется собственный Native Video Engine (DS-NVE), разработанный на C++’98. Этот движок поддерживает широкий спектр форматов и технологий воспроизведения, включая UHD, Dolby Vision и Dolby Atmos, что позволяет пользователям наслаждаться контентом в максимальном качестве вне зависимости от возможностей их устройств. Уникальной чертой Disney+ ADK является Platform Abstraction Layer (Steamboat). Эта абстракция позволяет партнёрам интегрировать Disney+ в свои устройства, не вникая в тонкости каждой конкретной аппаратной платформы. Steamboat состоит из трёх основных компонентов: ядро для управления системными ресурсами, абстракция графического интерфейса и API для взаимодействия с мультимедийным функционалом устройства.
Благодаря этому интеграция сводится к реализации лишь небольшой части функционала, обычно всего около четырнадцати методов, что значительно упрощает и ускоряет процесс портирования. Плюсом ADK служит то, что клиентское приложение Disney+ написано на языке Rust и компилируется в WebAssembly (WASM). Такая архитектура позволяет обновлять приложение удалённо, без необходимости перепрошивки устройства. WASM — это современный стандарт переносимого бинарного кода, который обеспечивает безопасность и высокую производительность при исполнении. Благодаря этому сервис получает гибкость в развёртывании новых функций и исправлении багов, а пользователи — свежий и стабильный продукт без задержек.
Большое внимание Disney уделяет тестированию качества работы ADK на самых разнообразных устройствах. Для этого компания использует недорогие, но производительные Raspberry Pi в качестве ориентировочных тестовых платформ. Такие «кластерные» решения помогают гарантировать одинаково высокий пользовательский опыт даже на устройствах с ограниченными ресурсами, минимизируя риски непредвиденных сбоев и багов. Для партнёров интеграции Disney+ разработано обширное тестовое окружение с поддержкой автоматизации и возможности удалённого взаимодействия. Через WebSocket можно получить консольный доступ к системе, запускать тесты и проводить отладку в реальном времени.
Такой подход существенно снижает количество ошибок, сокращает время выхода продукта на рынок и обеспечивает стабильность работы приложения для конечных пользователей. Стоит отметить, что ADK открывает новые горизонты не только для Disney+, но и для других сервисов, таких как Hulu или ESPN+. Архитектура позволяет многоплатформенную поддержку и лёгкую адаптацию для различных брендов внутри Disney Streaming, обеспечивая масштабируемость и экономию ресурсов при разработке. Важное преимущество Disney+ ADK заключается в том, что он обладает гораздо меньшим размером и более узкой специализацией, чем полноценный браузерный движок. Это позволяет системе работать на устройствах с ограниченной памятью и вычислительной мощностью, одновременно повышая безопасность и контроль над всей технологической цепочкой.
Disney Streaming получает возможность быстро реагировать на изменения, обновляя функционал без зависимости от поставщиков оборудования и необходимости согласования обновлений ПО на уровне производителей устройств. Переход на такую гибкую и мощную платформу — неизбежный тренд в развитии стриминговых решений. ADK демонстрирует, что возможно добиться сочетания широкой совместимости и высокого качества пользовательского опыта, сохранив при этом управляемость и скорость выпуска новых версий. В свете растущей конкуренции на рынке потокового видео и анализа поведения пользователей это становится ключевым фактором успеха. Disney+ Application Development Kit уже привлек внимание множества партнёров по всему миру и используется для интеграции с тысячами уникальных платформ и устройств.