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.
Fin artikkel. Takk. Kanskje vil vi med tiden se fra Apple også en brukerløsning for å utarbeide enklere applikasjoner (løsninger), slik det er mulig med FileMaker for iOS, uten at jeg er utvikler.
I teorien ... Swift-lasteren er noen få linjer som fortsatt er de samme, bare URL-en for den første TVML-filen endres. Hvis noen vil, kan de sannsynligvis skrive et skript som kan eksternt kjøre en build med URL-en din og sende tilbake en IPA-fil. Eller hvis du har en mac, er det ikke noe problem å sende prosjektet, hvor du bare legger inn URL-en og starter byggingen. Fordelen er at dersom TVML-en er utenfor applikasjonen, trenger du faktisk bare én offentlig build og eventuelt en privat (utviklings-) build, og du kan kun endre TVML på serveren og dermed funksjonen til applikasjonen.
"Appen kan være tvOS-only, eller koden kan legges til en eksisterende iOS-app for å lage en 'one-size-fits-all'-app - en modell som ligner iPhone- og iPad-apper i dag."
Jeg lurer på hva du mener? Personlig har jeg ikke funnet noen steder en måte å lage 1 build som vil inkludere universal iPhone, iPad og Apple TV.. siden de er separate SDK-er (lik OSX), trenger du et ekstra mål for tvOS og dermed også en separat build. Jeg mangler noe?
i Xcode 7.1 kan tvOS-applikasjoner legges til som et annet mål for et allerede eksisterende prosjekt - tilsvarende applikasjoner for Apple Watch eller kanskje en widget for varslingssenteret. Jeg vet imidlertid ikke ennå hvordan den skal lastes opp til butikken... Jeg antar at Xcode sender én pakke og App Store deler den opp... Sikkert likt det de gjør med klokken nå
nei.. etter min mening er dette 2 helt forskjellige ting.. watch er en utvidelse.. eller i det minste var det til watchOS 2.0.. det ble gitt sammen med iOS-målet og fungerte ikke engang uten en iPhone.. ATV er en egen enhet.. det er det jeg snakker om , om bygget for ATV vil være separat (du må betale for 2$) og i tillegg iOS betalt for 2$, eller vil det være mulig å gi en universell 2$ bygget for både iOS og ATV. familie for ATV..
så den virkelige lanseringen vil vises, men den oppfører seg egentlig på samme måte som Apple Watch-koden, for eksempel. Ellers står det i dokumentasjonen at det vil være mulig å legge kode for tvOS til eksisterende applikasjon og dermed vil det være mulig å selge én app (én enhet i App Store) for både iOS og tvOS samtidig – ett kjøp for kunden, eller som en egen enhet - et separat kjøp for iOS og for tvOS.
Bare for å presisere, det er ikke 200 MB per app, men 200 MB lagret lokalt og resten lastet ned fra nettet ved behov
Takk, det var det jeg tenkte, men jeg formulerte meg sikkert feil. Alt over 200MB (eller alt som er lastet ned i tillegg) lagres som en cache, og hvis systemet bestemmer seg for at det går tom for plass, begynner det å slette det - noe som sannsynligvis ikke vil skje før det er nok ledig plass og deretter det minst brukte innholdet vil bli slettet, så det i praksis vil nok ikke være noe stort problem.
Hva mer jeg må finne ut, visstnok vil denne grensen ikke gjelde for spill, eller spillet kan være større enn 200 MB rett ved basen. Men jeg vet fortsatt ikke nøyaktig hvordan dette er ment. Det er fullt mulig at Apple fortsatt justerer denne policyen i henhold til tilbakemeldinger fra utviklere.
hehe Pokemon TCG – 4 GB, Bestill kaos på nett – 1,6 GB Hearthstone 1,3 GB Jeg er veldig nysgjerrig på dette.
det var informasjon om at spillene har en spesiell modus. Jeg setter detaljene sammen nå, og vi vil fullføre artikkelen.
Jeg kan ikke gjøre det, og jeg beklager på forhånd hvis jeg fornærmer noen, men jeg har bare en enorm, oppriktig og uforfalsket glede som jeg ville dele med dere...
Dagen etter kunngjøringen av den nye Apple TV var jeg ikke lat og meldte meg på Apple-lotteriet (skal jeg velge?) med mulighet for å få tak i et Developer Kit allerede før det kommer i salg.
I går kveld skrev Apple til meg at de valgte meg til den første batchen :)
Så jeg er ikke den samme som forfatteren av denne artikkelen, og jeg jobber ærlig talt med Preschool Brasnicce for Apple TV – tilgjengelig i App Store i løpet av oktober :)
så jeg har en følelse av at alle som har registrert seg sikkert har fått det :) Jeg bestilte også i går og jeg gleder meg veldig... Og jeg kjenner en person til som også venter på leveringen hans...
Uansett, så langt ser det ut til at det kommer til å bli mange apper når salget starter :)
Det gjør nok ikke alle - de ga det ikke til meg :(
:( Jeg synes synd på deg.
Hvis noen vil ha, har jeg åtte hvite Apple-klistremerker... jeg kan sende dem...