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.
Добры артыкул. дзякуй Магчыма, з часам мы ўбачым ад Apple таксама карыстальніцкае рашэнне для падрыхтоўкі больш простых прыкладанняў (рашэнняў), як гэта магчыма з FileMaker для iOS, без таго, каб я быў распрацоўшчыкам.
Тэарэтычна… загрузчык Swift складаецца з некалькіх радкоў, якія застаюцца ранейшымі, змяняецца толькі URL для першага файла TVML. Калі хтосьці захоча, ён можа напісаць скрыпт, які можа выдалена запускаць зборку з вашым URL і адпраўляць назад файл IPA. Або, калі ў вас ёсць Mac, няма праблем адправіць праект, дзе вы проста ўказваеце URL і пачынаеце зборку. Перавага заключаецца ў тым, што калі TVML знаходзіцца па-за дадаткам, вам патрэбна толькі адна публічная зборка і, магчыма, адна прыватная (для распрацоўкі), і вы можаце змяніць толькі TVML на серверы і, такім чынам, функцыянаванне прыкладання.
«Прыкладанне можа быць толькі для tvOS, або код можа быць дададзены ў існуючае прыкладанне для iOS, каб стварыць «універсальнае» прыкладанне - мадэль, падобную сучасным праграмам для iPhone і iPad».
Цікава, што вы маеце на ўвазе? Асабіста я нідзе не знайшоў спосабу зрабіць 1 зборку, якая будзе ўключаць універсальны iPhone, iPad і Apple TV.. паколькі яны з'яўляюцца асобнымі SDK (падобна OSX), вам патрэбна дадатковая мэта для tvOS і, такім чынам, таксама асобная зборка. Мне чагосьці не хапае?
у Xcode 7.1 прыкладанні tvOS можна дадаваць у якасці іншай мэты да ўжо існуючага праекта - падобна прыкладанням для Apple Watch або, магчыма, віджэту для цэнтра апавяшчэнняў. Аднак я яшчэ не ведаю, як ён будзе загружаны ў краму... Я мяркую, што Xcode адправіць адзін пакет, а App Store затым падзеліць яго... Напэўна, падобна таму, што яны цяпер робяць з Watch
нее.. на мой погляд, гэта 2 зусім розныя рэчы.. watch - гэта пашырэнне.. ці, прынамсі, так было да watchOS 2.0.. ён быў дадзены разам з iOS target і нават не працаваў без iPhone.. ATV - гэта асобная сутнасць.. вось пра што я кажу, ці будзе зборка для ATV асобная (вам трэба заплаціць 2$) і дадаткова iOS за 2$, ці можна будзе даць універсальны Зборка за 2$ для iOS і ATV. сямейства для ATV..
таму рэальны запуск будзе паказаны, але ён сапраўды паводзіць сябе гэтак жа, як код Apple Watch, напрыклад. У адваротным выпадку ў дакументацыі гаворыцца, што можна будзе дадаць код для tvOS да існуючага прыкладання і, такім чынам, можна будзе прадаваць адно прыкладанне (адзін аб'ект у App Store) для iOS і tvOS адначасова - адна купля для кліента, або як асобная сутнасць - асобная купля для iOS і для tvOS.
Каб удакладніць, гэта не 200 МБ на прыкладанне, але 200 МБ захоўваюцца лакальна, а астатнія спампоўваюцца з сеткі пры неабходнасці
Дзякуй, я так і думаў, але, напэўна, не так сфармуляваў. Усё, што перавышае 200 МБ (або ўсё, што дадаткова спампавана), захоўваецца ў выглядзе кэша, і калі сістэма вырашае, што ў ім не хапае месца, яна пачынае выдаляць яго - што, верагодна, не адбудзецца, пакуль не будзе дастаткова вольнага месца, а затым найменш выкарыстоўванага змесціва будзе выдалены, так што на практыцы гэта, верагодна, не будзе вялікай праблемай.
Што яшчэ мне трэба даведацца, нібыта гэты ліміт не будзе распаўсюджвацца на гульні, ці гульня можа быць большай за 200 Мб прама ў аснове. Але я да гэтага часу не ведаю дакладна, як гэта дакладна маецца на ўвазе. Цалкам магчыма, што Apple пакуль карэктуе гэтую палітыку ў адпаведнасці з водгукамі распрацоўшчыкаў.
хе-хе Pokemon TCG – 4 ГБ, Order chaos online – 1,6 ГБ Hearthstone 1,3 ГБ Мне вельмі цікава гэта.
з'явілася інфармацыя, што ў гульнях ёсць асаблівы рэжым. Зараз зводжу дэталі, і мы завершым артыкул.
Я не магу гэтага зрабіць, і загадзя прашу прабачэння, калі каго пакрыўджу, але ў мяне проста велізарная, шчырая і непадробная радасць, якой я хацеў з вамі падзяліцца...
На наступны дзень пасля анонсу новага Apple TV я не паленаваўся і зарэгістраваўся ў латарэі Apple (выбіраць?) з магчымасцю атрымаць Developer Kit яшчэ да яго паступлення ў продаж.
Учора вечарам Apple напісала мне, што абрала мяне для першай партыі :)
Такім чынам, я не такі, як аўтар гэтага артыкула, і я шчыра працую над Preschool Brasnicce для Apple TV - даступным у вашым App Store на працягу кастрычніка :)
так што ў мяне такое адчуванне, што ўсе, хто зарэгістраваўся, напэўна, атрымалі :) Я таксама ўчора заказваў і вельмі-вельмі чакаю гэтага... І ведаю яшчэ аднаго чалавека, які таксама чакае сваёй дастаўкі...
Ва ўсялякім разе, пакуль здаецца, што, напэўна, з'явіцца шмат прыкладанняў, калі пачнуцца продажы :)
Усім напэўна не - не мне далі :(
:( Мне вас шкада.
Калі хто хоча, у мяне ёсць восем белых налепак Apple… Я магу даслаць па пошце…