Hirdetés bezárása

Az Apple a múlt héten bemutatta többek között az új Apple TV a tvOS operációs rendszerrel. A fejlesztőket minden bizonnyal leginkább annak örülte, hogy az App Store-ból származó alkalmazások telepíthetők az új fekete dobozba.

A fejlesztőknek két lehetőségük van. Írhatnak egy natív alkalmazást, amely teljes hozzáféréssel rendelkezik az Apple TV hardveréhez. Az elérhető SDK (a fejlesztői könyvtárak készlete) nagyon hasonlít ahhoz, amit a fejlesztők már ismernek az iPhone-ról, iPadről, és a programozási nyelvek ugyanazok - Objective-C és a fiatalabb Swift.

De az egyszerűbb alkalmazásokhoz az Apple egy második lehetőséget kínált a fejlesztőknek a TVML - Television Markup Language - formájában. Ha úgy érzi, hogy a TVML név gyanúsan hasonlít a HTML-re, akkor igaza van. Valójában egy XML alapú jelölőnyelv, nagyon hasonlít a HTML-hez, csak sokkal egyszerűbb és szigorúbb szintaxisú. De teljesen tökéletes olyan alkalmazásokhoz, mint a Netflix. És a felhasználók is profitálnak majd, mert a TVML szigorúsága miatt a multimédiás alkalmazások ugyanúgy néznek ki és működnek.

Útvonal az első alkalmazáshoz

Tehát az első dolgom az Xcode fejlesztői környezet új béta verziójának letöltése volt (a 7.1-es verzió elérhető itt). Ezzel hozzáférést kaptam a tvOS SDK-hoz, és elindíthattam egy új projektet, amely kifejezetten a negyedik generációs Apple TV-t célozza meg. Az alkalmazás lehet csak tvOS-re, vagy a kód hozzáadható egy meglévő iOS-alkalmazáshoz, hogy létrehozzon egy „univerzális” alkalmazást – a mai iPhone és iPad alkalmazásokhoz hasonló modellt.

Első probléma: Az Xcode csak natív alkalmazás létrehozásának lehetőségét kínálja. De nagyon gyorsan találtam egy részt a dokumentációban, amely segít a fejlesztőknek megváltoztatni ezt a vázat és felkészíteni a TVML-re. Alapvetően néhány sornyi kód a Swiftben, amely csak az Apple TV-n létrehoz egy teljes képernyős objektumot, és betölti az alkalmazás fő részét, amely már JavaScriptben van megírva.

Második probléma: A TVML alkalmazások valóban nagyon hasonlítanak egy weboldalra, ezért az összes kód az internetről is betöltődik. Maga az alkalmazás valójában csak egy "bootloader", csak minimális kódot és a legalapvetőbb grafikai elemeket (alkalmazás ikon és hasonlók) tartalmazza. Végül sikeresen behelyeztem a fő JavaScript kódot közvetlenül az alkalmazásba, és legalább egyéni hibaüzenetet tudtam megjeleníteni, ha az Apple TV nem csatlakozik az internethez.

A harmadik apró probléma: az iOS 9 és vele a tvOS szigorúan megköveteli, hogy az internet felé irányuló kommunikáció minden esetben HTTPS-en keresztül titkosítva történjen. Ez a funkció az iOS 9-ben minden alkalmazáshoz bevezetett, és ennek oka a felhasználói adatvédelemre és adatbiztonságra nehezedő nyomás. Tehát szükség lesz egy SSL-tanúsítvány telepítésére a webszerveren. Már évi 5 dollárért (120 koronáért) megvásárolható, vagy igénybe veheti például a CloudFlare szolgáltatást, amely magától, automatikusan és befektetés nélkül gondoskodik a HTTPS-ről. A második lehetőség, hogy kikapcsoljuk ezt a korlátozást az alkalmazásnál, ami egyelőre lehetséges, de én semmiképpen nem ajánlom.

Néhány órás dokumentáció olvasás után, ahol időnként még előfordulnak kisebb hibák, kidolgoztam egy nagyon egyszerű, de működő alkalmazást. Megjelenítette a "Hello World" népszerű szöveget és két gombot. Körülbelül két órát töltöttem azzal, hogy aktiváljam a gombot, és valóban csináljak valamit. De figyelembe véve a kora reggeli órákat, inkább elmentem aludni… és ez jó dolog volt.

