Aizvērt sludinājumu

Apple pagājušajā nedēļā cita starpā prezentēja jaunais Apple TV ar tvOS operētājsistēmu. Izstrādātājus visvairāk iepriecināja fakts, ka jaunajā melnajā kastē var instalēt lietojumprogrammas no App Store.

Izstrādātājiem ir divas iespējas. Viņi var uzrakstīt vietējo lietotni, kurai ir pilna piekļuve Apple TV aparatūrai. Pieejamais SDK (bibliotēku komplekts izstrādātājiem) ir ļoti līdzīgs tam, ko izstrādātāji jau zina no iPhone, iPad, un programmēšanas valodas ir vienādas - Objective-C un jaunākā Swift versija.

Taču vienkāršākām lietojumprogrammām Apple piedāvāja izstrādātājiem otru iespēju TVML formātā – Television Markup Language. Ja jums šķiet, ka nosaukums TVML aizdomīgi izskatās pēc HTML, jums ir taisnība. Tā patiešām ir iezīmēšanas valoda, kuras pamatā ir XML un ļoti līdzīga HTML, tikai tā ir daudz vienkāršāka un tai ir stingrāka sintakse. Bet tas ir absolūti ideāls tādām lietojumprogrammām kā Netflix. Ieguvēji būs arī lietotāji, jo TVML stingrība ļaus multivides lietojumprogrammām izskatīties un darboties gandrīz vienādi.

Ceļš uz pirmo pieteikumu

Tāpēc pirmais, kas man bija jādara, bija lejupielādēt jauno Xcode izstrādes vides beta versiju (ir pieejama versija 7.1 šeit). Tas man deva piekļuvi tvOS SDK un varēju sākt jaunu projektu, kas īpaši paredzēts ceturtās paaudzes Apple TV. Lietojumprogramma var būt paredzēta tikai tvOS, vai arī kodu var pievienot esošai iOS lietotnei, lai izveidotu “universālu” lietotni — modeli, kas līdzīgs iPhone un iPad lietotnēm mūsdienās.

Pirmā problēma: Xcode piedāvā tikai iespēju izveidot vietējo lietotni. Bet es ļoti ātri atradu sadaļu dokumentācijā, kas palīdzēs izstrādātājiem mainīt šo skeletu un sagatavot to TVML. Būtībā tās ir dažas Swift koda rindiņas, kas tikai Apple TV rada pilnekrāna objektu un ielādē galveno programmas daļu, kas jau ir rakstīta JavaScript.

Otrā problēma: TVML lietojumprogrammas patiešām ir ļoti līdzīgas tīmekļa lapai, un tāpēc viss kods tiek ielādēts no interneta. Pati lietojumprogramma patiesībā ir tikai "bootloader", tajā ir tikai minimāls kods un elementārākie grafiskie elementi (lietojumprogrammas ikona un tamlīdzīgi). Galu galā es veiksmīgi ievietoju galveno JavaScript kodu tieši lietotnē un ieguvu iespēju vismaz parādīt pielāgotu kļūdas ziņojumu, kad Apple TV nav savienots ar internetu.

Trešā mazā problēma: iOS 9 un līdz ar to tvOS stingri pieprasa, lai visa saziņa ar internetu notiktu šifrēti, izmantojot HTTPS. Šī funkcija ir ieviesta operētājsistēmā iOS 9 visām lietotnēm, un iemesls ir spiediens uz lietotāju privātumu un datu drošību. Tāpēc tīmekļa serverī būs jāizvieto SSL sertifikāts. To var iegādāties jau par USD 5 (120 kronām) gadā, vai arī var izmantot, piemēram, CloudFlare servisu, kas par HTTPS parūpēsies pats, automātiski un bez investīcijām. Otrs variants ir atslēgt šo ierobežojumu aplikācijai, kas pagaidām ir iespējams, bet noteikti neieteiktu.

Pēc dažām stundām, lasot dokumentāciju, kur joprojām ik pa laikam ir nelielas kļūdas, es izstrādāju ļoti vienkāršu, bet strādājošu lietojumprogrammu. Tajā bija redzams populārs teksts "Sveika pasaule" un divas pogas. Es pavadīju apmēram divas stundas, mēģinot aktivizēt pogu un kaut ko darīt. Bet, ņemot vērā agrās rīta stundas, es labāk gāju gulēt... un tas bija labi.

