Apple hat letzte Woche unter anderem vorgestellt das neue Apple TV mit dem tvOS-Betriebssystem. Die Tatsache, dass Anwendungen aus dem App Store in der neuen Blackbox installiert werden können, hat die Entwickler sicherlich am meisten gefreut.
Entwickler haben zwei Möglichkeiten. Sie können eine native App schreiben, die vollen Zugriff auf die Apple TV-Hardware hat. Das verfügbare SDK (Reihe von Bibliotheken für Entwickler) ähnelt stark dem, was Entwickler bereits vom iPhone und iPad kennen, und die Programmiersprachen sind dieselben – Objective-C und das jüngere Swift.
Für einfachere Anwendungen bot Apple den Entwicklern jedoch eine zweite Option in Form von TVML – Television Markup Language. Wenn Sie das Gefühl haben, dass der Name TVML verdächtig nach HTML aussieht, haben Sie Recht. Es handelt sich tatsächlich um eine Auszeichnungssprache, die auf XML basiert und HTML sehr ähnlich ist, nur ist sie viel einfacher und hat eine strengere Syntax. Aber für Anwendungen wie Netflix ist es absolut perfekt. Und auch die Benutzer werden davon profitieren, denn die Strenge von TVML sorgt dafür, dass Multimedia-Anwendungen weitgehend gleich aussehen und funktionieren.
Weg zur Erstbewerbung
Als erstes musste ich also die neue Beta-Version der Xcode-Entwicklungsumgebung herunterladen (Version 7.1 ist verfügbar). hier). Dadurch erhielt ich Zugriff auf das tvOS SDK und konnte ein neues Projekt starten, das speziell auf das Apple TV der vierten Generation abzielt. Die App kann nur tvOS sein oder der Code kann zu einer vorhandenen iOS-App hinzugefügt werden, um eine „universelle“ App zu erstellen – ein Modell, das den heutigen iPhone- und iPad-Apps ähnelt.
Problem eins: Xcode bietet nur die Möglichkeit, eine native App zu erstellen. Aber ich habe sehr schnell einen Abschnitt in der Dokumentation gefunden, der Entwicklern hilft, dieses Grundgerüst zu ändern und es für TVML vorzubereiten. Im Grunde sind es ein paar Codezeilen in Swift, die einfach auf dem Apple TV ein Vollbildobjekt erstellen und den Hauptteil der App laden, der bereits in JavaScript geschrieben ist.
Problem zwei: TVML-Anwendungen sind einer Webseite wirklich sehr ähnlich und daher wird auch der gesamte Code aus dem Internet geladen. Die Anwendung selbst ist eigentlich nur ein „Bootloader“, sie enthält nur ein Minimum an Code und die grundlegendsten grafischen Elemente (Anwendungssymbol und dergleichen). Am Ende habe ich den Haupt-JavaScript-Code erfolgreich direkt in die App eingefügt und die Möglichkeit erhalten, zumindest eine benutzerdefinierte Fehlermeldung anzuzeigen, wenn das Apple TV nicht mit dem Internet verbunden ist.
Das dritte kleine Problem: iOS 9 und damit tvOS verlangt strikt, dass die gesamte Kommunikation in Richtung Internet verschlüsselt über HTTPS erfolgt. Dies ist eine Funktion, die in iOS 9 für alle Apps eingeführt wurde. Der Grund dafür ist der Druck auf die Privatsphäre und Datensicherheit der Benutzer. Daher muss ein SSL-Zertifikat auf dem Webserver bereitgestellt werden. Es kann für nur 5 $ (120 Kronen) pro Jahr erworben werden, oder Sie können beispielsweise den CloudFlare-Dienst nutzen, der sich automatisch und ohne Investition selbst um HTTPS kümmert. Die zweite Möglichkeit besteht darin, diese Einschränkung für die Anwendung auszuschalten, was zwar vorerst möglich ist, ich aber definitiv nicht empfehlen würde.
Nach ein paar Stunden Lesen der Dokumentation, in der es immer noch gelegentlich kleinere Fehler gibt, habe ich eine sehr einfache, aber funktionierende Anwendung ausgearbeitet. Es zeigte den beliebten Text „Hello World“ und zwei Schaltflächen. Ich habe ungefähr zwei Stunden damit verbracht, den Knopf zum Aktivieren zu bringen und tatsächlich etwas zu tun. Aber angesichts der frühen Morgenstunden ging ich lieber schlafen … und das war auch gut so.
Neulich hatte ich die gute Idee, eine fertige Beispiel-TVML-Anwendung direkt von Apple herunterzuladen. Ich habe im Code sehr schnell gefunden, wonach ich gesucht habe, und der Button war live und funktionsfähig. Unter anderem habe ich auch die ersten beiden Teile des tvOS-Tutorials im Internet entdeckt. Beide Ressourcen haben sehr geholfen, also habe ich ein neues Projekt gestartet und meine erste echte Anwendung gestartet.
Erste echte Anwendung
Ich habe ganz von vorne angefangen, die erste TVML-Seite. Der Vorteil besteht darin, dass Apple 18 vorgefertigte TVML-Vorlagen für Entwickler vorbereitet hat, die nur noch aus der Dokumentation kopiert werden müssen. Das Bearbeiten einer Vorlage dauerte etwa eine Stunde, vor allem weil ich unsere API vorbereitete, um die fertige TVML mit allen notwendigen Daten an Apple TV zu senden.
Die zweite Vorlage dauerte nur etwa 10 Minuten. Ich habe zwei JavaScripts hinzugefügt – der Großteil des darin enthaltenen Codes stammt direkt von Apple, warum also das Rad neu erfinden? Apple hat Skripte vorbereitet, die sich um das Laden und Anzeigen von TVML-Vorlagen kümmern, einschließlich der empfohlenen Anzeige für das Laden von Inhalten und der Anzeige möglicher Fehler.
In weniger als zwei Stunden konnte ich eine sehr einfache, aber funktionierende PLAY.CZ-Anwendung zusammenstellen. Es kann eine Liste von Radiosendern anzeigen, nach Genre filtern und das Radio starten. Ja, viele Dinge sind nicht in der App enthalten, aber die Grundlagen funktionieren.
[youtube id=“kLKvWC-rj7Q“ width=“620″ height=“360″]
Der Vorteil besteht darin, dass es sich bei der Anwendung im Wesentlichen um nichts anderes als eine spezielle Version der Website handelt, die auf JavaScript basiert und Sie auch CSS verwenden können, um das Erscheinungsbild zu ändern.
Apple muss noch einige Dinge vorbereiten. Das Anwendungssymbol ist nicht eins, sondern zwei – kleiner und größer. Das Neue ist, dass das Icon kein einfaches Bild ist, sondern einen Parallaxeneffekt enthält und aus 2 bis 5 Ebenen (Hintergrund, Objekte in der Mitte und Vordergrund) besteht. Alle aktiven Bilder in der Anwendung können denselben Effekt enthalten.
Jede Ebene ist eigentlich nur ein Bild auf einem transparenten Hintergrund. Apple hat eine eigene Anwendung zum Zusammenstellen dieser Ebenenbilder vorbereitet und verspricht, bald ein Export-Plugin für Adobe Photoshop zu veröffentlichen.
Eine weitere Anforderung ist ein „Top Shelf“-Bild. Platziert der Nutzer die App an prominenter Stelle in der obersten Reihe (im obersten Regal), muss die App oberhalb der App-Liste auch Inhalte für den Desktop bereitstellen. Es kann entweder nur ein einfaches Bild sein oder es kann sich um einen aktiven Bereich handeln, beispielsweise mit einer Liste der Lieblingsfilme oder in unserem Fall der Radiosender.
Viele Entwickler fangen gerade erst an, die Möglichkeiten des neuen tvOS auszuloten. Die gute Nachricht ist, dass das Schreiben einer Content-App sehr einfach ist und Apple mit TVML den Entwicklern viel gebracht hat. Das Erstellen einer Anwendung (zum Beispiel PLAY.CZ oder iVyszílő) sollte einfach und schnell sein. Die Chancen stehen gut, dass zeitgleich mit dem Verkaufsstart des neuen Apple TV eine Vielzahl an Anwendungen fertig sein wird.
Eine native App zu schreiben oder ein Spiel von iOS auf tvOS zu portieren wird schwieriger sein, aber nicht viel. Die größte Hürde werden unterschiedliche Steuerelemente und ein Limit von 200 MB pro App sein. Eine native Anwendung kann nur einen begrenzten Teil der Daten aus dem Store herunterladen, alles andere muss zusätzlich heruntergeladen werden und es gibt keine Garantie dafür, dass das System diese Daten nicht löscht. Allerdings werden sich Entwickler mit dieser Einschränkung sicherlich schnell auseinandersetzen, auch dank der Verfügbarkeit einer Reihe von Tools namens „App Thinning“, die ebenfalls Teil von iOS 9 sind.
Schöner Artikel. Danke. Vielleicht werden wir von Apple mit der Zeit auch eine Anwenderlösung zur Erstellung einfacherer Anwendungen (Lösungen) sehen, wie es mit FileMaker für iOS möglich ist, ohne dass ich Entwickler bin.
Theoretisch besteht der Swift-Loader aus ein paar Zeilen, die immer noch gleich sind, nur die URL für die erste TVML-Datei ändert sich. Wenn jemand möchte, kann er wahrscheinlich ein Skript schreiben, das einen Build mit Ihrer URL remote ausführen und eine IPA-Datei zurücksenden könnte. Oder wenn Sie einen Mac haben, ist es kein Problem, das Projekt zu senden, indem Sie einfach die URL eingeben und mit dem Build beginnen. Der Vorteil besteht darin, dass Sie, wenn sich die TVML außerhalb der Anwendung befindet, tatsächlich nur einen öffentlichen Build und möglicherweise einen privaten (Entwicklungs-)Build benötigen und nur die TVML auf dem Server und damit die Funktionsweise der Anwendung ändern können.
„Die App kann nur tvOS sein, oder der Code kann zu einer vorhandenen iOS-App hinzugefügt werden, um eine „Einheitsgröße“-App zu erstellen – ein Modell, das den heutigen iPhone- und iPad-Apps ähnelt.“
Ich frage mich, was du meinst? Persönlich habe ich nirgendwo eine Möglichkeit gefunden, einen Build zu erstellen, der universelles iPhone, iPad und Apple TV umfasst. Da es sich um separate SDKs handelt (ähnlich wie bei OSX), benötigen Sie ein zusätzliches Ziel für tvOS und somit auch einen separaten Build. . Mir fehlt etwas?
In Xcode 7.1 können tvOS-Anwendungen als weiteres Ziel zu einem bereits bestehenden Projekt hinzugefügt werden – ähnlich wie Anwendungen für die Apple Watch oder vielleicht ein Widget für das Benachrichtigungscenter. Allerdings weiß ich noch nicht, wie es in den Store hochgeladen wird... Ich gehe davon aus, dass Xcode ein Paket verschickt und der App Store es dann aufteilt... Vermutlich ähnlich wie sie es jetzt mit der Watch machen
Nein.. das sind meiner Meinung nach 2 völlig verschiedene Dinge.. watch ist eine Erweiterung.. oder war es zumindest bis watchOS 2.0.. es wurde zusammen mit dem iOS-Ziel gegeben und funktionierte nicht einmal ohne iPhone.. ATV ist eine separate Einheit. Das ist es, worüber ich spreche, ob der Build für ATV separat sein wird (Sie müssen 2 $ bezahlen) und iOS zusätzlich 2 $ bezahlt, oder ob es möglich sein wird, eine universelle Version zu gewähren 2$ Build für iOS und ATV. Familie für ATV.
So wird der tatsächliche Start angezeigt, aber er verhält sich tatsächlich genauso wie beispielsweise der Apple Watch-Code. Andernfalls heißt es in der Dokumentation, dass es möglich sein wird, Code für tvOS zur bestehenden Anwendung hinzuzufügen und somit eine App (eine Entität im App Store) gleichzeitig für iOS und tvOS zu verkaufen – ein Kauf für beim Kunden oder als separate Einheit – ein separater Kauf für iOS und tvOS.
Nur zur Klarstellung: Es sind nicht 200 MB pro App, sondern 200 MB werden lokal gespeichert und der Rest wird bei Bedarf aus dem Internet heruntergeladen
Danke, das dachte ich mir, aber ich habe es wahrscheinlich falsch formuliert. Alles über 200 MB (oder alles, was zusätzlich heruntergeladen wird) wird als Cache gespeichert und wenn das System feststellt, dass der Speicherplatz knapp wird, beginnt es mit dem Löschen – was wahrscheinlich erst dann geschieht, wenn genügend freier Speicherplatz und dann die am wenigsten genutzten Inhalte vorhanden sind gelöscht, so dass es in der Praxis wahrscheinlich kein großes Problem darstellen wird.
Was ich noch herausfinden muss, angeblich gilt dieses Limit nicht für Spiele, bzw Das Spiel könnte direkt an der Basis größer als 200 MB sein. Aber ich weiß immer noch nicht genau, wie das genau gemeint ist. Es ist durchaus möglich, dass Apple diese Richtlinie aufgrund des Feedbacks der Entwickler noch anpasst.
Hehe Pokemon TCG – 4 GB, Order Chaos online – 1,6 GB Hearthstone 1,3 GB Ich bin wirklich neugierig darauf.
Es gab Informationen, dass die Spiele einen speziellen Modus haben. Ich stelle jetzt die Details zusammen und wir werden den Artikel fertigstellen.
Ich kann es nicht und ich entschuldige mich im Voraus, wenn ich jemanden beleidige, aber ich habe einfach eine riesige, aufrichtige und unverfälschte Freude, die ich mit euch teilen wollte ...
Am Tag nach der Ankündigung des neuen Apple TV war ich nicht faul und habe mich für die Apple-Lotterie (soll ich wählen?) angemeldet, mit der Möglichkeit, ein Developer Kit zu erhalten, noch bevor es in den Handel kommt.
Gestern Abend hat mir Apple geschrieben, dass es mich für die erste Charge ausgewählt hat :)
Ich bin also nicht derselbe wie der Autor dieses Artikels und arbeite ehrlich gesagt an Preschool Brasnicce für Apple TV – erhältlich im Oktober in Ihrem App Store :)
Ich habe also das Gefühl, dass wahrscheinlich jeder, der sich registriert hat, es bekommen hat :) Ich habe gestern auch bestellt und freue mich wirklich sehr darauf... Und ich kenne noch eine Person, die auch auf seine Lieferung wartet...
Wie dem auch sei, bisher sieht es so aus, als ob es zum Verkaufsstart wahrscheinlich viele Apps geben wird :)
Wahrscheinlich nicht jeder – sie haben es mir nicht gegeben :(
:( Du tust mir leid.
Wenn jemand möchte, ich habe acht weiße Apple-Aufkleber … ich kann sie per Post verschicken …