Zavrieť reklamu

Apple minulý týždeň predstavil okrem iného novú Apple TV s operačným systémom tvOS. Najväčšiu radosť vývojárom určite urobil fakt, že do novej čiernej krabičky pôjdu inštalovať aplikácie z App Store.

Vývojári majú hneď dve možnosti. Môžu napísať natívnu aplikáciu, ktorá má plný prístup k hardvéru Apple TV. Dostupné SDK (sada knižníc pre vývojárov) je veľmi podobné tomu, ktoré už vývojári poznajú z iPhonu, iPadu, a aj programovacie jazyky sú rovnaké – Objective-C a mladší Swift.

Pre jednoduchšie aplikácie ale Apple ponúkol vývojárom ešte druhú možnosť v podobe TVML – Television Markup Language. Pokiaľ máte pocit, že je názov TVML až podozrivo podobný HTML, máte pravdu. Je to naozaj značkovací jazyk založený na XML a veľmi podobný práve HTML, len je značne jednoduchší a má striktnejšiu syntax. Pre aplikácie typu Netflix je ale úplne ideálny. A ťažiť z toho budú aj užívatelia, pretože vďaka striktnosti TVML budú multimediálne aplikácie vyzerať a fungovať veľmi podobne.

Cesta k prvej aplikácii

Prvé, čo som teda musel urobiť, bolo stiahnuť novú beta verziu vývojového prostredia Xcode (verzia 7.1 je dostupná tu). Tým som získal prístup k tvOS SDK a mohol tak založiť nový projekt cielený práve na Apple TV štvrtej generácie. Aplikácia môže byť len pre tvOS alebo je možné tento kód pridať do už existujúcej aplikácie pre iOS a vytvoriť tak „univerzálnu“ aplikáciu – model je podobný ako dnes pri aplikáciách pre iPhone a iPad.

Problém prvý: Xcode ponúka len možnosť vytvoriť natívnu aplikáciu. V dokumetácii som ale veľmi rýchlo našiel časť, ktorá vývojárom pomôže túto kostru zmeniť a pripraviť pre TVML. V podstate je to pár riadkov kódu v Swifte, ktoré len na Apple TV vytvoria objekt cez celú obrazovku a načítajú hlavnú časť aplikácie, ktorá je už napísaná v JavaScripte.

Problém druhý: TVML aplikácie sú naozaj veľmi podobné webovej stránke, a preto sa aj všetok kód načíta z internetu. Samotná aplikácia je tak vlastne len „bootloader“, obsahuje len minimum kódu a najzákladnejšie grafické prvky (ikonka aplikácie a podobne). Nakoniec som úspešne vložil hlavnú časť JavaScript kódu priamo do aplikácie a získal tak možnosť aspoň zobraziť vlastnú chybovú hlášku, keď nie je Apple TV pripojená k internetu.

Tretí drobný problém: iOS 9 as ním aj tvOS striktne vyžaduje, aby všetka komunikácia smerom do internetu prebiehala šifrovane cez HTTPS. Toto je vlastnosť zavedená v iOS 9 pre všetky aplikácie a dôvodom je tlak na súkromie používateľa a bezpečnosť prenášaných dát. Takže bude nutné na webový server nasadiť SSL certifikát. Ten je možné zaobstarať už za 5 dolárov (120 korún) na rok alebo môžete použiť napríklad službu CloudFlare, ktorá sa o HTTPS postará sama, automaticky a bez investícií. Druhou možnosťou je toto obmedzenie pre aplikáciu vypnúť, čo zatiaľ ide, ale rozhodne by som to neodporúčal.

Po pár hodinách čítania dokumentácie, kde sú zatiaľ občas drobné chyby, som sa dopracoval k veľmi základnej, ale fungujúcej aplikácii. Tá zobrazila obľúbený text „Hello World“ a dve tlačidlá. Asi dve hodiny som sa snažil, aby tlačidlo bolo aktívne a niečo reálne urobilo. Ale s ohľadom na skorú rannú hodinu som šiel radšej spať… a to bolo dobre.

