Для тестирования внесенных изменений и проверки приложения на ТВ требовалось скопировать его на флешку, причем положить очередную версию следовало в папку с определенным названием, которая в свою очередь размещалась в папке – также с волшебным именем, а та – в еще одной.Тонкости разнились по платформам и быстро эволюционировали, не всегда спеша доступным образом уведомлять об этом разработчиков. То менялось название магических директорий, то способ их установки на самом ТВ – да-да, помимо прочего, требовалось проделать еще десяток манипуляций в интерфейсе устройства, чтобы приложение установилось или обновилось. А то и вовсе пропадала поддержка USB-носителей, и все сборки приходилось загружать на специальные сервера через сайт для TV-девелоперов платформы. Каждая такая операция на каждой платформе имела склонность не работать. Просто не делать очевидно от нее ожидаемое: «увидеть» обновленную версию приложения, запустить очередную сборку, подконнектиться к ПК или серверу. Только внутреннее чутье и передаваемый из уст в уста тайный опыт позволяли выживать в мире ТВ-разработки. То требовалось обязательно изменить название приложения, то указать порт для соединения, то проставить секретную галочку. Лидером по сюрпризам и скорости их изменения, пожалуй, был Samsung. Модель каждого года неизбежно меняла свою цепочку танцев с бубном. Возможность просто закинуть код на флешку, вставив ее в ТВ, быстро сменилась необходимостью синхронизировать приложения со своим рабочим сервером. Разумеется, выполнив предварительно ряд волшебных настроек на своем ПК, в интерфейсе ТВ и поменяв конфигурационный файл для очередного багфикса. А в конце 2010-х уже приходилось выполнять пачку операций по пересборке и переустановке в специально поставляемой консоли разработчиков или же в IDE. Рядышком держался LG – простота копирования на флешку сохранилась там несколько дольше, хотя и требовала постоянных пересборок через специальный сайт с выставлением определенных последовательностей галочек и выбором магических опций. Philips оставался мечтой тестировщика, пожалуй, дольше всех. Достаточно было запустить веб-страничку приложения на своем локальном веб-сервере и для открытия его на реальном ТВ требовалось всего лишь ввести IP-адрес вашего ПК, доступный внутри сети. Другой вопрос, что ввод двоеточий, слешей и прочих символов с телевизионного пульта – то еще удовольствие, по удобству напоминающее те чудесные интерфейсные решения, когда для переключения чекбокса вам приходится перетаскивать скролл или ловить бегающий по экрану мяч.
Мы опытным путем доходили до сотен мелочей, неизвестных сообществу. Сталкивались с десятками сюрпризов. Маленькая команда общалась с представителями ТВ-платформ, выясняя тонкие моменты. Помню получасовую борьбу со странным багом – невозможностью выставить выбранный элемент в выпадающем списке на одной из моделей. Простейшая операция, работающая в браузере на моем ПК («у меня же всё работает»), других платформах, но упорно отказывающаяся вести себя приличным образом на «бракованном телеке». Оказалось, что установленная на ней версия браузера, видимо, была настолько урезана в возможностях JS, что поддерживался только базовый вариант выбора свойства по индексу – работа как со списком, без именованного «синтаксического сахара».
Мы лично обсуждали с тестировщиками ТВ-платформ вопросы аппрува наших приложений и, быть может, первыми побеждали уникальные баги встроенных в них плееров – перемотки шифрованного live-потока в неверное место, подвисания и уходы в бесконечную буферизацию. И это всё: дух исследовательства и атмосфера первопроходца, неожиданные баги и вызовы службы поддержки с их любопытными причинами отказов в аппруве – добавляло азарта, добавляло необходимости думать своей головой (Stack Overflow и Google здесь бессильны) и, в конечном итоге, – добавляло мастерства.
Мне доводилось регулярно переписываться в «Скайпе» с милой девушкой из Индии, уточняя у нее детали реджекта очередной заявки, а также выясняя дозволяемые ими способы устранения. Релизы ТВ-приложений – особенно в начальные 2010-е – отдельная увлекательнейшая для познавших дзен тема. Могли ли вы представить себе, что, став уважаемым разработчиком, вы будете вынуждены составлять PowerPoint-презентации, описывая каждую кнопку и кликабельный элемент в интерфейсе – как обязательные требования релиза вашего кода? Составлять таблички с номенклатурой каждого экрана, интерактивных частей интерфейса, рисовать схемки перехода? Безусловно, учитывая единственно имеющуюся русскую локализацию наших сервисов, тестировщикам из Индии можно поставить памятник за их нелегкие трудовые будни – вряд ли бы мои пользовательские флоу оказались столь успешными, попадись мне приложение на хинди. Разумеется, у каждой платформы были свои мнения о форматах и номенклатуре поставляемых с приложением иконок, технических и интерфейсных описаний. Неизменным оставалось только стремящееся к бесконечности число заполняемых форм, прикрепляемых ppt– и xls-файлов и размеров нарезаемых пиктограмм. А еще – нигде изначально не задокументированных причин реджектов. Так, только опытным путем можно было установить, что ваше приложение не попадет в стор, если в какой-то момент на экране не окажется какого-либо элемента в фокусе. Причем фокус должен быть заметен с нескольких метров и желательно представлять собой жирнющую рамку (здесь дизайнеры грустно вздыхают) красного/желтого или очевидно контрастного цвета. Если вы случайно решили подсветить выбранный тамбнейл фильма, а заодно и кнопку «Купить» на нем – можете попрощаться с перспективой подарить новую версию приложения пользователям где-то еще на месяц: именно столько мог занимать каждый ретест, нередко вдобавок требующий личных напоминаний и «подпинываний» поддержки. Почему? Понятное дело – потому что теперь у вас одновременно два элемента в фокусе.
Читать дальше