Смотреть шоу, телеканалы, спортивные трансляции, фильмы и другой контент на Smart TV, используя приложения видеоплатформ — уже типовой сценарий. По данным на конец 2025 года, объём потребления контента в VK Видео увеличился в 2,1 раза (на 110%) по сравнению с аналогичным периодом 2024 года. Наибольшее вовлечение аудитории зафиксировано на платформе Smart TV: в начале 2026 года среднее время просмотра на одного пользователя — 241 минута. При этом многие не думают, как устроен софт для большого экрана.

Я Антон Халин, старший разработчик видеоплатформы VK. До перехода в команду VK я занимался веб-разработкой и почти не задумывался о специфике приложений для телевизоров: платформенных ограничениях, управлении с пульта и особенностях интерфейсов «для дивана». Со временем понял, что это отдельный мир со своими правилами.

В этой статье разберу, чем разработка под Smart TV отличается от обычного веба и какие ключевые моменты встречаются на старте.

Начнём с базы: что такое Smart TV

Smart TV часто считают телевизором с доступом в интернет и приложениями. Но это полноценная программная платформа с возможностями и ограничениями — ближе к мобильным устройствам.

Единого стандарта у Smart TV нет. Каждая платформа по-своему разрабатывает базовые функции: доступ в сеть, магазин приложений, голосовых помощников, подключение периферии и регулярные обновления ПО. Именно из-за этой разнородности разработка под телевизоры сложнее, чем кажется.

Мир устройств Smart TV чётко фрагментирован — большинство брендов использует всего несколько типов операционных систем. Например, в VK Видео мы выделяем эти типы ОС:

  • Apple TV

  • Android TV (Яндекс ТВ, Салют ТВ, Huawei, Xiaomi)

  • Web-based (Samsung, LG, Hisense)

Web-based устройства — телевизоры или приставки, работающие на веб-технологиях (HTML, JavaScript, CSS). Многие бренды создают и продвигают свои ОС, поэтому в web-based нет единого стандарта. 

Особенности проектирования интерфейсов: забываем о вебе

Для меня, как веб-разработчика в прошлом, стало открытием, что подходы к UX/UI нужно пересмотреть. Основная причина — принципиально иной способ взаимодействия. Рассмотрим это на примерах для наглядности.

Линейная навигация

Пользователь управляет интерфейсом через D-pad (крестовину) на пульте: вверх, вниз, влево, вправо, выбор (OK). 

Поэтому важно, чтобы линейные переходы между элементами были логичными и предсказуемыми. Также некоторые производители (например, LG с Magic Remote) добавляют на пульте к D-pad поддержку указателя, имитирующего мышь. И нужно дублировать логику навигации и для него.

Принцип 10-foot UI 

При разработке приложений под Smart TV нужно проектировать интерфейс так, чтобы его было видно с расстояния 10 футов, или 3 метра. Поэтому в UI должны преобладать:

  • крупные элементы;

  • чёткие контуры;

  • визуал (минимум текста).

Также рекомендуют использовать сетку и группировку элементов, но это уже похоже на привычную веб-разработку.

Best Practices и гайдлайны 

У Smart TV есть свои лучшие практики в UX/UI. Это боковое меню, top shelf («верхняя полка»), скелетоны — визуальные заготовки элементов интерфейса, которые видит пользователь во время загрузки страницы или экрана.

Часто вендоры дают строгие рекомендации по дизайну, особенно для приложений с видеоконтентом. Если проигнорировать их требования, приложение могут отклонить при модерации в магазине.

Примечание. Подчеркну, что при разработке интерфейсов нужно учитывать, что у разных технологий дисплеев (например, OLED, QLED) отличается контрастность. 

Управление навигацией

При разработке приложений под Smart TV важно проработать навигацию и логику управления с пульта. Рассмотрим на примерах. 

Допустим, фокус на элементе в строке 1 кластера 1. Как понять, куда перейдёт фокус при долгом нажатии стрелки вправо?

Можно предположить, что в кластер 2, потом обратно в 1 и далее как на картинке.

Или наоборот, переходы должны идти из кластера в кластер, как показано на изображении ниже. 

Правильного ответа нет, так как нет единого стандарта — это и основное ограничение, и уникальность. Каждый сам устанавливает правила навигации для своего приложения — телевизор скажет, какой keyCode вызывается при нажатии на пульт, остальное на плечах разработчика.

Сложности могут возникать даже при более корректном подходе с линейной навигацией интерфейсов, когда кластеры чётко структурированы. 

