Zatvori oglas

Apple je prošle sedmice predstavio, između ostalog novi Apple TV sa tvOS operativnim sistemom. Činjenica da se aplikacije iz App Store-a mogu instalirati u novu crnu kutiju svakako je najviše obradovala programere.

Programeri imaju dvije opcije. Oni mogu napisati izvornu aplikaciju koja ima potpuni pristup Apple TV hardveru. Dostupni SDK (skup biblioteka za programere) je vrlo sličan onome što programeri već znaju sa 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 smatrate da naziv TVML izgleda sumnjivo kao HTML, u pravu ste. To je zaista markup jezik baziran na XML-u i vrlo sličan HTML-u, samo što je mnogo jednostavniji i ima strožiju sintaksu. Ali apsolutno je savršen za aplikacije kao što je Netflix. I korisnici će također imati koristi, jer će strogost TVML-a učiniti da multimedijalne aplikacije izgledaju i rade na isti način.

Put do prve aplikacije

Dakle, prva stvar koju sam morao učiniti je da preuzmem novu beta verziju Xcode razvojnog okruženja (dostupna je verzija 7.1 ovdje). Ovo mi je omogućilo pristup tvOS SDK-u i mogao sam pokrenuti novi projekat 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 iPhone i iPad aplikacijama danas.

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

Drugi problem: TVML aplikacije su zaista vrlo slične web stranici, pa se stoga sav kod također učitava s interneta. Sama aplikacija je zapravo samo "bootloader", sadrži samo minimum koda i najosnovnije grafičke elemente (ikona aplikacije i slično). Na kraju sam uspješno stavio glavni JavaScript kod direktno u aplikaciju i dobio mogućnost da barem prikažem prilagođenu poruku o grešci kada Apple TV nije povezan s internetom.

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

Nakon nekoliko sati čitanja dokumentacije, gdje još uvijek ima povremenih manjih grešaka, razradio sam vrlo osnovnu, ali radnu aplikaciju. Prikazivao je popularni tekst "Hello World" i dva dugmeta. Proveo sam oko dva sata pokušavajući da aktiviram dugme i da uradim nešto. Ali s obzirom na rane jutarnje sate, radije sam zaspao... i to je bila dobra stvar.

Neki dan mi je pala na pamet sjajna ideja da preuzmem gotov uzorak TVML aplikacije direktno sa Apple-a. Vrlo brzo sam pronašao ono što sam tražio u kodu i dugme je bilo živo i radilo. Između ostalog, otkrio sam i prva dva dijela tvOS tutorijala na internetu. Oba resursa su puno pomogla, pa sam započeo novi projekat i započeo svoju prvu pravu aplikaciju.

Prva prava aplikacija

Počeo sam potpuno od nule, prve TVML stranice. Prednost je što je Apple pripremio 18 gotovih TVML šablona za programere koje je potrebno samo kopirati iz dokumentacije. Uređivanje jednog šablona trajalo je oko sat vremena, prvenstveno zato što sam pripremao naš API da pošaljem gotov TVML sa svim potrebnim podacima na Apple TV.

Drugi šablon je trajao samo 10 minuta. Dodao sam dva JavaScript-a - većina koda u njima dolazi direktno od Applea, pa zašto ponovo izmišljati točak. Apple je pripremio skripte koje se brinu o učitavanju i prikazivanju TVML šablona, ​​uključujući preporučeni indikator učitavanja sadržaja i prikaz moguće greške.

Za manje od dva sata uspio sam sastaviti vrlo golu, ali funkcionalnu PLAY.CZ aplikaciju. Može prikazati listu radio stanica, može je filtrirati po žanru i može pokrenuti radio. Da, mnoge stvari nisu u aplikaciji, ali osnove rade.

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

Prednost je u tome što aplikacija nije ništa drugo do posebna verzija web stranice, koju pokreće JavaScript, a možete koristiti i CSS za promjenu izgleda.

Appleu je potrebno još nekoliko stvari za pripremu. Ikona aplikacije nije jedna, već dvije - manja i veća. Novina je da ikona nije jednostavna slika, već sadrži efekat paralakse i sastoji se od 2 do 5 slojeva (pozadina, objekti u sredini i prednji plan). Sve aktivne slike u aplikaciji mogu sadržavati isti efekat.

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

Drugi uslov je slika "gornje police". Ako korisnik postavi aplikaciju na istaknuto mjesto u gornjem redu (na gornjoj polici), aplikacija također mora osigurati sadržaj za radnu površinu iznad liste aplikacija. Može biti ili samo obična slika ili može biti aktivna oblast, na primjer sa listom omiljenih filmova ili, u našem slučaju, radio stanicama.

Mnogi programeri tek počinju istraživati ​​mogućnosti novog tvOS-a. Dobra vijest je da je pisanje aplikacije za sadržaj vrlo jednostavno, a Apple je prešao dug put za programere sa TVML-om. Izrada aplikacije (na primjer PLAY.CZ ili iVyszílő) trebala bi biti laka i brza. Velika je šansa da će veliki broj aplikacija biti spreman u isto vrijeme kada novi Apple TV krene u prodaju.

Pisanje izvorne aplikacije ili prijenos igre sa iOS-a na tvOS bit će izazovniji, ali ne mnogo. Najveća prepreka će biti različite kontrole i ograničenje od 200MB po aplikaciji. Native aplikacija može preuzeti samo ograničeni dio podataka iz trgovine, a sve ostalo se mora preuzeti dodatno i nema garancije da sistem neće izbrisati te podatke. 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: , ,
.