Зачыніць аб'яву

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 МБ на прыкладанне. Роднае прыкладанне можа загрузіць толькі абмежаваную частку дадзеных з крамы, а ўсё астатняе трэба спампоўваць дадаткова, і няма гарантыі, што сістэма не выдаліць гэтыя дадзеныя. Аднак распрацоўшчыкі напэўна справяцца з гэтым абмежаваннем хутка, таксама дзякуючы наяўнасці набору інструментаў пад назвай «Разрэджванне прыкладанняў», якія таксама з'яўляюцца часткай iOS 9.

Тэмы: , ,
.