A minap az a jó ötlet támadt, hogy letöltök egy kész TVML-minta alkalmazást közvetlenül az Apple-től. Nagyon gyorsan megtaláltam a kódban, amit kerestem, és a gomb élt és működött. Többek között az interneten fedeztem fel a tvOS tutorial első két részét is. Mindkét forrás sokat segített, ezért új projektbe kezdtem, és elkezdtem az első valódi pályázatomat.

Az első valódi alkalmazás

Teljesen a nulláról kezdtem, az első TVML oldal. Előnye, hogy az Apple 18 kész TVML-sablont készített a fejlesztők számára, amelyeket csak ki kell másolni a dokumentációból. Egy sablon szerkesztése körülbelül egy órát vett igénybe, elsősorban azért, mert az API-nkat előkészítettem, hogy a kész TVML-t minden szükséges adattal elküldjük az Apple TV-re.

A második sablon csak körülbelül 10 percig tartott. Hozzáadtam két JavaScriptet – a bennük lévő kód nagy része közvetlenül az Apple-től származik, akkor miért kell feltalálni a kereket. Az Apple olyan szkripteket készített, amelyek gondoskodnak a TVML-sablonok betöltéséről és megjelenítéséről, beleértve az ajánlott tartalombetöltési jelzőt és az esetleges hibakijelzést.

Kevesebb, mint két óra alatt sikerült összehoznom egy nagyon csupasz, de működő PLAY.CZ alkalmazást. Megjelenítheti a rádióállomások listáját, műfaj szerint szűrheti és elindíthatja a rádiót. Igen, sok minden nincs az alkalmazásban, de az alapok működnek.

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

Előnye, hogy az alkalmazás alapvetően nem más, mint a weboldal egy speciális változata, amelyet JavaScript hajt meg, és CSS-sel is módosíthatjuk a megjelenést.

Az Apple-nek még néhány dologra van szüksége a felkészüléshez. Az alkalmazás ikonja nem egy, hanem kettő – kisebb és nagyobb. Az újdonság, hogy az ikon nem egy egyszerű kép, hanem parallaxis hatást tartalmaz, és 2-5 rétegből áll (háttér, tárgyak középen és előtérben). Az alkalmazásban lévő összes aktív kép ugyanazt a hatást tartalmazhatja.

Mindegyik réteg valójában csak egy kép átlátszó háttéren. Az Apple elkészítette saját alkalmazását ezeknek a réteges képeknek az összeállítására, és azt ígéri, hogy hamarosan kiad egy export plugint az Adobe Photoshophoz.

Egy másik követelmény a „felső polc” kép. Ha a felhasználó jól látható helyen helyezi el az alkalmazást a felső sorban (a legfelső polcon), akkor az alkalmazásnak tartalmat is kell biztosítania az alkalmazáslista felett az asztalon. Lehet egy egyszerű kép vagy egy aktív terület, például kedvenc filmek listájával vagy esetünkben rádióállomásokkal.

Sok fejlesztő most kezdi felfedezni az új tvOS lehetőségeit. A jó hír az, hogy egy tartalomalkalmazás megírása nagyon egyszerű, és az Apple hosszú utat tett meg a TVML-lel rendelkező fejlesztők számára. Egy alkalmazás elkészítésének (például PLAY.CZ vagy iVyszílő) egyszerűnek és gyorsnak kell lennie. Az új Apple TV megjelenésével egy időben jó eséllyel rengeteg alkalmazás készül el.

Natív alkalmazás írása vagy játék iOS-ről tvOS-re történő portolása nagyobb kihívás lesz, de nem sokkal. A legnagyobb akadály a különböző vezérlők és a 200 MB alkalmazásonkénti korlát lesz. Egy natív alkalmazás az adatoknak csak korlátozott részét tudja letölteni az áruházból, minden mást pedig pluszban kell letölteni, és nincs garancia arra, hogy a rendszer nem törli ezeket az adatokat. A fejlesztők azonban minden bizonnyal gyorsan kezelik ezt a korlátozást, köszönhetően az „App Thinning” nevű eszközkészletnek is, amely szintén az iOS 9 részét képezi.

Témák: , ,
.