Druhý deň som dostal spásny nápad stiahnuť si hotovú ukážkovú TVML aplikáciu priamo od Applu. V kóde som veľmi rýchlo našiel, čo som hľadal, a tlačidlo bolo aktívne a fungovalo. Okrem iného som na internete objavil aj prvé dva diely tutoriálu ako na tvOS. Oba zdroje veľmi pomohli, takže som založil nový projekt a pustil sa do prvej reálnej aplikácie.

Prvá reálna aplikácia

Začal som úplne od nuly, prvou TVML stránkou. Výhoda je, že Apple si pre vývojárov pripravil 18 hotových TVML šablón, ktoré stačí skopírovať z dokumentácie. Úprava jednej šablóny zabrala niečo okolo hodiny, a to primárne preto, že som pripravoval naše API, aby mohlo do Apple TV poslať hotové TVML vrátane všetkých potrebných dát.

Druhá šablóna už zabrala iba asi 10 minút. Pridal som dva JavaScripty – väčšina kódu v nich pochádza priamo od Applu, takže prečo znova vynájsť koleso. Apple pripravil scripty, ktoré sa postarajú o načítanie a zobrazenie TVML šablón vrátane odporúčaného indikátora načítania obsahu a prípadného zobrazenia chyby.

V čase pod dve hodiny som tak dokázal zostaviť veľmi holú, ale fungujúcu aplikáciu PLAY.CZ. Vie zobraziť zoznam rádií, vie ho filtrovať podľa žánru a vie rádio spustiť. Áno, veľa vecí v aplikácii nie je, ale základ funguje.

[youtube id="kLKvWC-rj7Q" width="620" height="360"]

Výhodou je, že aplikácia v podstate nie je nič iné ako špeciálna verzia webovej stránky, ktorú poháňa JavaScript a je možné použiť aj CSS na úpravu vzhľadu.

Apple ešte vyžaduje niekoľko ďalších vecí, ktoré treba pripraviť. Ikonka aplikácie nie je jedna, ale sú hneď dve - menšie a väčšie. Novinkou je, že ikonka nie je jednoduchý obrázok, ale obsahuje paralax efekt a je zložená z 2 až 5 vrstiev (pozadia, objekty uprostred a popredia). Rovnaký efekt môžu obsahovať všetky aktívne obrázky naprieč aplikáciou.

Každá vrstva je vlastne iba obrázok na priehľadnom pozadí. Apple pripravil vlastnú aplikáciu na zostavenie týchto vrtstvených obrázkov av blízkej dobe sľubuje uvoľniť aj exportný plugin pre Adobe Photoshop.

Ďalšia požiadavka je „Top Shelf“ obrázok. Pokiaľ si užívateľ umiestni aplikáciu na prominentné miesto v hornom rade (na hornej poličke), musí aplikácia dodať aj obsah pre plochu nad zoznamom aplikácií. Tam môže byť buď len prostý obrázok alebo môže ísť o aktívnu oblasť napríklad so zoznamom obľúbených filmov alebo v našom prípade rádií.

Veľa vývojárov je ešte len na začiatku skúmania možností nového tvOS. Dobrá správa je, že napísať obsahovú aplikáciu je veľmi jednoduché a Apple šiel vývojárom s TVML veľa naproti. Zostaviť aplikáciu (napríklad PLAY.SK alebo iVysielanie) by tak malo byť jednoduché a rýchle. Je taká veľká šanca, že súčasne so začatím predaja novej Apple TV bude pripravená aj veľké množstvo aplikácií.

Napísať natívnu aplikáciu alebo preniesť hru z iOS na tvOS síce bude náročnejšie, ale nie tak veľa. Najväčšou prekážkou bude iné ovládanie a obmedzenie v podobe 200 MB na aplikáciu. Natívna aplikácia si so sebou môže z obchodu stiahnuť len obmedzenú časť dát a všetko ostatné si musí stiahnuť dodatočne a nemá istotu, že systém tieto dáta nezmaže. Vývojári si s týmto obmedzením ale určite rýchlo poradia, a to aj vďaka dostupnosti sady nástrojov pod označením „App Thinning“, ktoré sú aj súčasťou iOS 9.

Témy: , ,
.