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.
Trevlig artikel. Tack. Kanske kommer vi med tiden att se från Apple också en användarlösning för att förbereda enklare applikationer (lösningar), som är möjligt med FileMaker för iOS, utan att jag är utvecklare.
I teorin … Swift-laddaren är några rader som fortfarande är desamma, bara URL:en för den första TVML-filen ändras. Om någon vill kan de förmodligen skriva ett skript som kan fjärrköra en build med din URL och skicka tillbaka en IPA-fil. Eller om du har en mac är det inga problem att skicka projektet, där du bara lägger in URL:en och startar bygget. Fördelen är att om TVML är utanför applikationen behöver du faktiskt bara en public build och eventuellt en privat (utvecklings) build, och du kan bara ändra TVML på servern och därmed applikationens funktion.
"Appen kan vara tvOS-only, eller så kan koden läggas till i en befintlig iOS-app för att skapa en 'one-size-fits-all'-app - en modell som liknar iPhone- och iPad-appar idag."
Jag undrar vad du menar? Personligen har jag inte hittat någonstans ett sätt att göra 1 build som kommer att innehålla universal iPhone, iPad och Apple TV.. eftersom de är separata SDK:er (liknande OSX), behöver du ett extra mål för tvOS och därmed också en separat build. Jag saknar något ?
i Xcode 7.1 kan tvOS-applikationer läggas till som ytterligare ett mål till ett redan existerande projekt - liknande applikationer för Apple Watch eller kanske en widget för meddelandecentret. Jag vet dock inte ännu hur det kommer att laddas upp till butiken... Jag antar att Xcode skickar ett paket och App Store sedan delar upp det... Förmodligen liknande vad de gör med Watch nu
nej.. enligt mig är det här 2 helt olika saker.. watch är en förlängning.. eller åtminstone var det fram till watchOS 2.0.. den gavs tillsammans med iOS-målet och fungerade inte ens utan en iPhone.. ATV är en separat enhet.. det är vad jag pratar om , om bygget för ATV kommer att vara separat (du måste betala för 2$) och dessutom betalas iOS för 2$, eller kommer det att vara möjligt att bevilja en universell 2$ byggd för både iOS och ATV. familj för ATV..
så den verkliga lanseringen kommer att visas, men den beter sig egentligen på samma sätt som Apple Watch-koden, till exempel. I övrigt står det i dokumentationen att det kommer att vara möjligt att lägga till kod för tvOS till den befintliga applikationen och därmed kommer det att vara möjligt att sälja en app (en enhet i App Store) för både iOS och tvOS samtidigt - ett köp för kunden, eller som en separat enhet - ett separat köp för iOS och för tvOS.
Bara för att förtydliga, det är inte 200 MB per app, utan 200 MB lagras lokalt och resten laddas ner från nätet vid behov
Tack, det var så jag tänkte, men jag formulerade mig nog fel. Allt över 200MB (eller allt som laddas ner extra) lagras som en cache och om systemet bestämmer sig för att det börjar ta slut på utrymme börjar det radera det - vilket troligen inte kommer att hända förrän det finns tillräckligt med ledigt utrymme och sedan det minst använda innehållet kommer att raderas, så det kommer i praktiken förmodligen inte att vara några större problem.
Vad mer jag måste ta reda på, förmodligen kommer denna gräns inte att gälla för spel, eller spelet kan vara större än 200MB precis vid basen. Men jag vet fortfarande inte exakt hur detta är menat. Det är fullt möjligt att Apple fortfarande justerar denna policy enligt feedback från utvecklare.
hehe Pokemon TCG – 4 GB, Beställ kaos online – 1,6 GB Hearthstone 1,3 GB Jag är verkligen nyfiken på detta.
det fanns information om att spelen har ett speciellt läge. Jag sätter ihop detaljerna nu och vi kommer att slutföra artikeln.
Jag kan inte göra det, och jag ber om ursäkt i förväg om jag förolämpar någon, men jag har bara en enorm, uppriktig och oförfalskad glädje som jag ville dela med dig...
Dagen efter tillkännagivandet av nya Apple TV var jag inte lat och anmälde mig till Apples lotteri (ska jag välja?) med möjlighet att skaffa ett Developer Kit redan innan det börjar säljas.
Igår kväll skrev Apple till mig att det valde ut mig för den första batchen :)
Så jag är inte samma sak som författaren till den här artikeln, och jag jobbar ärligt talat på Preschool Brasnicce för Apple TV - tillgänglig i din App Store under oktober :)
så jag har en känsla av att alla som anmält sig nog har fått det :) Jag beställde också igår och jag ser verkligen fram emot det... Och jag vet en till som också väntar på sin leverans...
Hur som helst, än så länge verkar det som att det kommer bli en hel del appar när försäljningen startar :)
Alla gör det nog inte - de gav det inte till mig :(
:( Jag är ledsen för din skull.
Om någon skulle vilja har jag åtta vita Apple-klistermärken... Jag kan posta dem...