Zapri oglas

Apple je prejšnji teden med drugim predstavil novi Apple TV z operacijskim sistemom tvOS. Razvijalce je zagotovo najbolj razveselilo dejstvo, da je v novo črno skrinjico mogoče namestiti aplikacije iz trgovine App Store.

Razvijalci imajo dve možnosti. Lahko napišejo izvorno aplikacijo, ki ima popoln dostop do strojne opreme Apple TV. Razpoložljivi SDK (nabor knjižnic za razvijalce) je zelo podoben tistemu, kar razvijalci že poznajo iz iPhona, iPada, programski jeziki pa so enaki – Objective-C in mlajši Swift.

Toda za enostavnejše aplikacije je Apple razvijalcem ponudil drugo možnost v obliki TVML - Television Markup Language. Če se vam zdi, da ime TVML sumljivo spominja na HTML, imate prav. V resnici je označevalni jezik, ki temelji na XML in je zelo podoben HTML, le da je veliko enostavnejši in ima strožjo sintakso. Vendar je popolnoma popoln za aplikacije, kot je Netflix. Od tega bodo imeli koristi tudi uporabniki, saj bodo zaradi strogosti TVML večpredstavnostne aplikacije videti in delovale skoraj enako.

Pot do prve prijave

Zato sem moral najprej prenesti novo različico beta razvojnega okolja Xcode (na voljo je različica 7.1 zde). To mi je omogočilo dostop do tvOS SDK in sem lahko začel nov projekt, ki je posebej namenjen četrti generaciji Apple TV. Aplikacija je lahko samo za tvOS ali pa se koda lahko doda obstoječi aplikaciji za iOS, da se ustvari "univerzalna" aplikacija – model, podoben današnjim aplikacijam za iPhone in iPad.

Prva težava: Xcode ponuja samo možnost ustvarjanja izvorne aplikacije. Sem pa zelo hitro našel razdelek v dokumentaciji, ki bo razvijalcem pomagal spremeniti to okostje in ga pripraviti za TVML. V bistvu gre za nekaj vrstic kode v Swiftu, ki samo na Apple TV ustvarijo celozaslonski objekt in naložijo glavni del aplikacije, ki je že napisana v JavaScriptu.

Druga težava: Aplikacije TVML so res zelo podobne spletni strani, zato se vsa koda prav tako naloži iz interneta. Sama aplikacija je pravzaprav samo "bootloader", vsebuje le minimalno kodo in najosnovnejše grafične elemente (ikona aplikacije in podobno). Na koncu sem glavno kodo JavaScript uspešno vstavil neposredno v aplikacijo in dobil možnost, da vsaj prikažem sporočilo o napaki po meri, ko Apple TV ni povezan z internetom.

Tretja majhna težava: iOS 9 in z njim tvOS striktno zahtevata, da vsa komunikacija do interneta poteka šifrirano prek HTTPS. To je funkcija, uvedena v iOS 9 za vse aplikacije, razlog pa je pritisk na zasebnost uporabnikov in varnost podatkov. Zato bo treba na spletni strežnik namestiti SSL certifikat. Kupite ga lahko že za 5 $ (120 kron) na leto ali pa uporabite na primer storitev CloudFlare, ki bo za HTTPS poskrbela sama, avtomatsko in brez vlaganja. Druga možnost je izključitev te omejitve za aplikacijo, kar je zaenkrat sicer možno, a vsekakor odsvetujem.

Po nekajurnem prebiranju dokumentacije, kjer so še vedno občasne manjše napake, sem izdelal zelo osnovno, a delujočo aplikacijo. Prikazal je priljubljeno besedilo "Hello World" in dva gumba. Približno dve uri sem poskušal doseči, da bi bil gumb aktiven in dejansko nekaj naredil. A glede na zgodnje jutranje ure sem šel raje spat… in to je bilo dobro.