Например, здесь неочевидно, с какого кластера можно и правильно переходить на кнопку поиска.

При проектировании интерфейсов и программировании навигации есть множество подводных камней, с которыми можно столкнуться. 

Технологический стек

С точки зрения технологий разработка под Smart TV не требует узкой специализации: если вы пишете на JavaScript, то вы уже умеете писать под ТВ.

Но есть нюанс. Под капотом у большинства Smart TV — Chromium, и его версии отстают от актуальных и зависят от модели и года выпуска телевизора. Кроме того, у каждой ОС своя таблица совместимости версий ОС и Chromium — её стоит учитывать при разработке.

Важно:

  • Поддержка современных API не гарантирована, используйте полифилы (polyfill) — решения, благодаря которым современные функции JavaScript, HTML5 и CSS работают там, где они изначально не поддерживались.

  • Нужно сразу определиться с оптимальной стратегией сборки приложения. Одна сборка на каждую ОС для максимума совместимости (минимализм в выборе фич) или несколько таргетированных под разные версии ОС (больше контроля, но сложнее поддержка).

Для стека подход классический — его можно сформировать под задачу:

  • Нужен быстрый старт, стабильность, а писать костыли для навигации и работы с TV API не хочется. Используйте стартовые шаблоны или библиотеки от вендоров, а также решения open-source.

  • Нужна мультиплатформенность (web-based, Android, tvOS). Берите кроссплатформенный фреймворк или библиотеку (например, React Native).

  • Хочется свой «велосипед». Подберите решение на свой вкус — например, Vanilla JS, React и другие. Главное — полифилить под нужную версию Chromium.

Тестирование

У тестирования приложений под Smart TV есть специфика, и зачастую нужен большой стенд и само ТВ-устройство. Теоретически можно обойтись без реального телевизора — у некоторых брендов есть симуляторы или эмуляторы. А ещё мы можем попробовать открыть и протестировать приложение в старом браузере, ведь под капотом Chromium. Но это не серебряная пуля. Вот пример из моей практики.

Однажды мне прилетел баг-репорт: на старом телевизоре с WebOS приложение зависало и перезагружалось при открытии и до экрана онбординга не доходило. При этом в эмуляторе и браузере всё работало. На скриншоте видно, что я использую симулятор и экран открывается без проблем.

photo_2025-07-05_10-00-47.jpg
photo_2025-07-05_10-00-47.jpg

Посмотрел версию 53 Chromium — согласно документации, на этом ТВ была именно она — на Windows при помощи VM на Mac.

photo_2025-07-05_10-11-22.jpg
photo_2025-07-05_10-11-22.jpg

Я подозревал, что не хватает памяти. Попытался использовать performance.memory в отладчике самого телевизора, но безуспешно — API работал не так, как я ожидал, и полезной информации не дал.

Я попробовал подход «Разделяй и властвуй»: последовательно удалял элементы, пока у меня не остались голый HTML и CSS. Проблема сохранилась.

photo_2025-10-05_19-16-17.jpg
photo_2025-10-05_19-16-17.jpg

Когда увидел пустой экран, сразу понял — дело в рендеринге эффекта размытия на CPU. Чтобы исправить, применил хак transform: translate3d(0,0,0), который принудительно задействует GPU (композитинг). Нагрузка упала, зависания пропали.

Вывод — тестировать приложения под Smart TV исключительно на эмуляторах и симуляторах недостаточно:

  • симулятор не всегда точно отражает поведение железа;

  • эмуляторы и симуляторы могут не воспроизводить специфические баги, связанные с памятью;

  • эмуляторы и симуляторы сложно ставить под некоторые архитектуры процессоров (например, Apple Silicon).

В VK Видео мы тестируем на реальных устройствах. Для этого в наших офисах есть стенды с множеством ТВ, на которых проверяем финальные сборки приложения. 

Подытожим — вот советы, которые помогут на старте разработки приложения:

  • Учитывайте ограничения ОС конкретного бренда. Например, иногда сильно урезан LocalStorage.

  • Ориентируйтесь при разработке на аппаратные ограничения ТВ-устройств.

  • Убедитесь, что нужный WebAPI доступен. Если он закрыт, изучите документацию — возможно, он есть в TV API.

От теории к практике: сборка приложения для ТВ

Разберём адаптацию приложения под Smart TV на примере WebOS, возможности CLI-инструмента и сборку пакета формата .ipk, который подходит для телевизоров LG.

В документации есть два варианта:

  • установить WebOS CLI;

  • установить расширение для VSC — WebOS Studio. По сути это графический интерфейс для CLI.

