Закрити оголошення

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” width=”620″ height=”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.

Теми: , ,
.