Apple præsenterede i sidste uge bl.a det nye Apple TV med tvOS-operativsystemet. Det faktum, at applikationer fra App Store kan installeres i den nye sorte boks, gjorde bestemt udviklerne mest glade.
Udviklere har to muligheder. De kan skrive en indbygget app, der har fuld adgang til Apple TV-hardwaren. Det tilgængelige SDK (sæt af biblioteker for udviklere) ligner meget, hvad udviklere allerede kender fra iPhone, iPad, og programmeringssprogene er de samme - Objective-C og den yngre Swift.
Men for enklere applikationer tilbød Apple udviklere en anden mulighed i form af TVML - Television Markup Language. Hvis du føler, at navnet TVML ser mistænkeligt ud som HTML, har du ret. Det er virkelig et markup-sprog baseret på XML og meget lig HTML, men det er meget enklere og har en strengere syntaks. Men det er helt perfekt til applikationer som Netflix. Og det vil brugerne også drage fordel af, fordi TVML's strenghed vil få multimedieapplikationer til at se ud og fungere meget ens.
Sti til den første ansøgning
Så det første jeg skulle gøre var at downloade den nye betaversion af Xcode-udviklingsmiljøet (version 7.1 er tilgængelig zde). Dette gav mig adgang til tvOS SDK og var i stand til at starte et nyt projekt specifikt målrettet den fjerde generation af Apple TV. Appen kan være tvOS-only, eller koden kan føjes til en eksisterende iOS-app for at skabe en "universel" app - en model, der ligner iPhone og iPad apps i dag.
Problem et: Xcode tilbyder kun muligheden for at oprette en indbygget app. Men jeg fandt meget hurtigt et afsnit i dokumentationen, der vil hjælpe udviklere med at ændre dette skelet og forberede det til TVML. Grundlæggende er det et par linjer kode i Swift, der bare på Apple TV'et skaber et fuldskærmsobjekt og indlæser hoveddelen af appen, som allerede er skrevet i JavaScript.
Problem to: TVML-applikationer minder egentlig meget om en webside, og derfor indlæses al koden også fra internettet. Selve applikationen er faktisk bare en "bootloader", den indeholder kun et minimum af kode og de mest basale grafiske elementer (applikationsikon og lignende). I sidste ende lykkedes det mig at sætte den primære JavaScript-kode direkte ind i appen og fik i det mindste mulighed for at vise en brugerdefineret fejlmeddelelse, når Apple TV ikke er forbundet til internettet.
Det tredje lille problem: iOS 9 og dermed tvOS kræver strengt, at al kommunikation mod internettet foregår krypteret via HTTPS. Dette er en funktion introduceret i iOS 9 til alle apps, og årsagen er pres på brugernes privatliv og datasikkerhed. Så det vil være nødvendigt at installere et SSL-certifikat på webserveren. Den kan købes for helt ned til $5 (120 crowns) om året, eller du kan f.eks. bruge CloudFlare-tjenesten, som sørger for HTTPS af sig selv, automatisk og uden investering. Den anden mulighed er at slå denne begrænsning fra for applikationen, hvilket er muligt indtil videre, men jeg vil bestemt ikke anbefale det.
Efter et par timers læsning af dokumentationen, hvor der stadig lejlighedsvis er mindre fejl, udarbejdede jeg en meget grundlæggende, men fungerende applikation. Den viste den populære tekst "Hello World" og to knapper. Jeg brugte omkring to timer på at få knappen til at være aktiv og faktisk gøre noget. Men i betragtning af de tidlige morgentimer foretrak jeg at gå i seng... og det var en god ting.
Forleden dag fik jeg den lyse idé at downloade en færdiglavet prøve-TVML-applikation direkte fra Apple. Jeg fandt meget hurtigt, hvad jeg ledte efter i koden, og knappen virkede og virkede. Jeg opdagede blandt andet også de to første dele af tvOS-tutorialen på internettet. Begge ressourcer hjalp meget, så jeg startede et nyt projekt og startede min første rigtige ansøgning.
Første rigtige ansøgning
Jeg startede helt fra bunden, den første TVML-side. Fordelen er, at Apple har udarbejdet 18 færdige TVML-skabeloner til udviklere, der blot skal kopieres fra dokumentationen. Det tog omkring en time at redigere en skabelon, primært fordi jeg forberedte vores API til at sende den færdige TVML med alle de nødvendige data til Apple TV.
Den anden skabelon tog kun omkring 10 minutter. Jeg har tilføjet to JavaScripts - det meste af koden i dem kommer direkte fra Apple, så hvorfor genopfinde hjulet. Apple har udarbejdet scripts, der tager sig af indlæsning og visning af TVML-skabeloner, inklusive den anbefalede indholdsindlæsningsindikator og mulig fejlvisning.
På mindre end to timer var jeg i stand til at sammensætte en meget blottet, men fungerende PLAY.CZ-applikation. Den kan vise en liste over radiostationer, den kan filtrere den efter genre, og den kan starte radioen. Ja, mange ting er ikke i appen, men det grundlæggende fungerer.
[youtube id=”kLKvWC-rj7Q” width=”620″ højde=”360″]
Fordelen er, at applikationen stort set ikke er andet end en speciel version af hjemmesiden, som er drevet af JavaScript og du kan også bruge CSS til at ændre udseendet.
Apple kræver stadig et par ting mere at forberede. Applikationsikonet er ikke et, men to - mindre og større. Det nye er, at ikonet ikke er et simpelt billede, men indeholder en parallakseeffekt og er sammensat af 2 til 5 lag (baggrund, objekter i midten og forgrunden). Alle aktive billeder på tværs af applikationen kan indeholde den samme effekt.
Hvert lag er faktisk kun et billede på en gennemsigtig baggrund. Apple har forberedt sin egen applikation til kompilering af disse lagdelte billeder og lover snart at frigive et eksportplugin til Adobe Photoshop.
Et andet krav er et "øverste hylde"-billede. Hvis brugeren placerer appen i en fremtrædende position i den øverste række (på øverste hylde), skal appen også levere indhold til skrivebordet over applisten. Der kan enten være et simpelt billede, eller det kan være et aktivt område, for eksempel med en liste over yndlingsfilm eller, i vores tilfælde, radiostationer.
Mange udviklere er lige begyndt at udforske mulighederne i det nye tvOS. Den gode nyhed er, at det er meget nemt at skrive en indholdsapp, og Apple er gået langt for udviklere med TVML. Det skal være nemt og hurtigt at bygge en applikation (for eksempel PLAY.CZ eller iVyszílő). Der er en god chance for, at en lang række applikationer er klar samtidig med, at det nye Apple TV kommer til salg.
At skrive en indbygget app eller overføre et spil fra iOS til tvOS vil være mere udfordrende, men ikke meget. Den største hindring vil være forskellige kontroller og en grænse på 200 MB pr. app. En native applikation kan kun downloade en begrænset del af dataene fra butikken, og alt andet skal downloades yderligere, og der er ingen garanti for, at systemet ikke sletter disse data. Udviklere vil dog helt sikkert håndtere denne begrænsning hurtigt, også takket være tilgængeligheden af et sæt værktøjer kaldet "App Thinning", som også er en del af iOS 9.
Fin artikel. Tak. Måske vil vi med tiden også se fra Apple en brugerløsning til at udarbejde enklere applikationer (løsninger), som det er muligt med FileMaker til iOS, uden at jeg er udvikler.
I teorien... er Swift-indlæseren et par linjer, der stadig er de samme, kun URL'en for den første TVML-fil ændres. Hvis nogen vil, kan de sandsynligvis skrive et script, der fjernt kan køre en build med din URL og sende en IPA-fil tilbage. Eller har du en mac, er det ikke noget problem at sende projektet, hvor du blot lægger URL'en og starter opbygningen. Fordelen er, at hvis TVML'en er uden for applikationen, behøver du faktisk kun én public build og eventuelt en privat (udviklings)build, og du kan kun ændre TVML'en på serveren og dermed applikationens funktion.
"Appen kan være tvOS-only, eller koden kan føjes til en eksisterende iOS-app for at skabe en 'one-size-fits-all'-app - en model, der ligner iPhone- og iPad-apps i dag."
Jeg spekulerer på, hvad du mener? Personligt har jeg ikke fundet nogen steder en måde at lave 1 build på, der vil omfatte universal iPhone, iPad og Apple TV.. da de er separate SDK'er (ligner OSX), skal du bruge et ekstra mål til tvOS og dermed også en separat build. Jeg mangler noget ?
i Xcode 7.1 kan tvOS-applikationer tilføjes som endnu et mål til et allerede eksisterende projekt - svarende til applikationer til Apple Watch eller måske en widget til notifikationscenteret. Jeg ved dog endnu ikke, hvordan det bliver uploadet til butikken... Jeg går ud fra at Xcode sender én pakke og App Store så deler den op... Formentlig magen til hvad de gør med Uret nu
nej.. efter min mening er det 2 helt forskellige ting.. ur er en udvidelse.. eller i det mindste var det indtil watchOS 2.0.. det blev givet sammen med iOS-målet og virkede ikke engang uden en iPhone.. ATV er en separat enhed.. det er hvad jeg taler om, om bygningen til ATV vil være separat (du skal betale for 2$) og derudover iOS betalt for 2$, eller vil det være muligt at give en universel 2$ bygget til både iOS og ATV. familie til ATV..
så den rigtige lancering vil vise sig, men den opfører sig virkelig det samme som Apple Watch-koden, for eksempel. Ellers fremgår det af dokumentationen, at det vil være muligt at tilføje kode til tvOS til den eksisterende applikation og dermed vil det være muligt at sælge én app (én enhed i App Store) til både iOS og tvOS på samme tid - ét køb pr. kunden, eller som en separat enhed - et separat køb til iOS og til tvOS.
Bare for at præcisere, det er ikke 200 MB pr. app, men 200 MB gemt lokalt og resten downloadet fra nettet, når det er nødvendigt
Tak, det var det jeg tænkte, men jeg har nok formuleret det forkert. Alt over 200MB (eller alt der er ekstra downloadet) gemmes som en cache, og hvis systemet beslutter, at det er ved at løbe tør for plads, begynder det at slette det - hvilket sandsynligvis ikke sker, før der er nok ledig plads og så det mindst brugte indhold vil blive slettet, så det i praksis bliver nok ikke det store problem.
Hvad jeg ellers skal finde ud af, angiveligt vil denne grænse ikke gælde for spil, eller spillet kan være større end 200 MB lige ved basen. Men jeg ved stadig ikke helt, hvordan det helt præcist er ment. Det er meget muligt, at Apple stadig justerer denne politik i henhold til feedback fra udviklere.
hehe Pokemon TCG – 4 GB, Bestil kaos online – 1,6 GB Hearthstone 1,3 GB Jeg er virkelig nysgerrig på dette.
der var oplysninger om, at spillene har en speciel tilstand. Jeg sætter detaljerne sammen nu, og vi vil færdiggøre artiklen.
Jeg kan ikke gøre det, og jeg undskylder på forhånd, hvis jeg fornærmer nogen, men jeg har bare en kæmpe, oprigtig og ægte glæde, som jeg ville dele med jer...
Dagen efter annonceringen af det nye Apple TV var jeg ikke doven og tilmeldte mig Apple-lotteriet (skal jeg vælge?) med mulighed for at få et Developer Kit allerede inden det kommer til salg.
I går aftes skrev Apple til mig, at det valgte mig til den første batch :)
Så jeg er ikke den samme som forfatteren af denne artikel, og jeg arbejder ærligt talt på Preschool Brasnicce til Apple TV - tilgængelig i din App Store i løbet af oktober :)
så jeg har en fornemmelse af at alle der har tilmeldt sig nok har fået det :) Jeg bestilte også i går og glæder mig rigtig meget... Og jeg kender en person mere der også venter på sin levering...
Anyway, indtil videre ser det ud til, at der nok kommer en del apps, når salget starter :)
Det gør alle nok ikke - de gav mig det ikke :(
:( Jeg har ondt af dig.
Hvis nogen vil have det, har jeg otte hvide Apple-klistermærker... jeg kan sende dem...