Advertentie sluiten

Apple presenteerde vorige week onder meer de nieuwe AppleTV met het tvOS-besturingssysteem. Het feit dat applicaties uit de App Store in de nieuwe black box geïnstalleerd kunnen worden, stemde de ontwikkelaars in ieder geval het meest tevreden.

Ontwikkelaars hebben twee opties. Ze kunnen een native app schrijven die volledige toegang heeft tot de Apple TV-hardware. De beschikbare SDK (set bibliotheken voor ontwikkelaars) lijkt sterk op wat ontwikkelaars al kennen van de iPhone, iPad, en de programmeertalen zijn hetzelfde: Objective-C en de jongere Swift.

Maar voor eenvoudigere toepassingen bood Apple ontwikkelaars een tweede optie in de vorm van TVML - Television Markup Language. Als u vindt dat de naam TVML verdacht veel op HTML lijkt, heeft u gelijk. Het is eigenlijk een opmaaktaal gebaseerd op XML en lijkt erg op HTML, alleen is het veel eenvoudiger en heeft het een strengere syntaxis. Maar het is absoluut perfect voor toepassingen zoals Netflix. En gebruikers zullen er ook van profiteren, omdat de striktheid van TVML ervoor zorgt dat multimediatoepassingen er vrijwel hetzelfde uitzien en werken.

Pad naar de eerste toepassing

Dus het eerste wat ik moest doen was de nieuwe bètaversie van de Xcode-ontwikkelomgeving downloaden (versie 7.1 is beschikbaar hier). Hierdoor kreeg ik toegang tot de tvOS SDK en kon ik een nieuw project starten dat specifiek gericht was op de vierde generatie Apple TV. De app kan alleen voor tvOS zijn, of de code kan worden toegevoegd aan een bestaande iOS-app om een ​​‘universele’ app te creëren – een model vergelijkbaar met de huidige iPhone- en iPad-apps.

Probleem één: Xcode biedt alleen de mogelijkheid om een ​​native app te maken. Maar ik vond al snel een sectie in de documentatie die ontwikkelaars zal helpen dit skelet te veranderen en voor te bereiden op TVML. Kortom, het zijn een paar regels code in Swift die, gewoon op de Apple TV, een object op volledig scherm maken en het hoofdgedeelte van de app laden, dat al in JavaScript is geschreven.

Probleem twee: TVML-applicaties lijken eigenlijk heel erg op een webpagina en daarom wordt alle code ook van internet geladen. De applicatie zelf is eigenlijk slechts een "bootloader", deze bevat slechts een minimum aan code en de meest elementaire grafische elementen (applicatiepictogram en dergelijke). Uiteindelijk heb ik met succes de belangrijkste JavaScript-code rechtstreeks in de app geplaatst en kreeg ik de mogelijkheid om op zijn minst een aangepaste foutmelding weer te geven wanneer de Apple TV geen verbinding met internet heeft.

Het derde kleine probleem: iOS 9 en daarmee tvOS vereisen strikt dat alle communicatie naar het internet versleuteld via HTTPS plaatsvindt. Dit is een functie die in iOS 9 voor alle apps is geïntroduceerd en de reden is de druk op de privacy van gebruikers en de gegevensbeveiliging. Het zal dus nodig zijn om een ​​SSL-certificaat op de webserver te implementeren. Het kan worden aangeschaft voor slechts $ 5 (120 kronen) per jaar, of u kunt bijvoorbeeld de CloudFlare-service gebruiken, die zelf voor HTTPS zorgt, automatisch en zonder investeringen. De tweede optie is om deze beperking voor de applicatie uit te schakelen, wat voorlopig mogelijk is, maar ik zou het zeker niet aanbevelen.

Na een paar uur de documentatie gelezen te hebben, waar nog steeds af en toe kleine fouten in voorkomen, heb ik een zeer eenvoudige maar werkende applicatie uitgewerkt. Het toonde de populaire tekst "Hello World" en twee knoppen. Ik heb ongeveer twee uur besteed aan het proberen om de knop actief te krijgen en daadwerkelijk iets te doen. Maar gezien de vroege ochtenduren ging ik liever slapen… en dat was maar goed ook.

