Sule kuulutus

Apple esitles eelmisel nädalal muuhulgas uus Apple TV tvOS operatsioonisüsteemiga. Kindlasti valmistas arendajatele kõige rohkem rõõmu asjaolu, et uude musta kasti saab installida rakendusi App Store'ist.

Arendajatel on kaks võimalust. Nad saavad kirjutada omarakenduse, millel on täielik juurdepääs Apple TV riistvarale. Saadaolev SDK (arendajatele mõeldud teekide komplekt) on väga sarnane sellega, mida arendajad juba iPhone'ist, iPadist teavad, ja programmeerimiskeeled on samad - Objective-C ja noorem Swift.

Kuid lihtsamate rakenduste jaoks pakkus Apple arendajatele teist võimalust TVML-i kujul - Television Markup Language. Kui teile tundub, et nimi TVML näeb kahtlaselt välja nagu HTML, on teil õigus. See on tõesti XML-il põhinev märgistuskeel ja väga sarnane HTML-ile, ainult et see on palju lihtsam ja rangema süntaksiga. Kuid see sobib ideaalselt selliste rakenduste jaoks nagu Netflix. Kasu saavad sellest ka kasutajad, sest TVML-i ranguse tõttu näevad multimeediarakendused samasugused välja ja töötavad.

Esimese rakenduse tee

Seega pidin esimese asjana alla laadima Xcode arenduskeskkonna uue beetaversiooni (versioon 7.1 on saadaval siin). See andis mulle juurdepääsu tvOS SDK-le ja sain alustada uut projekti, mis oli suunatud konkreetselt neljanda põlvkonna Apple TV-le. Rakendus võib olla ainult tvOS-i jaoks või koodi saab lisada olemasolevale iOS-i rakendusele, et luua "universaalne" rakendus – mudel, mis sarnaneb tänapäeval iPhone'i ja iPadi rakendustega.

Esimene probleem: Xcode pakub ainult võimalust luua omarakendus. Kuid ma leidsin väga kiiresti dokumentatsioonist jaotise, mis aitab arendajatel seda skeletti muuta ja TVML-i jaoks ette valmistada. Põhimõtteliselt on tegemist mõne Swifti koodireaga, mis lihtsalt Apple TV-s loovad täisekraaniobjekti ja laadivad rakenduse põhiosa, mis on juba JavaScriptis kirjutatud.

Probleem kaks: TVML-i rakendused on tõesti väga sarnased veebilehega ja seetõttu laetakse kogu kood ka Internetist. Rakendus ise on tegelikult lihtsalt "bootloader", see sisaldab ainult minimaalset koodi ja kõige elementaarsemaid graafilisi elemente (rakenduse ikoon jms). Lõpuks panin JavaScripti põhikoodi edukalt otse rakendusse ja sain võimaluse kuvada vähemalt kohandatud veateade, kui Apple TV pole Internetiga ühendatud.

Kolmas väike probleem: iOS 9 ja sellega koos tvOS nõuab rangelt, et kogu suhtlus interneti suunas toimuks krüpteeritult HTTPS-i kaudu. See funktsioon on iOS 9-s kõigi rakenduste jaoks kasutusele võetud ja selle põhjuseks on surve kasutajate privaatsusele ja andmete turvalisusele. Seega on vaja veebiserverisse juurutada SSL-sertifikaat. Seda saab osta juba 5 dollari (120 krooni) eest aastas või kasutada näiteks teenust CloudFlare, mis hoolitseb HTTPS-i eest ise, automaatselt ja ilma investeeringuteta. Teine võimalus on see piirang rakendusele välja lülitada, mis on hetkel võimalik, aga ma seda kindlasti ei soovitaks.

Pärast mõnetunnist dokumentatsiooni lugemist, kus ikka aeg-ajalt pisivigu esineb, töötasin välja väga elementaarse, kuid toimiva rakenduse. See kuvas populaarset teksti "Tere maailm" ja kahte nuppu. Veetsin umbes kaks tundi, et nupp tööle saada ja midagi reaalselt teha. Kuid arvestades varajasi hommikutunde, eelistasin magama minna... ja see oli hea.