Kādu dienu man radās spilgta doma lejupielādēt gatavu TVML aplikācijas paraugu tieši no Apple. Kodā ļoti ātri atradu meklēto, un poga darbojās un darbojās. Cita starpā es atklāju arī pirmās divas tvOS apmācības daļas internetā. Abi resursi ļoti palīdzēja, tāpēc sāku jaunu projektu un sāku savu pirmo reālo pieteikumu.

Pirmais reālais pieteikums

Sāku pilnīgi no nulles, pirmo TVML lapu. Priekšrocība ir tāda, ka Apple izstrādātājiem ir sagatavojis 18 gatavas TVML veidnes, kuras tikai jānokopē no dokumentācijas. Vienas veidnes rediģēšana aizņēma apmēram stundu, galvenokārt tāpēc, ka es gatavoju mūsu API, lai nosūtītu gatavo TVML ar visiem nepieciešamajiem datiem uz Apple TV.

Otrā veidne aizņēma tikai aptuveni 10 minūtes. Esmu pievienojis divus JavaScript — lielākā daļa tajos esošā koda nāk tieši no Apple, tad kāpēc no jauna izgudrot riteni. Apple ir sagatavojis skriptus, kas rūpējas par TVML veidņu ielādi un parādīšanu, tostarp ieteicamo satura ielādes indikatoru un iespējamo kļūdu parādīšanu.

Nepilnu divu stundu laikā man izdevās salikt pavisam pliku, bet funkcionējošu PLAY.CZ aplikāciju. Tas var parādīt radio staciju sarakstu, to var filtrēt pēc žanra un var sākt radio. Jā, lietotnē nav daudz lietu, taču pamati darbojas.

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

Priekšrocība ir tāda, ka aplikācija būtībā nav nekas cits kā speciāla mājas lapas versija, kuru darbina JavaScript, kā arī var izmantot CSS, lai modificētu izskatu.

Apple joprojām ir jāsagatavo vēl dažas lietas. Lietojumprogrammas ikona ir nevis viena, bet divas - mazāka un lielāka. Jaunums ir tāds, ka ikona nav vienkāršs attēls, bet satur paralakses efektu un sastāv no 2 līdz 5 slāņiem (fons, objekti vidū un priekšplānā). Visi aktīvie attēli visā lietojumprogrammā var saturēt tādu pašu efektu.

Katrs slānis patiesībā ir tikai attēls uz caurspīdīga fona. Apple ir sagatavojis savu lietojumprogrammu šo slāņu attēlu apkopošanai un sola drīzumā izlaist eksporta spraudni Adobe Photoshop.

Vēl viena prasība ir attēls "Augšējais plaukts". Ja lietotājs novieto lietotni redzamā vietā augšējā rindā (augšējā plauktā), lietotnei ir jānodrošina saturs arī darbvirsmai virs lietotņu saraksta. Var būt vai nu tikai vienkāršs attēls, vai arī tā var būt aktīva zona, piemēram, ar iecienītāko filmu sarakstu vai, mūsu gadījumā, radio stacijām.

Daudzi izstrādātāji tikai sāk izpētīt jaunās tvOS iespējas. Labās ziņas ir tādas, ka satura lietotnes rakstīšana ir ļoti vienkārša, un Apple ir gājusi garu ceļu izstrādātājiem ar TVML. Lietojumprogrammas izveidei (piemēram, PLAY.CZ vai iVyszílő) jābūt vienkāršai un ātrai. Pastāv liela iespēja, ka liela daļa aplikāciju būs gatavas vienlaikus ar jaunā Apple TV nonākšanu pārdošanā.

Vietējās lietotnes rakstīšana vai spēles pārnešana no iOS uz tvOS būs sarežģītāka, taču ne tik daudz. Lielākais šķērslis būs dažādas vadīklas un 200 MB ierobežojums vienai lietotnei. Vietējā lietojumprogramma no veikala var lejupielādēt tikai ierobežotu daļu datu, un viss pārējais ir jālejupielādē papildus, un nav garantijas, ka sistēma šos datus neizdzēsīs. Tomēr izstrādātāji noteikti ātri tiks galā ar šo ierobežojumu, arī pateicoties rīku komplektam ar nosaukumu "App Thinning", kas arī ir daļa no iOS 9.

Tēmas: , ,
.