Lukk annonse

Apple presenterte i forrige uke bl.a den nye Apple TV med tvOS-operativsystemet. At applikasjoner fra App Store kan installeres i den nye svarte boksen gjorde absolutt utviklerne mest fornøyd.

Utviklere har to alternativer. De kan skrive en innebygd app som har full tilgang til Apple TV-maskinvaren. Den tilgjengelige SDK (sett med biblioteker for utviklere) er veldig lik det utviklere allerede kjenner fra iPhone, iPad, og programmeringsspråkene er de samme - Objective-C og den yngre Swift.

Men for enklere applikasjoner tilbød Apple utviklere et annet alternativ i form av TVML - Television Markup Language. Hvis du føler at navnet TVML ser mistenkelig ut som HTML, har du rett. Det er egentlig et markup-språk basert på XML og veldig likt HTML, bare det er mye enklere og har en strengere syntaks. Men det er helt perfekt for programmer som Netflix. Og brukerne vil også dra nytte av det, fordi strengheten til TVML vil få multimedieapplikasjoner til å se ut og fungere omtrent på samme måte.

Veien til den første søknaden

Så det første jeg måtte gjøre var å laste ned den nye betaversjonen av Xcode-utviklingsmiljøet (versjon 7.1 er tilgjengelig her). Dette ga meg tilgang til tvOS SDK og var i stand til å starte et nytt prosjekt spesifikt rettet mot fjerde generasjon Apple TV. Appen kan være tvOS-only, eller koden kan legges til en eksisterende iOS-app for å lage en "universell" app - en modell som ligner på iPhone- og iPad-apper i dag.

Problem én: Xcode tilbyr bare muligheten til å lage en innebygd app. Men jeg fant veldig raskt en del i dokumentasjonen som vil hjelpe utviklere å endre dette skjelettet og forberede det for TVML. I utgangspunktet er det noen få linjer med kode i Swift som, bare på Apple TV, lager et fullskjermsobjekt og laster inn hoveddelen av appen, som allerede er skrevet i JavaScript.

Problem to: TVML-applikasjoner ligner egentlig mye på en nettside, og derfor lastes all koden fra internett. Selve applikasjonen er faktisk bare en "bootloader", den inneholder kun et minimum av kode og de mest grunnleggende grafiske elementene (applikasjonsikon og lignende). Til slutt satte jeg hoved-JavaScript-koden direkte inn i appen og fikk i det minste muligheten til å vise en egendefinert feilmelding når Apple TV ikke er koblet til Internett.

Det tredje lille problemet: iOS 9 og med den tvOS krever strengt tatt at all kommunikasjon mot Internett skjer kryptert via HTTPS. Dette er en funksjon introdusert i iOS 9 for alle apper, og årsaken er press på brukernes personvern og datasikkerhet. Så det vil være nødvendig å distribuere et SSL-sertifikat på webserveren. Den kan kjøpes for så lite som $5 (120 kroner) per år, eller du kan bruke for eksempel CloudFlare-tjenesten, som tar seg av HTTPS av seg selv, automatisk og uten investeringer. Det andre alternativet er å slå av denne begrensningen for applikasjonen, noe som er mulig foreløpig, men jeg vil definitivt ikke anbefale det.

Etter noen timers lesing av dokumentasjonen, hvor det fortsatt er småfeil av og til, utarbeidet jeg en veldig enkel, men fungerende applikasjon. Den viste den populære teksten "Hello World" og to knapper. Jeg brukte omtrent to timer på å prøve å få knappen til å være aktiv og faktisk gjøre noe. Men med tanke på de tidlige morgentimer, foretrakk jeg å legge meg... og det var en god ting.

Her om dagen fikk jeg den lyse ideen om å laste ned en ferdig prøve-TVML-applikasjon direkte fra Apple. Jeg fant det jeg lette etter veldig raskt i koden, og knappen fungerte. Blant annet oppdaget jeg også de to første delene av tvOS-opplæringen på Internett. Begge ressursene hjalp mye, så jeg startet et nytt prosjekt og startet min første virkelige søknad.

Første virkelige søknad

Jeg startet helt fra scratch, den første TVML-siden. Fordelen er at Apple har utarbeidet 18 ferdige TVML-maler for utviklere som bare må kopieres fra dokumentasjonen. Å redigere en mal tok omtrent en time, først og fremst fordi jeg forberedte API-en vår for å sende den ferdige TVML med alle nødvendige data til Apple TV.

Den andre malen tok bare omtrent 10 minutter. Jeg har lagt til to JavaScripts - det meste av koden i dem kommer direkte fra Apple, så hvorfor finne opp hjulet på nytt. Apple har utarbeidet skript som tar seg av lasting og visning av TVML-maler, inkludert anbefalt indikator for innholdslasting og mulig feilvisning.

På mindre enn to timer klarte jeg å sette sammen en veldig naken, men fungerende PLAY.CZ-applikasjon. Den kan vise en liste over radiostasjoner, den kan filtrere den etter sjanger og den kan starte radioen. Ja, mange ting er ikke i appen, men det grunnleggende fungerer.

[youtube id=”kLKvWC-rj7Q” width=”620″ høyde=”360″]

Fordelen er at applikasjonen i utgangspunktet ikke er noe mer enn en spesialversjon av nettsiden, som drives av JavaScript og du kan også bruke CSS for å endre utseendet.

Apple krever fortsatt noen flere ting å forberede. Applikasjonsikonet er ikke ett, men to - mindre og større. Nyheten er at ikonet ikke er et enkelt bilde, men inneholder en parallakseeffekt og er sammensatt av 2 til 5 lag (bakgrunn, objekter i midten og forgrunnen). Alle aktive bilder på tvers av applikasjonen kan inneholde samme effekt.

Hvert lag er faktisk bare et bilde på en gjennomsiktig bakgrunn. Apple har utarbeidet sin egen applikasjon for å kompilere disse lagdelte bildene og lover å gi ut en eksportplugin for Adobe Photoshop snart.

Et annet krav er et "øverste hylle"-bilde. Hvis brukeren plasserer appen på en fremtredende plass i den øverste raden (på øverste hylle), må appen også gi innhold til skrivebordet over applisten. Det kan enten være et enkelt bilde, eller det kan være et aktivt område, for eksempel med en liste over favorittfilmer eller, i vårt tilfelle, radiostasjoner.

Mange utviklere har akkurat begynt å utforske mulighetene til det nye tvOS. Den gode nyheten er at det er veldig enkelt å skrive en innholdsapp, og Apple har gått langt for utviklere med TVML. Å bygge en applikasjon (for eksempel PLAY.CZ eller iVyszílő) skal være enkelt og raskt. Sjansen er stor for at et stort antall applikasjoner er klare samtidig som den nye Apple TV kommer i salg.

Å skrive en innebygd app eller overføre et spill fra iOS til tvOS vil være mer utfordrende, men ikke mye. Det største hinderet vil være ulike kontroller og en grense på 200 MB per app. En innebygd applikasjon kan bare laste ned en begrenset del av dataene fra butikken, og alt annet må lastes ned i tillegg, og det er ingen garanti for at systemet ikke vil slette disse dataene. Utviklere vil imidlertid sikkert håndtere denne begrensningen raskt, også takket være tilgjengeligheten av et sett med verktøy kalt "App Thinning", som også er en del av iOS 9.

Emner: , ,
.