🔥

Тред (Андрей Нагих)


👨‍💻Написание приложений. Когда приспособился отлаживать, когда пролез в стор, остаётся заниматься разработкой. И тут есть свои сложности, но уже более дельные.

Чем принципиально телевизор отличается от всех остальных платформ? Мы управляем телевизором при помощи пульта. Такое управление называют D-Pad: это кнопки курсора, и в придачу ok и return. (STB кстати сюда же относятся)

Это драматически меняет UX, и UI вместе с ним. Во-первых, пользователь не может просто кликнуть по элементу. Он должен сначала подвести к нему фокус. А для этого, фокус надо визуализировать.

Писать это приходится руками, т.к. web платформа такого не предлагает. Мы пытались скрестить фокус с tabindex, но эксперимент провалился, это разные вещи.

Ещё одна проблема c рамкой фокуса: как выбрать следующий элемент, когда мы нажимаем кнопку курсора. Элементы вообще говоря могут быть расположены так, что выбор будет неочевиден.

Кстати именно поэтому на телевизоре невозможно пользоваться ванильным Android. Да, экран переходит в альбомную ориентацию, приложения перерисовываются, он это умеет со времён планшетов. Но никто не тестирует приложения на управляемость с D-pad.

Даже в приложениях Гугла есть места где фокус становится невидимым, или скачет как угорелый по экрану, перемещаясь крайне нелогично. Говорят, в AndroidTV с этим лучше. Я на это надеюсь. Иначе, стоило огород городить.

Дальше. Для ввода текста нужна экранная клавиатура. Писать её тоже придётся самим. Есть платформы, где можно позвать системную, и это было бы неплохо (стандартные контролы всегда лучше). Но для других всё равно придётся рисовать.

Ввод текста в SmartTV это просто боль. ⌨️Кнопки пульта нажимаются вязко. ⌨️ИК сигнал может улететь не туда. ⌨️При вводе есть задержка. Всё это приводит к пропускам букв, и одновременно повторам. А до backspace надо ещё докликать! 🤯

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

На железках под капотом Linux, и переферия там нормально поддерживается. Важно понимать, что это ваш личный чит-код. Нельзя затачивать интерфейс под эти устройства. У пользователей в руках всё ещё пульт.

Кстати это работает и в другую сторону. Желательно, чтобы периферия у вас всё таки работала, если кто-то её всё таки подключит. Например, поначалу у нас поля ввода принимали только цифры. Была плохо написана обработка клавиш, т.к. на пульте нет букв.

Радует, что проблема не только на смартах, но и в Android приставках, а значит её решает больше компаний. И индустрия идёт в сторону голосового ввода.

В приставках Электронного города, которые тоже делает Инетра, пульт помимо ИК цепляется по Bluetooth. И микрофон встроен прямо в пульт. На приставке работает распознавание голоса в команды. В сумме получается неплохо.

Но я отношусь к голосовому вводу скептически. Он требует отдельного UX и добротной ML под капотом. Нельзя просто отправить аудио гуглу, надо ещё найти команду и аргументы в тексте, который он вернёт.

Мне больше нравится идея спаривания STB с приложением на смартфоне. Например, у приставок Eltex есть такое. Команды передаются по сети, т.е. с гарантией доставки. Клавиатура — ваша привычная с телефона. Но на SmartTV я такого ещё не видел.

Или более высокоуровневое приложение-компаньон в котором не элементы управления, а, например, дубль каталога фильмов. При выборе фильма, просмотр запускается на ТВ. Например так умеет Youtube.