Pred dnevi se mi je porodila pametna ideja, da prenesem že pripravljeno vzorčno aplikacijo TVML neposredno iz Apple-a. V kodi sem zelo hitro našel, kar sem iskal, in gumb je bil živ in deloval. Med drugim sem na internetu odkril tudi prva dva dela tutoriala tvOS. Oba vira sta veliko pomagala, zato sem začel nov projekt in začel svojo prvo pravo aplikacijo.

Prva prava aplikacija

Začel sem popolnoma iz nič, prva stran TVML. Prednost je v tem, da je Apple za razvijalce pripravil 18 že pripravljenih predlog TVML, ki jih je treba le prepisati iz dokumentacije. Urejanje ene predloge je trajalo približno eno uro, predvsem zato, ker sem pripravljal naš API za pošiljanje končnega TVML z vsemi potrebnimi podatki na Apple TV.

Druga predloga je trajala le približno 10 minut. Dodal sem dva JavaScripta – večina kode v njiju prihaja neposredno iz Appla, zakaj bi torej znova izumljali kolo. Apple je pripravil skripte, ki skrbijo za nalaganje in prikaz TVML predlog, vključno s priporočenim indikatorjem nalaganja vsebine in morebitnim prikazom napak.

V manj kot dveh urah mi je uspelo sestaviti zelo golo, a delujočo aplikacijo PLAY.CZ. Lahko prikaže seznam radijskih postaj, lahko ga filtrira po žanru in lahko zažene radio. Da, veliko stvari ni v aplikaciji, vendar osnove delujejo.

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

Prednost je v tem, da aplikacija v bistvu ni nič drugega kot posebna različica spletne strani, ki jo poganja JavaScript, za spreminjanje videza pa lahko uporabite tudi CSS.

Apple potrebuje še nekaj stvari za pripravo. Ikona aplikacije ni ena, ampak dve - manjša in večja. Novost je, da ikona ni preprosta slika, ampak vsebuje učinek paralakse in je sestavljena iz 2 do 5 slojev (ozadje, objekti v sredini in ospredju). Vse aktivne slike v aplikaciji lahko vsebujejo enak učinek.

Vsak sloj je pravzaprav le slika na prozornem ozadju. Apple je pripravil lastno aplikacijo za sestavljanje teh večplastnih slik in obljublja, da bo kmalu izdal izvozni vtičnik za Adobe Photoshop.

Druga zahteva je slika "Top Shelf". Če uporabnik postavi aplikacijo na vidno mesto v zgornji vrstici (na zgornji polici), mora aplikacija zagotoviti tudi vsebino za namizje nad seznamom aplikacij. Lahko je samo preprosta slika ali pa je aktivno področje, na primer s seznamom priljubljenih filmov ali, v našem primeru, radijskih postaj.

Mnogi razvijalci šele začenjajo raziskovati možnosti novega tvOS. Dobra novica je, da je pisanje vsebinske aplikacije zelo enostavno in Apple je šel daleč pri razvijalcih s TVML. Izdelava aplikacije (na primer PLAY.CZ ali iVyszílő) mora biti enostavna in hitra. Obstaja velika verjetnost, da bo hkrati z začetkom prodaje novega Apple TV pripravljenih veliko število aplikacij.

Pisanje izvorne aplikacije ali prenos igre iz iOS-a v tvOS bo bolj zahtevno, vendar ne veliko. Največja ovira bodo različne kontrole in omejitev 200 MB na aplikacijo. Domača aplikacija lahko prenese le omejen del podatkov iz trgovine, vse ostalo pa je treba dodatno prenesti in ni nobenega zagotovila, da sistem teh podatkov ne bo izbrisal. Vendar se bodo razvijalci zagotovo hitro spopadli s to omejitvijo, tudi zaradi razpoložljivosti nabora orodij, imenovanih "App Thinning", ki so prav tako del iOS 9.

Teme: , ,
.