Connect with us

Разработка

Опыт разработки под Apple TV: Сложности и радости

Разработка под tvOS оставляет только положительные впечатления. TVMLKit подойдёт очень многим приложениям и позволит сэкономить время и ресурсы на вёрстке, визуальных эффектах и оптимизации. Но если вы захотите создать что-то визуально уникальное, то всегда можно обратиться к нативным способам разработки.

AppTractor

Опубликовано

/

     
     

Игорь Неменёнок из Chili Studio поделился с нами опытом разработки приложения для новой платформы Apple TV.

Прошло не так много времени с начала продаж нового Apple TV, а разработчики уже вовсю экспериментируют с новой платформой. Наша команда из Chili Studio решила не оставаться в стороне и попробовать свои силы в разработке приложения для tvOS. В этой статье мы поделимся своим опытом и расскажем о подводных камнях, на которые нам довелось натолкнуться.

Дизайн приложения

После прочтения гайдлайнов и нескольких вечеров, был готов приблизительный дизайн приложения. Основные советы, которые даёт Apple – всё должно быть просто, чисто и интуитивно понятно. Чтобы пользователь понимал, куда можно нажать, что можно скролить и т.п.

TV3

TVMLKit

Первым вариантом для разработки приложения был выбран TVMLKit, т.к. Apple предлагает именно этот подход для написания клиент-серверных приложений для Apple TV. Подробнее об этом подходе можете почитать на странице документации и статью от ребят из Rutube, которые уже выпустили своё приложение на TVMLKit’e.

Плюсы:

  • Легко использовать.
  • Большое количество готовых шаблонов и элементов.
  • UI можно обновлять на сервере. Означает, что не нужно при малейших изменениях отправлять приложение на ревью и ждать неделю.

Минусы:

  • Ограничения в дизайне.
  • Сложность дебага. Разработчики жалуются, что Safari web inspector не видит контекста приложения.
  • Нет возможность редактировать некоторые хедеры в запросах. В нашем случае это был жирный минус, т.к. API видео сервиса не работает, если не указать кастомный User-Agent. Всё это потому, что для запросов используется XMLHtttpRequest.

Из-за ограничений в дизайне и невозможности редактирования User-Agent’a мы решили отказаться от этого подхода и разработать традиционное приложение.

Традиционные приложения

С этим подходом всё понятно, можно писать нативные приложения на Objective-с или Swift, используя все плюшки UKit’a, Storyboards, Autolayout и т.п.

Чтобы понять что к чему, можно скачать демо-проект с сайта Apple и посмотреть исходники.

Focus Engine

В tvOS нет никакого тач интерфейса, а все взаимодействия происходит с помощью пульта управления, поэтому разработчику нужно разобраться с возможностями Focus Engine. Если вкратце, то этот движок отвечает за поведение фокуса в приложении, какие элементы должны фокусироваться, в каком порядке, а также есть возможность отключать фокусировку у определённых объектов.

Хорошая статья на эту тему есть в блоге Airbnb.

1441855169tvOS

Сложности с которыми столкнулись:

1. Cocoapods

На данный момент большая часть библиотек не поддерживает tvOS. Чаще всего вы увидите такую надпись в консоли:

The platform of the target `Pods` (tvOS 9.0) is not compatible with `POD_NAME`, which does not support `tvos`.

Чтобы решить эту проблему, можно указать ветку или тег с поддержкой tvOS, или же сделать fork и внести нежные изменения, чаще всего достаточно в .podspec файле указать:

s.tvos.deployment_target = '9.0'

2. Баги в tvOS

Так как платформа новая, то и не обходится без багов. Как пример, на данный момент нельзя указать цвет текста UITabBarItem для состояния UIControlStateNormal.

3. Тестирование приложение на реальном устройстве

Есть 2 способа загрузить приложение на Apple TV: TestFlight и используя кабель USB-C на USB. С TestFlight всё понятно, а вот кабель USB Type C на USB Type A не идёт в комплекте с Apple TV, так как нужен только разработчикам, поэтому найти в магазине такой кабель – тот ещё квест.

4. Ввод текста с помощью пульта

Ввести текст можно, используя Siri или выбирая символы пультом. Комплекты Apple TV c поддержкой Siri поставляются лишь в 8 стран, и Россия туда не входит. Ввод текста с других iOS устройств так же не поддерживается.

5. iPhone как игровой контроллер

На презентации Apple разработчики игры Crossy Road показали, как весело играть в игру вместе с друзьями, используя iPhone вместо джойстика, но проблема в том, что удобного способа, как это сделать разработчикам в своих приложениях, нет. На форуме Apple советуют посмотреть в сторону Bonjour и Bluetooth LE.

Общие впечатления

Разработка под tvOS оставляет только положительные впечатления. TVMLKit подойдёт очень многим приложениям и позволит сэкономить время и ресурсы на вёрстке, визуальных эффектах и оптимизации. Но если вы захотите создать что-то визуально уникальное, то всегда можно обратиться к нативным способам разработки.

В заключение

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

Поэтому нет времени прохлаждаться и ждать пока платформа станет популярной, ведь тогда будет уже поздно!

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
 
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.