Закрыть объявление

Apple на прошлой неделе представила, среди прочего новый Apple TV с операционной системой tvOS. Тот факт, что в новый черный ящик можно устанавливать приложения из App Store, безусловно, очень порадовал разработчиков.

У разработчиков есть два варианта. Они могут написать собственное приложение, которое будет иметь полный доступ к оборудованию Apple TV. Доступный SDK (набор библиотек для разработчиков) очень похож на то, что разработчики уже знают по iPhone, iPad, а языки программирования те же — Objective-C и младший Swift.

Но для более простых приложений Apple предложила разработчикам второй вариант в виде TVML — Television Markup Language. Если вам кажется, что имя TVML подозрительно похоже на HTML, вы правы. На самом деле это язык разметки, основанный на XML и очень похожий на HTML, только он намного проще и имеет более строгий синтаксис. Но он идеально подходит для таких приложений, как Netflix. И пользователи тоже выиграют, потому что строгость TVML позволит мультимедийным приложениям выглядеть и работать практически одинаково.

Путь к первому приложению

Поэтому первое, что мне нужно было сделать, это загрузить новую бета-версию среды разработки Xcode (доступна версия 7.1). здесь). Это дало мне доступ к tvOS SDK и позволило начать новый проект, специально ориентированный на Apple TV четвертого поколения. Приложение может быть только для tvOS, либо код можно добавить в существующее приложение для iOS, чтобы создать «универсальное» приложение — модель, аналогичную сегодняшним приложениям для iPhone и iPad.

Проблема первая: Xcode предлагает только возможность создания собственного приложения. Но я очень быстро нашел в документации раздел, который поможет разработчикам изменить этот скелет и подготовить его для TVML. По сути, это несколько строк кода на Swift, которые прямо на Apple TV создают полноэкранный объект и загружают основную часть приложения, уже написанного на JavaScript.

Проблема вторая: приложения TVML действительно очень похожи на веб-страницу, а потому весь код также загружается из Интернета. Само приложение по сути является всего лишь «загрузчиком», оно содержит лишь минимум кода и самые основные графические элементы (иконка приложения и тому подобное). В конце концов я успешно поместил основной код JavaScript прямо в приложение и получил возможность, по крайней мере, отображать собственное сообщение об ошибке, когда Apple TV не подключен к Интернету.

Третья небольшая проблема: iOS 9 и вместе с ней tvOS строго требуют, чтобы все соединения с Интернетом происходили в зашифрованном виде через HTTPS. Эта функция, представленная в iOS 9 для всех приложений, вызвана давлением на конфиденциальность пользователей и безопасность данных. Поэтому необходимо будет развернуть SSL-сертификат на веб-сервере. Его можно приобрести всего за 5 долларов США (120 крон) в год или воспользоваться, например, сервисом CloudFlare, который позаботится о HTTPS сам, автоматически и без вложений. Второй вариант — отключить это ограничение для приложения, что пока возможно, но я бы его однозначно не рекомендовал.

После нескольких часов чтения документации, где все еще встречаются мелкие ошибки, я разработал очень простое, но работающее приложение. На нем отображался популярный текст «Hello World» и две кнопки. Я потратил около двух часов, пытаясь заставить кнопку стать активной и действительно что-то сделать. Но, учитывая раннее утро, я предпочёл пойти спать… и это было хорошо.

На днях мне пришла в голову блестящая идея загрузить готовый образец приложения TVML прямо с Apple. Я очень быстро нашел в коде то, что искал, и кнопка была жива и работала. Помимо прочего, я также нашел в Интернете первые две части руководства по tvOS. Оба ресурса очень помогли, поэтому я начал новый проект и запустил свое первое настоящее приложение.

Первое реальное применение

Я начал полностью с нуля, первую страницу TVML. Преимущество в том, что Apple подготовила для разработчиков 18 готовых шаблонов TVML, которые нужно просто скопировать из документации. Редактирование одного шаблона заняло около часа, в первую очередь потому, что я готовил наш API для отправки готового TVML со всеми необходимыми данными на Apple TV.

Второй шаблон занял всего около 10 минут. Я добавил два JavaScript-скрипта — большая часть кода в них исходит непосредственно от Apple, так зачем изобретать велосипед. Apple подготовила сценарии, обеспечивающие загрузку и отображение шаблонов TVML, включая рекомендуемый индикатор загрузки контента и отображение возможных ошибок.

Менее чем за два часа мне удалось собрать очень простое, но работающее приложение PLAY.CZ. Он может отображать список радиостанций, фильтровать его по жанрам и запускать радио. Да, многих вещей нет в приложении, но основы работают.

[youtube id="kLKvWC-rj7Q" ширина=”620″ высота=”360″]

Преимущество заключается в том, что приложение по сути представляет собой не что иное, как специальную версию веб-сайта, работающую на JavaScript, и вы также можете использовать CSS для изменения внешнего вида.

Apple все еще нужно подготовить еще кое-что. Значок приложения не один, а два — поменьше и покрупнее. Новизна в том, что иконка не является простым изображением, а содержит эффект параллакса и состоит из 2-5 слоев (фон, объекты в середине и на переднем плане). Все активные изображения в приложении могут содержать один и тот же эффект.

Каждый слой на самом деле представляет собой просто изображение на прозрачном фоне. Apple подготовила собственное приложение для компиляции этих многослойных изображений и обещает в ближайшее время выпустить плагин экспорта для Adobe Photoshop.

Еще одно требование — изображение «Верхняя полка». Если пользователь размещает приложение на видном месте в верхнем ряду (на верхней полке), приложение также должно предоставлять контент для рабочего стола над списком приложений. Это может быть как простая картинка, так и активная область, например со списком любимых фильмов или, в нашем случае, радиостанций.

Многие разработчики только начинают изучать возможности новой tvOS. Хорошей новостью является то, что написать контентное приложение очень легко, и Apple прошла долгий путь для разработчиков с помощью TVML. Создание приложения (например, PLAY.CZ или iVyszílő) должно быть простым и быстрым. Есть большая вероятность, что большое количество приложений будет готово одновременно с поступлением в продажу нового Apple TV.

Написать собственное приложение или портировать игру с iOS на tvOS будет сложнее, но ненамного. Самым большим препятствием будут различные элементы управления и ограничение в 200 МБ на одно приложение. Нативное приложение может скачать из магазина только ограниченную часть данных, а все остальное необходимо скачивать дополнительно, и нет никакой гарантии, что система не удалит эти данные. Однако разработчики наверняка быстро справятся с этим ограничением, в том числе благодаря наличию набора инструментов под названием «App Thinning», которые также являются частью iOS 9.

Темы: , ,
.