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

Новости

Интересные материалы: 12.12

Сегодня Avito iOS Winter Edition, распознавание лиц и спасет ли ваш бизнес изменение цвета кнопок?

Леонид Боголюбов

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

/

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Комментарии
Продолжить чтение

Новости

Интересные материалы: 11.12

Лучшие материалы о разработке и маркетинге технологических продуктов.

Леонид Боголюбов

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

/

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Комментарии
Продолжить чтение

Медиа

Радио-Т №575

Радио-Т – разговоры на темы хайтек, высоких компьютерных технологий, гаджетов, облаков, программирования и прочего интересного из мира ИТ.

AppTractor

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

/

Автор:

В новом выпуске:

Комментарии
Продолжить чтение

Новости

Digest MBLTdev: Новости для iOS разработчиков №147

В течение недели топовые iOS-разработчики Руслан Гуменный, Саша Черный и Саша Зимин, а также директор по продукту VK Иван Козлов собирают для вас интересные и полезные ссылки на статьи, необходимые для прочтения каждому начинающему и опытному разработчику. В каждом выпуске – новости, коды, инструменты, дизайн и прочее.

e-Legion

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

/

Автор:

AlphaZero показывает невероятные успехи в выигрывании чего угодно у кого угодно. Стандарт C++17 перешёл в статус Published. Успели-таки, чертяги. Microsoft замутит ноутбуки на ARM. Наше восхищение рэдмондцам. Это должно продвинуть индустрию вперёд. А ещё, редакция дайджеста получила ваши ответы. Они нас порадовали. Прямо подарок к Новому году. Спасибо. Потребуется какое-то время, чтобы реализовать задумки, но мы, что называется, on the way.

1

31 Million Client Registration Files Leaked by Personalized Keyboard Developer

Есть такая популярная сторонняя клавиатура — AI.type. Немножечко обнаружилось, что эта клавиатура собирает прорву данных, да ещё и хранит их небезопасно на своём сервере. Кстати, покупая какую-нибудь китайскую розовую клавиатуру с радужной подсветкой всего за 99 руб., будьте готовы к похожему результату.

MACKEEPERSECURITY.COM

Apple Expands Search Ad Offerings with Search Ads Basic

Новый тип рекламы в App Store. Пока только US.

WWW.MACSTORIES.NET

4

Hyperion-iOS

Штука для дизайн-ревью приложения прямо на девайсе. Можно измерять расстояния, смотреть атрибуты и замедлять анимации без Xcode.

GITHUB.COM

Singleton, Service Locator and tests in iOS

Статья про антипаттерны Singleton и Service Locator, а также про то, как можно оставить их в проекте и иметь тестируемый код.

BADOOTECH.BADOO.COM

Building an enum-based analytics system in Swift

Аналитики в современных приложениях много. Маркетологом только дай волю. 5+ систем воткнут только так. Вот вариант, как оформить хаос с событиями. А если вы используете MVVM, поглядите этот вопрос на SO, тоже про усмирение хаоса.

WWW.SWIFTBYSUNDELL.COM

When Not to Use an Enum

Когда в ответ на статью появляется статья, это особенно прекрасно. Замечания и предложения к предыдущей статье: мол, enum отличный, но негоже всюду его пихать только потому, что enum в Swift функционален.

MATT.DIEPHOUSE.COM

e-Legion Meetup: дизайн мобильных интерфейсов

Санкт-Петербург, 14 декабря, офис Тинькофф, 18:30. «Система контроля версий для дизайнера» от Димы Головкова из e-Legion. «Дизайн форм для мобильных приложений и сайтов» от Ника Бабича из UX Planet. «Как мы используем продуктовую мобильную аналитику» от Толи Ларина из Тинькофф. Будет трансляция.

ELEGION.TIMEPAD.RU

Moscow CocoaHeads Meetup

Москва, 15 декабря, офис Mail.Ru, 19:00. «Как стать GPU-инженером за час» от Андрея Володина из Prisma AI. «Распределённая сборка IPA» от Мити Куркина из Mail.Ru. «Синее смещение: оптимизация запуска на платформе iOS» от Виктора Брыскина из Яндекса.

CORP.MAIL.RU

c71bdfcf-9da6-4069-9426-b03ba710c042

Яндекс изнутри: глазами iOS-разработчика

Можно посмотреть запись встречи из Яндекс, где ребята из больших проектов рассказывают про процессы внутри команд.

WWW.YOUTUBE.COM

Предыдущие выпуски Digest MBLTDEV и подписка доступны на официальном сайте. Всё бесплатно и никакого спама, честно!

Комментарии
Продолжить чтение

Наша рассылка

Каждому подписавшемуся - "1 час на UI аудит": бесплатный ускоренный курс для разработчиков веб и мобильных приложений!

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Популярное

X

Спасибо!

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