Uždaryti skelbimą

„Apple“ praėjusią savaitę pristatė, be kita ko naujasis Apple TV su tvOS operacine sistema. Tai, kad naujoje juodojoje dėžutėje galima įdiegti programas iš App Store, kūrėjus tikrai nudžiugino labiausiai.

Kūrėjai turi dvi galimybes. Jie gali parašyti vietinę programą, turinčią visišką prieigą prie „Apple TV“ aparatinės įrangos. Galimas SDK (bibliotekų rinkinys kūrėjams) yra labai panašus į tai, ką kūrėjai jau žino iš „iPhone“, „iPad“, o programavimo kalbos yra tos pačios - „Objective-C“ ir jaunesnė „Swift“.

Tačiau paprastesnėms programoms Apple pasiūlė kūrėjams antrą variantą TVML forma – Television Markup Language. Jei manote, kad pavadinimas TVML įtartinai panašus į HTML, esate teisus. Tai tikrai XML pagrindu sukurta žymėjimo kalba ir labai panaši į HTML, tik ji daug paprastesnė ir griežtesne sintaksė. Tačiau jis puikiai tinka tokioms programoms kaip „Netflix“. Naudinga bus ir vartotojams, nes TVML griežtumas leis, kad daugialypės terpės programos atrodys ir veiks vienodai.

Kelias į pirmąją programą

Taigi pirmas dalykas, kurį turėjau padaryti, buvo atsisiųsti naują Xcode kūrimo aplinkos beta versiją (galima 7.1 versija čia). Tai suteikė man prieigą prie tvOS SDK ir galėjau pradėti naują projektą, specialiai skirtą ketvirtos kartos Apple TV. Programa gali būti skirta tik „tvOS“ arba kodas gali būti pridėtas prie esamos „iOS“ programos, kad būtų sukurta „universali“ programa – modelis, panašus į „iPhone“ ir „iPad“ programas šiandien.

Viena problema: „Xcode“ siūlo tik galimybę sukurti vietinę programą. Bet labai greitai dokumentacijoje radau skyrių, kuris padės kūrėjams pakeisti šį skeletą ir paruošti jį TVML. Iš esmės tai yra kelios „Swift“ kodo eilutės, kurios tiesiog „Apple TV“ sukuria viso ekrano objektą ir įkelia pagrindinę programėlės dalį, kuri jau parašyta „JavaScript“.

Antra problema: TVML programos tikrai labai panašios į tinklalapį, todėl visas kodas taip pat įkeliamas iš interneto. Pati programa iš tikrųjų yra tik „bootloader“, joje yra tik minimalus kodas ir pagrindiniai grafiniai elementai (aplikacijos piktograma ir panašiai). Galiausiai sėkmingai įdėjau pagrindinį JavaScript kodą tiesiai į programėlę ir gavau galimybę bent jau rodyti pasirinktinį klaidos pranešimą, kai Apple TV neprisijungęs prie interneto.

Trečia maža problema: iOS 9 ir kartu su ja tvOS griežtai reikalauja, kad visas bendravimas į internetą vyktų užšifruotas per HTTPS. Ši funkcija įdiegta „iOS 9“ visoms programoms, o priežastis yra spaudimas vartotojų privatumui ir duomenų saugumui. Taigi žiniatinklio serveryje reikės įdiegti SSL sertifikatą. Jį galima įsigyti vos už 5 USD (120 kronų) per metus arba galima pasinaudoti, pavyzdžiui, „CloudFlare“ paslauga, kuri pati, automatiškai ir be investicijų pasirūpins HTTPS. Antras variantas – išjungti šį apribojimą aplikacijai, tai kol kas galima, bet tikrai nerekomenduočiau.

Po kelių valandų perskaičiusi dokumentaciją, kur vis dar pasitaiko nedidelių klaidų, parengiau labai paprastą, bet veikiančią programą. Jame buvo rodomas populiarus tekstas „Hello World“ ir du mygtukai. Aš praleidau maždaug dvi valandas bandydamas įjungti mygtuką ir iš tikrųjų ką nors padaryti. Tačiau atsižvelgiant į ankstyvas ryto valandas, aš mieliau eidavau miegoti... ir tai buvo geras dalykas.

