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.
Szép cikk. Kösz. Talán idővel az Apple-től is láthatunk egy felhasználói megoldást az egyszerűbb alkalmazások (megoldások) elkészítésére, ahogy az iOS-re készült FileMakerrel lehetséges, anélkül, hogy fejlesztő lennék.
Elméletileg… a Swift betöltő néhány sorból áll, amelyek továbbra is ugyanazok, csak az első TVML-fájl URL-címe változik. Ha valaki akarja, valószínűleg írhat egy szkriptet, amely távolról futtathat egy buildet az Ön URL-címével, és visszaküldhet egy IPA-fájlt. Illetve ha mac-ed van, akkor nem probléma elküldeni a projektet, ahol csak beírod az URL-t és elindítod a buildet. Előnye, hogy ha a TVML az alkalmazáson kívül van, akkor tulajdonképpen csak egy nyilvános és esetleg egy privát (fejlesztői) buildre van szükség, és csak a szerveren lévő TVML-t és így az alkalmazás működését módosíthatja.
"Az alkalmazás lehet csak tvOS-re, vagy a kódot hozzáadhatja egy meglévő iOS-alkalmazáshoz, és létrehozhat egy "mindenkire való" alkalmazást – a mai iPhone és iPad alkalmazásokhoz hasonló modellt."
Vajon mire gondolsz? Én személy szerint sehol nem találtam módot arra, hogy 1 buildet készítsek, amiben az univerzális iPhone, iPad és Apple TV is szerepel.. mivel ezek külön SDK-k (hasonlóan az OSX-hez), szükség van egy extra célpontra a tvOS-hez és így egy külön buildre is. Hiányzik valami?
Az Xcode 7.1-ben a tvOS alkalmazások újabb célpontként adhatók hozzá egy már létező projekthez – hasonlóan az Apple Watch-alkalmazásokhoz, vagy esetleg egy widgethez az értesítési központhoz. Azt viszont még nem tudom, hogyan kerül fel a boltba... Feltételezem, hogy az Xcode küld egy csomagot, majd az App Store szétosztja... Valószínűleg hasonló, mint amit most a Watch-al csinálnak
noo.. szerintem ez 2 teljesen különböző dolog.. az óra egy bővítmény.. vagy legalábbis a watchOS 2.0-ig volt.. iOS céllal együtt adták és nem is működött iPhone nélkül.. Az ATV egy külön entitás.. erről beszélek, hogy az ATV-hez külön lesz-e a build (2 dollárt kell fizetni) és ezen felül az iOS fizetett 2 dollárt, vagy lehet majd univerzálist adni 2 dolláros beépítés iOS-hez és ATV-hez is. ATV család.
így az igazi indítás meg fog látszódni, de tényleg ugyanúgy viselkedik, mint például az Apple Watch kódja. Ellenkező esetben a dokumentációban az szerepel, hogy a meglévő alkalmazáshoz lehetőség lesz tvOS kód hozzáadására, és így lehetőség nyílik egy alkalmazás (az App Store-ban egy entitás) értékesítésére mind iOS-re, mind tvOS-re - egy vásárlás az ügyfél, vagy különálló egységként – külön vásárlás iOS és tvOS esetén.
Csak hogy tisztázzuk, nem 200 MB alkalmazásonként, hanem 200 MB helyben tárolva, a többit pedig szükség esetén letöltik a netről
Köszönöm, erre gondoltam, de valószínűleg rosszul fogalmaztam. Minden 200 MB feletti (vagy minden további letöltött) gyorsítótárként tárolódik, és ha a rendszer úgy dönt, hogy elfogy a tárhely, elkezdi törölni - ami valószínűleg nem fog megtörténni, amíg nincs elég szabad hely, majd a legkevésbé használt tartalom törlésre kerül, így a gyakorlatban valószínűleg nem lesz nagy probléma.
Amit még ki kell derítenem, állítólag ez a limit nem vonatkozik a játékokra, ill a játék 200 MB-nál nagyobb lehet közvetlenül az alapnál. De még mindig nem tudom, hogy ez pontosan hogyan értendő. Nagyon valószínű, hogy az Apple még mindig módosítja ezt a szabályzatot a fejlesztők visszajelzései alapján.
hehe Pokemon TCG – 4 GB, Rendeljen káoszt online – 1,6 GB Hearthstone 1,3 GB Erre nagyon kíváncsi vagyok.
olyan információ volt, hogy a játékoknak van speciális módja. Most szedem össze a részleteket, és befejezzük a cikket.
Nem tehetem, és előre is elnézést kérek, ha valakit megbántottam, de csak egy hatalmas, őszinte és őszinte örömöm van, amit meg akartam osztani veletek...
Az új Apple TV bejelentése utáni napon nem voltam lusta, és feliratkoztam az Apple lottózónára (válasszam?) azzal a lehetőséggel, hogy még az értékesítés előtt megszerezzem a Developer Kit-et.
Tegnap este írt nekem az Apple, hogy engem választott az első adaghoz :)
Tehát nem vagyok azonos ennek a cikknek a szerzőjével, és őszintén az Apple TV-hez készült Preschool Brasnicce-n dolgozom, amely októberben elérhető az App Store-ban :)
szóval van egy olyan érzésem, hogy valószínűleg mindenki megkapta, aki regisztrált :) Tegnap is rendeltem és nagyon-nagyon várom... És még egy embert ismerek, aki szintén várja a szállítását...
Amúgy eddig úgy tűnik, hogy valószínűleg sok alkalmazás lesz, amikor beindul az értékesítés :)
Valószínűleg mindenki nem – nekem nem adták :(
:( Én sajnálom magát.
Ha valaki szeretné, van nyolc fehér Apple matricám… postázom…