Onlangs had ik het lumineuze idee om een ​​kant-en-klaar voorbeeld van een TVML-applicatie rechtstreeks van Apple te downloaden. Ik vond heel snel wat ik zocht in de code en de knop was live en werkte. Ik ontdekte onder meer ook de eerste twee delen van de tvOS-tutorial op internet. Beide bronnen hielpen enorm, dus startte ik een nieuw project en startte mijn eerste echte applicatie.

Eerste echte toepassing

Ik begon helemaal opnieuw, de eerste TVML-pagina. Het voordeel is dat Apple 18 kant-en-klare TVML-sjablonen voor ontwikkelaars heeft voorbereid, die alleen nog maar uit de documentatie hoeven te worden gekopieerd. Het bewerken van één sjabloon duurde ongeveer een uur, vooral omdat ik onze API aan het voorbereiden was om de voltooide TVML met alle benodigde gegevens naar de Apple TV te sturen.

Het tweede sjabloon duurde slechts ongeveer 10 minuten. Ik heb twee JavaScripts toegevoegd. De meeste code daarin komt rechtstreeks van Apple, dus waarom zou je het wiel opnieuw uitvinden? Apple heeft scripts voorbereid die zorgen voor het laden en weergeven van TVML-sjablonen, inclusief de aanbevolen indicator voor het laden van inhoud en mogelijke foutweergave.

In minder dan twee uur kon ik een zeer kale, maar functionerende PLAY.CZ-applicatie in elkaar zetten. Het kan een lijst met radiostations weergeven, het kan filteren op genre en het kan de radio starten. Ja, veel dingen staan ​​niet in de app, maar de basis werkt.

[youtube id=”kLKvWC-rj7Q” breedte=”620″ hoogte=”360″]

Het voordeel is dat de applicatie eigenlijk niets meer is dan een speciale versie van de website, die wordt aangedreven door JavaScript en waarbij je ook CSS kunt gebruiken om het uiterlijk aan te passen.

Apple heeft nog een paar dingen nodig om zich voor te bereiden. Het applicatiepictogram is niet één, maar twee: kleiner en groter. Nieuw is dat het icoon geen simpele afbeelding is, maar een parallaxeffect bevat en is opgebouwd uit 2 tot 5 lagen (achtergrond, objecten in het midden en voorgrond). Alle actieve afbeeldingen in de applicatie kunnen hetzelfde effect hebben.

Elke laag is eigenlijk slechts een afbeelding op een transparante achtergrond. Apple heeft een eigen applicatie voorbereid voor het compileren van deze gelaagde afbeeldingen en belooft binnenkort een exportplug-in voor Adobe Photoshop uit te brengen.

Een andere vereiste is een "Top Shelf" -afbeelding. Als de gebruiker de app op een prominente plek in de bovenste rij (op de bovenste plank) plaatst, moet de app boven de applijst ook content voor de desktop aanbieden. Er kan sprake zijn van een eenvoudig beeld, maar het kan ook een actief gebied zijn, bijvoorbeeld met een lijst met favoriete films of, in ons geval, radiostations.

Veel ontwikkelaars beginnen nog maar net de mogelijkheden van het nieuwe tvOS te verkennen. Het goede nieuws is dat het schrijven van een content-app heel eenvoudig is, en Apple heeft met TVML een lange weg afgelegd voor ontwikkelaars. Het bouwen van een applicatie (bijvoorbeeld PLAY.CZ of iVyszílő) moet gemakkelijk en snel zijn. De kans is groot dat er tegelijkertijd met de verkoop van de nieuwe Apple TV een groot aantal applicaties klaar zullen zijn.

Het schrijven van een native app of het porten van een game van iOS naar tvOS zal een grotere uitdaging zijn, maar niet zozeer. De grootste hindernis zijn verschillende bedieningselementen en een limiet van 200 MB per app. Een native applicatie kan slechts een beperkt deel van de gegevens uit de winkel downloaden, en al het andere moet bovendien worden gedownload, en er is geen garantie dat het systeem deze gegevens niet zal verwijderen. Ontwikkelaars zullen echter zeker snel met deze beperking afrekenen, mede dankzij de beschikbaarheid van een set tools genaamd "App Thinning", die ook deel uitmaken van iOS 9.

Onderwerpen: , ,
.