Kitą dieną man kilo mintis atsisiųsti paruoštą TVML programos pavyzdį tiesiai iš Apple. Kode labai greitai radau tai, ko ieškojau, mygtukas veikė ir veikė. Be kita ko, internete atradau ir pirmąsias dvi tvOS pamokos dalis. Abu ištekliai labai padėjo, todėl pradėjau naują projektą ir pradėjau savo pirmąją realią paraišką.

Pirmas tikras pritaikymas

Pradėjau visiškai nuo nulio, pirmojo TVML puslapio. Privalumas tas, kad Apple kūrėjams paruošė 18 paruoštų TVML šablonų, kuriuos tereikia nukopijuoti iš dokumentacijos. Vieno šablono redagavimas užtruko apie valandą, visų pirma todėl, kad ruošiau mūsų API išsiųsti gatavą TVML su visais reikalingais duomenimis į Apple TV.

Antrasis šablonas užtruko tik apie 10 minučių. Pridėjau du „JavaScript“ – didžioji dalis juose esančio kodo ateina tiesiai iš „Apple“, tad kam išradinėti dviratį iš naujo. „Apple“ parengė scenarijus, kurie rūpinasi TVML šablonų įkėlimu ir rodymu, įskaitant rekomenduojamą turinio įkėlimo indikatorių ir galimų klaidų rodymą.

Per mažiau nei dvi valandas man pavyko sukurti labai pliką, bet veikiančią PLAY.CZ programą. Jis gali rodyti radijo stočių sąrašą, filtruoti jį pagal žanrą ir paleisti radiją. Taip, daug dalykų nėra programoje, bet pagrindai veikia.

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

Privalumas yra tas, kad programa iš esmės yra ne kas kita, kaip speciali svetainės versija, kurią palaiko JavaScript, o išvaizdai pakeisti galite naudoti CSS.

„Apple“ vis dar turi paruošti dar keletą dalykų. Programos piktograma yra ne viena, o dvi – mažesnė ir didesnė. Naujovė yra ta, kad piktograma nėra paprastas vaizdas, bet turi paralakso efektą ir yra sudarytas iš 2–5 sluoksnių (fonas, objektai viduryje ir priekiniame plane). Visi aktyvūs vaizdai visoje programoje gali turėti tą patį efektą.

Kiekvienas sluoksnis iš tikrųjų yra tik vaizdas skaidriame fone. „Apple“ parengė savo programą šiems sluoksniuotiems vaizdams kompiliuoti ir netrukus žada išleisti „Adobe Photoshop“ eksporto papildinį.

Kitas reikalavimas – „Viršutinės lentynos“ vaizdas. Jei naudotojas pateikia programą gerai matomoje vietoje viršutinėje eilutėje (viršutinėje lentynoje), programa taip pat turi pateikti turinį darbalaukiui virš programų sąrašo. Gali būti arba tik paprastas paveikslėlis, arba tai gali būti aktyvi sritis, pavyzdžiui, su mėgstamų filmų sąrašu arba, mūsų atveju, radijo stotys.

Daugelis kūrėjų tik pradeda tyrinėti naujosios tvOS galimybes. Geros naujienos yra tai, kad turinio programėlę parašyti labai paprasta, o „Apple“ nuėjo ilgą kelią TVML kūrėjams. Programos kūrimas (pvz., PLAY.CZ arba iVyszílő) turėtų būti lengvas ir greitas. Yra didelė tikimybė, kad daug programų bus paruošta tuo pačiu metu, kai naujasis Apple TV bus parduodamas.

Rašyti savo programą arba perkelti žaidimą iš iOS į tvOS bus sudėtingiau, bet ne per daug. Didžiausia kliūtis bus skirtingi valdikliai ir 200 MB vienos programos apribojimas. Natūrali programa iš parduotuvės gali atsisiųsti tik ribotą duomenų dalį, o visa kita turi būti atsisiunčiama papildomai, ir nėra garantijos, kad sistema šių duomenų neištrins. Tačiau kūrėjai neabejotinai greitai susidoros su šiuo apribojimu, taip pat dėl ​​to, kad yra įrankių rinkinio, vadinamo „App Thinning“, kurie taip pat yra „iOS 9“ dalis.

.