Мне привычнее работать через CLI, который называется ares. 

Документация советует команду ares-generate. Видим, что шаблонов несколько, но нас сейчас интересует базовый.

Вводим команду — и CLI просит заполнить поля. Что-то похожее мы делаем, когда пишем npm init. 

Видим, что ares сгенерировал шаблон — так выглядит файловая структура. Файл appinfo чем-то похож на package.json для NPM-пакета, который хранит метаинформацию приложения.

Видим сервисную библиотеку от WebOS для общения с внутренними сервисами телевизора. В файле index.html лежит Hello World. 

Есть 2 варианта работы: 

  • вести разработку в папке webos-app;

  • поместить в неё уже готовый бандл приложения и формировать установочный файл проекта для ТВ.

Команда для сборки проекта — ares-package. 

Выполняем её и получаем установочный файл для ОС WebOS с расширением .ipk. 

Если нужно, можно проверить сразу в симуляторе, работает ли сборка проекта. Для этого его нужно установить на свой компьютер — список доступных симуляторов здесь. После этого открываем файл формата .ipk в запущенном симуляторе.

Установка на ТВ на примере WebOS

У нас уже есть установочный файл — нужно подключиться к ТВ и установить его. 

  1. Регистрируемся на сайте девелоперов WebOS

  2. Устанавливаем на телевизор приложение Developer Mode из магазина и вводим данные, которые указали до этого при регистрации на сайте. После этого будет можно перевести ТВ в режим разработчика.

Согласно документации, нужно связать телевизор и ПК через ares командой ares-setup-device. 

Вводим данные из приложения ТВ. Затем запускаем установку и указываем ТВ, которому нужен софт, и путь до установочного файла.

Если всё прошло успешно, в списке приложений появится дефолтная иконка от ares-cli. Профит — приложение перенесено на Smart TV и готово к работе.

Что в итоге

Разработка приложений под Smart TV — задача со своей спецификой. Нужно учитывать разные аспекты, многие из которых неочевидны для разработчиков из других областей. Это выход за рамки привычного веба и смена парадигмы мышления: от свободы мыши и клавиатуры к линейной навигации, от мощных десктопов к ограниченным ТВ-системам, от современных веб-стандартов к забытым хакам для устаревших браузеров. 

При этом порог входа в разработку под Smart TV не так уж высок — на старте можно опираться на опыт и знания из других областей разработки. Можно начать с WebOS: собрать и установить простое приложение на ТВ. 

А вы сталкивались с разработкой под SmartTV? Что для вас стало сложностью или инсайтом? Делитесь опытом.

Комментарии (4)


  1. nikolayshabalin
    11.03.2026 12:23

    Слышал от разработчиков для телевизоров, что нужно учитывать наличие всего шести кнопок: влево, вверх, вправо, вниз, ок(чвидимо, что-то типа Enter) и back(назад). Все остальные кноки на пульте могу отсутсвовать и поэтому на них нельзя полагаться.

    Опыт вёрстки под телевизоры любопытный конечно! Спасибо за статью


  1. iBolitt
    11.03.2026 12:23

    Как пользователь apple tv с пультом с сенсорной панелью скажу, что тестирование приложение проходят плохо. Не понимаю, почему вы не замечаете или закрываете глаза на проблемы.


    1. iBolitt
      11.03.2026 12:23

      Я вижу множество проблем в управлении, интерфейсе на apple tv с сенсорным пультом управления. После моих сообщений в конце прошлого года добавили быструю перемотку гранями пульта. Но сделали сначала не совсем правильно. Перемотка работала после касания на стороны пульта, а не кликом на стороны пульта. Из-за чего нечаянные касания на стороны приводили к ложным перемоткам. Потом это исправили. Сделали как надо. То есть именно физические клики на стороны пульта. Но вот может месяц назад снова вернулась перемотка касанием. Сейчас перемотка работает как касанием, так и кликом. Уберите перемотку касанием и оставьте физическим кликом на стороны.

      Также, когда открыт список эпизодов и потом перемещаешься на шкалу свайпом вниз, то обратно вернуться к превьюшкам эпизодов свайпом вверх не получается. Также есть другие проблемы с этим блоком эпизодов. Долго писать.


  1. Gamayun_m
    11.03.2026 12:23

    Кайф, спасибо за статью!

    5 лет назад чтобы что-то узнать про разработку или тестирование на ТВ надо было прям основательно поискать, а все имеющееся в интернете можно легко было за полдня найти и изучить/посмотреть.

    Видимо по старой памяти радуюсь каждой новой статье по теме))))