Teisel päeval tuli mul helge mõte laadida otse Apple'ist alla valmis TVML-i näidisrakendus. Leidsin otsitava väga kiiresti koodist ja nupp oli reaalajas ja töötas. Muuhulgas avastasin internetist ka tvOS-i õpetuse kaks esimest osa. Mõlemad ressursid aitasid palju, nii et alustasin uue projektiga ja alustasin oma esimest päris rakendust.

Esimene tõeline rakendus

Alustasin täiesti nullist, esimene TVML-leht. Eeliseks on see, et Apple on koostanud arendajatele 18 valmis TVML malli, mis tuleb lihtsalt dokumentatsioonist kopeerida. Ühe malli redigeerimine võttis aega umbes tund, peamiselt seetõttu, et valmistasin meie API-d ette valmis TVML koos kõigi vajalike andmetega Apple TV-sse saatmiseks.

Teise malli jaoks kulus vaid umbes 10 minutit. Lisasin kaks JavaScripti – suurem osa nendes olevast koodist pärineb otse Apple’ilt, miks siis ratast uuesti leiutada. Apple on ette valmistanud skriptid, mis hoolitsevad TVML-i mallide laadimise ja kuvamise eest, sealhulgas soovitatud sisu laadimise indikaator ja võimalikud vead.

Vähem kui kahe tunniga sain kokku panna väga palja, kuid toimiva PLAY.CZ rakenduse. See võib kuvada raadiojaamade loendi, filtreerida seda žanri järgi ja käivitada raadio. Jah, palju asju pole rakenduses, kuid põhitõed toimivad.

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

Eeliseks on see, et rakendus pole põhimõtteliselt midagi muud kui veebilehe spetsiaalne versioon, mille toiteallikaks on JavaScript ja mille välimust saab muuta ka CSS-i abil.

Apple vajab ettevalmistamiseks veel mõnda asja. Rakenduse ikoon pole mitte üks, vaid kaks – väiksem ja suurem. Uudsus seisneb selles, et ikoon ei ole lihtne pilt, vaid sisaldab parallaksiefekti ja koosneb 2 kuni 5 kihist (taust, objektid keskel ja esiplaanil). Kõik rakenduses olevad aktiivsed pildid võivad sisaldada sama efekti.

Iga kiht on tegelikult lihtsalt pilt läbipaistval taustal. Apple on nende kihiliste piltide koostamiseks ette valmistanud oma rakenduse ja lubab peagi välja anda Adobe Photoshopi ekspordiplugina.

Teine nõue on pilt "Ülemine riiul". Kui kasutaja asetab rakenduse ülemisele reale (ülemisele riiulile) silmapaistvale kohale, peab rakendus pakkuma sisu ka rakenduste loendi kohal olevale töölauale. See võib olla kas lihtsalt lihtne pilt või see võib olla aktiivne ala, näiteks lemmikfilmide loendiga või meie puhul raadiojaamadega.

Paljud arendajad alles hakkavad uue tvOS-i võimalusi uurima. Hea uudis on see, et sisurakenduse kirjutamine on väga lihtne ja Apple on TVML-iga arendajate jaoks kaugele jõudnud. Rakenduse loomine (näiteks PLAY.CZ või iVyszílő) peaks olema lihtne ja kiire. Suure tõenäosusega valmib suur hulk rakendusi samal ajal, kui uus Apple TV müügile jõuab.

Omarakenduse kirjutamine või mängu teisaldamine iOS-ist tvOS-i on keerulisem, kuid mitte palju. Suurim takistus on erinevad juhtnupud ja 200 MB piirang rakenduse kohta. Native rakendus saab poest alla laadida vaid piiratud osa andmetest ja kõik muu tuleb lisaks alla laadida ning pole garantiid, et süsteem neid andmeid ei kustuta. Kuid arendajad tegelevad selle piiranguga kindlasti kiiresti, seda ka tänu tööriistakomplektile nimega "App Thinning", mis on samuti iOS 9 osa.

Teemad: , ,
.