Stäng annons

Apple presenterade förra veckan bl.a den nya Apple TV med operativsystemet tvOS. Att applikationer från App Store kan installeras i den nya svarta lådan gjorde säkert utvecklarna mest nöjda.

Utvecklare har två alternativ. De kan skriva en inbyggd app som har full tillgång till Apple TV-hårdvaran. Den tillgängliga SDK (uppsättning av bibliotek för utvecklare) är mycket lik vad utvecklare redan känner till från iPhone, iPad, och programmeringsspråken är desamma - Objective-C och den yngre Swift.

Men för enklare applikationer erbjöd Apple utvecklare ett andra alternativ i form av TVML - Television Markup Language. Om du känner att namnet TVML ser misstänkt ut som HTML så har du rätt. Det är egentligen ett märkningsspråk baserat på XML och väldigt likt HTML, bara det är mycket enklare och har en striktare syntax. Men det är helt perfekt för applikationer som Netflix. Och användarna kommer också att dra nytta av det, eftersom TVMLs striktahet kommer att få multimediaapplikationer att se ut och fungera ungefär likadant.

Vägen till den första applikationen

Så det första jag var tvungen att göra var att ladda ner den nya betaversionen av Xcode-utvecklingsmiljön (version 7.1 är tillgänglig zde). Detta gav mig tillgång till tvOS SDK och kunde starta ett nytt projekt specifikt inriktat på fjärde generationens Apple TV. Appen kan vara tvOS-only, eller så kan koden läggas till i en befintlig iOS-app för att skapa en "universell" app - en modell som liknar iPhone- och iPad-appar idag.

Problem ett: Xcode erbjuder bara möjligheten att skapa en inbyggd app. Men jag hittade väldigt snabbt ett avsnitt i dokumentationen som kommer att hjälpa utvecklare att ändra det här skelettet och förbereda det för TVML. I grund och botten är det några rader kod i Swift som, bara på Apple TV, skapar ett helskärmsobjekt och laddar huvuddelen av appen, som redan är skriven i JavaScript.

Problem två: TVML-applikationer påminner verkligen mycket om en webbsida, och därför laddas all kod också från Internet. Applikationen i sig är egentligen bara en "bootloader", den innehåller bara ett minimum av kod och de mest grundläggande grafiska elementen (applikationsikon och liknande). Till slut lyckades jag lägga in den huvudsakliga JavaScript-koden direkt i appen och fick möjligheten att åtminstone visa ett anpassat felmeddelande när Apple TV inte är ansluten till internet.

Det tredje lilla problemet: iOS 9 och med den tvOS kräver strikt att all kommunikation mot Internet sker krypterad via HTTPS. Detta är en funktion som introduceras i iOS 9 för alla appar och anledningen är press på användarnas integritet och datasäkerhet. Så det kommer att bli nödvändigt att distribuera ett SSL-certifikat på webbservern. Den kan köpas för så lite som $5 (120 kronor) per år, eller så kan du använda till exempel tjänsten CloudFlare, som tar hand om HTTPS av sig själv, automatiskt och utan investeringar. Det andra alternativet är att stänga av denna begränsning för applikationen, vilket är möjligt för tillfället, men jag skulle definitivt inte rekommendera det.

Efter några timmars läsning av dokumentationen, där det fortfarande finns enstaka mindre fel, arbetade jag fram en väldigt enkel men fungerande applikation. Den visade den populära texten "Hello World" och två knappar. Jag tillbringade ungefär två timmar med att försöka få knappen att vara aktiv och faktiskt göra något. Men med tanke på de tidiga morgontimmarna så föredrog jag att somna... och det var bra.

Häromdagen fick jag den ljusa idén att ladda ner ett färdigt prov-TVML-program direkt från Apple. Jag hittade det jag letade efter väldigt snabbt i koden och knappen var aktiv och fungerade. Bland annat upptäckte jag också de två första delarna av tvOS-tutorialen på Internet. Båda resurserna hjälpte mycket, så jag startade ett nytt projekt och startade min första riktiga ansökan.

Första riktiga ansökan

Jag började helt från början, den första TVML-sidan. Fördelen är att Apple har förberett 18 färdiga TVML-mallar för utvecklare som bara behöver kopieras från dokumentationen. Att redigera en mall tog ungefär en timme, främst för att jag förberedde vårt API för att skicka den färdiga TVML med all nödvändig data till Apple TV.

Den andra mallen tog bara cirka 10 minuter. Jag har lagt till två JavaScript - det mesta av koden i dem kommer direkt från Apple, så varför återuppfinna hjulet. Apple har förberett skript som tar hand om att ladda och visa TVML-mallar, inklusive den rekommenderade innehållsladdningsindikatorn och eventuell felvisning.

På mindre än två timmar kunde jag sätta ihop en väldigt naken, men fungerande PLAY.CZ-applikation. Den kan visa en lista över radiostationer, den kan filtrera den efter genre och den kan starta radion. Ja, många saker finns inte i appen, men grunderna fungerar.

[youtube id=”kLKvWC-rj7Q” width=”620″ höjd=”360″]

Fördelen är att applikationen i princip inte är något annat än en specialversion av webbplatsen, som drivs av JavaScript och du kan även använda CSS för att ändra utseendet.

Apple kräver fortfarande några fler saker att förbereda. Applikationsikonen är inte en, utan två - mindre och större. Nyheten är att ikonen inte är en enkel bild, utan innehåller en parallaxeffekt och är sammansatt av 2 till 5 lager (bakgrund, objekt i mitten och förgrunden). Alla aktiva bilder i programmet kan innehålla samma effekt.

Varje lager är egentligen bara en bild på en transparent bakgrund. Apple har förberett sin egen applikation för att kompilera dessa lagerbilder och lovar att snart släppa ett exportplugin för Adobe Photoshop.

Ett annat krav är en "Översta hyllan"-bild. Om användaren placerar appen på en framträdande plats i den översta raden (på översta hyllan) måste appen även tillhandahålla innehåll för skrivbordet ovanför applistan. Det kan antingen bara vara en enkel bild eller så kan det vara ett aktivt område, till exempel med en lista över favoritfilmer eller, i vårt fall, radiostationer.

Många utvecklare har precis börjat utforska möjligheterna med det nya tvOS. Den goda nyheten är att det är väldigt enkelt att skriva en innehållsapp, och Apple har gått långt för utvecklare med TVML. Att bygga en applikation (till exempel PLAY.CZ eller iVyszílő) ska vara enkelt och snabbt. Det finns en god chans att ett stort antal applikationer är klara samtidigt som den nya Apple TV börjar säljas.

Att skriva en inbyggd app eller portera ett spel från iOS till tvOS kommer att vara mer utmanande, men inte mycket. Det största hindret kommer att vara olika kontroller och en gräns på 200 MB per app. En inbyggd applikation kan bara ladda ner en begränsad del av data från butiken, och allt annat måste laddas ner ytterligare, och det finns ingen garanti för att systemet inte kommer att radera denna data. Utvecklare kommer dock säkert att hantera denna begränsning snabbt, också tack vare tillgången på en uppsättning verktyg som kallas "App Thinning", som också är en del av iOS 9.

Ämnen: , ,
.