Zatvori oglas

Apple je prošlog tjedna između ostalog predstavio novi Apple TV s operativnim sustavom tvOS. Programere je svakako najviše razveselila činjenica da se u novu crnu kutiju mogu instalirati aplikacije iz App Storea.

Programeri imaju dvije mogućnosti. Oni mogu napisati izvornu aplikaciju koja ima puni pristup hardveru Apple TV-a. Dostupni SDK (skup knjižnica za programere) vrlo je sličan onome što programeri već poznaju s iPhonea, iPada, a programski jezici su isti - Objective-C i mlađi Swift.

Ali za jednostavnije aplikacije, Apple je programerima ponudio drugu opciju u obliku TVML - Television Markup Language. Ako vam se čini da naziv TVML izgleda sumnjivo kao HTML, u pravu ste. To je zapravo označni jezik temeljen na XML-u i vrlo sličan HTML-u, samo što je mnogo jednostavniji i ima strožu sintaksu. Ali apsolutno je savršen za aplikacije poput Netflixa. I korisnici će također imati koristi jer će strogost TVML-a učiniti da multimedijske aplikacije izgledaju i rade jednako.

Put do prve aplikacije

Prvo što sam morao učiniti bilo je preuzeti novu beta verziju Xcode razvojnog okruženja (dostupna je verzija 7.1 ovdje). To mi je dalo pristup tvOS SDK-u i mogao sam započeti novi projekt koji je posebno usmjeren na četvrtu generaciju Apple TV-a. Aplikacija može biti samo za tvOS ili se kod može dodati postojećoj iOS aplikaciji kako bi se stvorila "univerzalna" aplikacija - model sličan današnjim iPhone i iPad aplikacijama.

Prvi problem: Xcode nudi samo mogućnost stvaranja izvorne aplikacije. Ali vrlo brzo sam pronašao odjeljak u dokumentaciji koji će programerima pomoći promijeniti ovaj kostur i pripremiti ga za TVML. U osnovi, to je nekoliko redaka koda u Swiftu koji, samo na Apple TV-u, stvara objekt preko cijelog zaslona i učitava glavni dio aplikacije, koji je već napisan u JavaScriptu.

Drugi problem: TVML aplikacije su stvarno vrlo slične web stranici, pa se stoga sav kod također učitava s Interneta. Sama aplikacija zapravo je samo "bootloader", sadrži samo minimum koda i najosnovnije grafičke elemente (ikona aplikacije i slično). Na kraju sam uspješno postavio glavni JavaScript kôd izravno u aplikaciju i dobio mogućnost barem prikazivanja prilagođene poruke o pogrešci kada Apple TV nije spojen na internet.

Treći mali problem: iOS 9 i s njim tvOS striktno zahtijevaju da se sva komunikacija prema internetu odvija kriptirano putem HTTPS-a. Ovo je značajka uvedena u iOS 9 za sve aplikacije, a razlog je pritisak na privatnost korisnika i sigurnost podataka. Stoga će biti potrebno implementirati SSL certifikat na web poslužitelju. Može se kupiti već od 5 dolara (120 kruna) godišnje ili možete koristiti npr. uslugu CloudFlare koja će se sama pobrinuti za HTTPS, automatski i bez ulaganja. Druga opcija je isključiti ovo ograničenje za aplikaciju, što je za sada moguće, ali nikako ne bih preporučio.

Nakon nekoliko sati čitanja dokumentacije, gdje još uvijek ima povremenih manjih grešaka, razradio sam vrlo osnovnu, ali funkcionalnu aplikaciju. Prikazivao je popularni tekst "Hello World" i dva gumba. Proveo sam oko dva sata pokušavajući aktivirati gumb i učiniti nešto. Ali s obzirom na rane jutarnje sate, radije sam otišao spavati... i to je bila dobra stvar.

Prije neki dan, sinula mi je pametna ideja preuzeti gotov primjer TVML aplikacije izravno s Applea. U kodu sam vrlo brzo pronašao ono što sam tražio i gumb je bio živ i radio. Između ostalog, na internetu sam otkrio i prva dva dijela tvOS tutoriala. Oba su resursa puno pomogla, pa sam pokrenuo novi projekt i pokrenuo svoju prvu pravu aplikaciju.

Prva prava primjena

Krenuo sam potpuno od nule, prva TVML stranica. Prednost je što je Apple za developere pripremio 18 gotovih TVML predložaka koje samo treba kopirati iz dokumentacije. Uređivanje jednog predloška trajalo je oko sat vremena, prvenstveno jer sam pripremao naš API da pošalje gotov TVML sa svim potrebnim podacima na Apple TV.

Drugi predložak je trajao samo 10 minuta. Dodao sam dva JavaScripta - većina koda u njima dolazi izravno od Applea, pa zašto ponovno izumiti kotač. Apple je pripremio skripte koje se brinu za učitavanje i prikaz TVML predložaka, uključujući preporučeni indikator učitavanja sadržaja i prikaz mogućih grešaka.

U manje od dva sata uspio sam sastaviti vrlo golu, ali funkcionalnu PLAY.CZ aplikaciju. Može prikazati popis radio postaja, može ga filtrirati po žanru i može pokrenuti radio. Da, mnogo toga nije u aplikaciji, ali osnove funkcioniraju.

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

Prednost je u tome što aplikacija u osnovi nije ništa više od posebne verzije web stranice koju pokreće JavaScript, a možete koristiti i CSS za izmjenu izgleda.

Apple još uvijek treba pripremiti još nekoliko stvari. Ikona aplikacije nije jedna, već dvije - manja i veća. Novost je što ikona nije jednostavna slika, već sadrži efekt paralakse i sastoji se od 2 do 5 slojeva (pozadina, objekti u sredini i prednjem planu). Sve aktivne slike u aplikaciji mogu sadržavati isti učinak.

Svaki sloj je zapravo samo slika na prozirnoj pozadini. Apple je pripremio vlastitu aplikaciju za sastavljanje ovih slojevitih slika i obećava da će uskoro objaviti dodatak za izvoz za Adobe Photoshop.

Još jedan uvjet je slika "Top Shelf". Ako korisnik postavi aplikaciju na istaknuto mjesto u gornjem redu (na gornjoj polici), aplikacija također mora pružiti sadržaj za radnu površinu iznad popisa aplikacija. Može postojati samo jednostavna slika ili može biti aktivno područje, na primjer s popisom omiljenih filmova ili, u našem slučaju, radio postaja.

Mnogi programeri tek počinju istraživati ​​mogućnosti novog tvOS-a. Dobra vijest je da je pisanje aplikacije sa sadržajem vrlo jednostavno, a Apple je otišao daleko za programere s TVML-om. Izrada aplikacije (na primjer PLAY.CZ ili iVyszílő) trebala bi biti jednostavna i brza. Postoji velika vjerojatnost da će velik broj aplikacija biti spreman u isto vrijeme kada novi Apple TV krene u prodaju.

Pisanje izvorne aplikacije ili prijenos igre s iOS-a na tvOS bit će izazovniji, ali ne mnogo. Najveća prepreka bit će različite kontrole i ograničenje od 200 MB po aplikaciji. Nativna aplikacija može preuzeti samo ograničeni dio podataka iz trgovine, a sve ostalo potrebno je dodatno preuzeti i nema garancije da sustav te podatke neće izbrisati. Međutim, programeri će se sigurno brzo nositi s ovim ograničenjem, također zahvaljujući dostupnosti skupa alata pod nazivom "App Thinning", koji su također dio iOS-a 9.

Teme: , ,
.