Apple a présenté la semaine dernière, entre autres la nouvelle Apple TV avec le système d'exploitation tvOS. Le fait que les applications de l'App Store puissent être installées dans la nouvelle boîte noire a certainement fait le bonheur des développeurs.
Les développeurs ont deux options. Ils peuvent écrire une application native disposant d’un accès complet au matériel Apple TV. Le SDK disponible (ensemble de bibliothèques pour les développeurs) est très similaire à ce que les développeurs connaissent déjà sur iPhone, iPad, et les langages de programmation sont les mêmes - Objective-C et le jeune Swift.
Mais pour les applications plus simples, Apple a proposé aux développeurs une deuxième option sous la forme de TVML - Television Markup Language. Si vous pensez que le nom TVML ressemble étrangement à HTML, vous avez raison. Il s'agit en réalité d'un langage de balisage basé sur XML et très similaire au HTML, sauf qu'il est beaucoup plus simple et possède une syntaxe plus stricte. Mais c’est absolument parfait pour des applications comme Netflix. Et les utilisateurs en bénéficieront également, car la rigueur de TVML donnera aux applications multimédia une apparence et un fonctionnement sensiblement identiques.
Chemin vers la première candidature
La première chose que j'ai dû faire a donc été de télécharger la nouvelle version bêta de l'environnement de développement Xcode (la version 7.1 est disponible ici). Cela m'a donné accès au SDK tvOS et j'ai pu démarrer un nouveau projet ciblant spécifiquement l'Apple TV de quatrième génération. L'application peut être uniquement tvOS, ou le code peut être ajouté à une application iOS existante pour créer une application « universelle » – un modèle similaire aux applications iPhone et iPad actuelles.
Premier problème : Xcode offre uniquement la possibilité de créer une application native. Mais j'ai très vite trouvé une section dans la documentation qui aidera les développeurs à modifier ce squelette et à le préparer pour TVML. Fondamentalement, ce sont quelques lignes de code dans Swift qui, uniquement sur l'Apple TV, créent un objet en plein écran et chargent la partie principale de l'application, qui est déjà écrite en JavaScript.
Deuxième problème : les applications TVML ressemblent beaucoup à une page Web et, par conséquent, tout le code est chargé depuis Internet. L'application elle-même n'est en fait qu'un "bootloader", elle ne contient qu'un minimum de code et les éléments graphiques les plus basiques (icône de l'application, etc.). En fin de compte, j'ai réussi à insérer le code JavaScript principal directement dans l'application et j'ai au moins pu afficher un message d'erreur personnalisé lorsque l'Apple TV n'est pas connectée à Internet.
Troisième petit problème : iOS 9 et avec lui tvOS imposent strictement que toutes les communications vers Internet se fassent cryptées via HTTPS. Il s'agit d'une fonctionnalité introduite dans iOS 9 pour toutes les applications et cela s'explique par la pression exercée sur la confidentialité des utilisateurs et la sécurité des données. Il faudra donc déployer un certificat SSL sur le serveur web. Il peut être acheté pour seulement 5 $ (120 couronnes) par an, ou vous pouvez utiliser, par exemple, le service CloudFlare, qui s'occupera lui-même du HTTPS, automatiquement et sans investissement. La deuxième option consiste à désactiver cette restriction pour l'application, ce qui est possible pour l'instant, mais je ne le recommanderais certainement pas.
Après quelques heures de lecture de la documentation, où il y a encore des erreurs mineures occasionnelles, j'ai élaboré une application très basique mais fonctionnelle. Il affichait le texte populaire « Hello World » et deux boutons. J'ai passé environ deux heures à essayer d'activer le bouton et de faire quelque chose. Mais vu les petites heures du matin, j'ai préféré aller dormir… et c'était une bonne chose.
L'autre jour, j'ai eu la brillante idée de télécharger un exemple d'application TVML prête à l'emploi directement depuis Apple. J'ai trouvé très rapidement ce que je cherchais dans le code et le bouton était actif et fonctionnel. Entre autres choses, j'ai également découvert les deux premières parties du tutoriel tvOS sur Internet. Les deux ressources m'ont beaucoup aidé, j'ai donc démarré un nouveau projet et lancé ma première vraie application.
Première vraie application
Je suis parti complètement de zéro, la première page TVML. L'avantage est qu'Apple a préparé 18 modèles TVML prêts à l'emploi pour les développeurs, qu'il suffit de copier à partir de la documentation. La modification d'un modèle a pris environ une heure, principalement parce que je préparais notre API pour envoyer le TVML terminé avec toutes les données nécessaires à l'Apple TV.
Le deuxième modèle n’a pris qu’environ 10 minutes. J'ai ajouté deux JavaScripts - la plupart du code qu'ils contiennent provient directement d'Apple, alors pourquoi réinventer la roue. Apple a préparé des scripts qui prennent en charge le chargement et l'affichage des modèles TVML, y compris l'indicateur de chargement de contenu recommandé et l'affichage des erreurs possibles.
En moins de deux heures, j'ai pu créer une application PLAY.CZ très simple mais fonctionnelle. Il peut afficher une liste de stations de radio, il peut la filtrer par genre et il peut démarrer la radio. Oui, beaucoup de choses ne sont pas dans l’application, mais les bases fonctionnent.
[identifiant YouTube = »kLKvWC-rj7Q » largeur = »620″ hauteur = »360″]
L'avantage est que l'application n'est essentiellement rien de plus qu'une version spéciale du site Web, alimentée par JavaScript et dont vous pouvez également utiliser CSS pour modifier l'apparence.
Apple a encore besoin de quelques éléments supplémentaires à préparer. L'icône de l'application n'est pas une, mais deux - de plus en plus petite. La nouveauté est que l'icône n'est pas une simple image, mais contient un effet de parallaxe et est composée de 2 à 5 calques (arrière-plan, objets du milieu et premier plan). Toutes les images actives dans l'application peuvent contenir le même effet.
Chaque calque n’est en réalité qu’une image sur un fond transparent. Apple a préparé sa propre application pour compiler ces images en couches et promet de publier prochainement un plugin d'exportation pour Adobe Photoshop.
Une autre exigence est une image « Top Shelf ». Si l'utilisateur place l'application bien en vue dans la rangée supérieure (sur l'étagère supérieure), l'application doit également fournir du contenu pour le bureau au-dessus de la liste des applications. Il peut s'agir soit d'une simple image, soit d'une zone active, par exemple avec une liste de films préférés ou, dans notre cas, de stations de radio.
De nombreux développeurs commencent tout juste à explorer les possibilités du nouveau tvOS. La bonne nouvelle est qu'il est très simple d'écrire une application de contenu et qu'Apple a parcouru un long chemin pour les développeurs avec TVML. Créer une application (par exemple PLAY.CZ ou iVyszílő) doit être simple et rapide. Il y a de fortes chances qu'un grand nombre d'applications soient prêtes en même temps que la nouvelle Apple TV sera mise en vente.
Écrire une application native ou porter un jeu d’iOS vers tvOS sera plus difficile, mais pas de beaucoup. Le plus gros obstacle sera les différents contrôles et une limite de 200 Mo par application. Une application native ne peut télécharger qu'une partie limitée des données du magasin, et tout le reste doit être téléchargé en plus, et il n'y a aucune garantie que le système ne supprimera pas ces données. Cependant, les développeurs s'attaqueront certainement rapidement à cette limitation, également grâce à la disponibilité d'un ensemble d'outils appelés "App Thinning", qui font également partie d'iOS 9.
Bel article. Merci. Peut-être qu'avec le temps, Apple verra également une solution utilisateur pour préparer des applications (solutions) plus simples, comme cela est possible avec FileMaker pour iOS, sans que je sois développeur.
En théorie… le chargeur Swift est constitué de quelques lignes qui sont toujours les mêmes, seule l'URL du premier fichier TVML change. Si quelqu'un le souhaite, il peut probablement écrire un script capable d'exécuter à distance une build avec votre URL et de renvoyer un fichier IPA. Ou si vous avez un Mac, ce n'est pas un problème d'envoyer le projet, où il vous suffit de mettre l'URL et de démarrer la construction. L'avantage est que si le TVML est en dehors de l'application, vous n'avez en réalité besoin que d'un build public et éventuellement d'un build privé (de développement), et vous ne pouvez modifier le TVML que sur le serveur et donc le fonctionnement de l'application.
"L'application peut être uniquement tvOS, ou le code peut être ajouté à une application iOS existante pour créer une application 'taille unique' - un modèle similaire aux applications iPhone et iPad actuelles."
Je me demande ce que tu veux dire ? Personnellement, je n'ai trouvé nulle part un moyen de créer une version qui inclurait l'iPhone, l'iPad et l'Apple TV universels. Comme ce sont des SDK distincts (similaires à OSX), vous avez besoin d'une cible supplémentaire pour tvOS et donc également d'une version distincte. .Il me manque quelque chose ?
dans Xcode 7.1, les applications tvOS peuvent être ajoutées comme cible supplémentaire à un projet déjà existant - similaire aux applications pour l'Apple Watch ou peut-être à un widget pour le centre de notification. Cependant, je ne sais pas encore comment il sera téléchargé sur le magasin... Je suppose que Xcode enverra un package et que l'App Store le divisera ensuite... Probablement similaire à ce qu'ils font avec la Watch maintenant
non .. à mon avis, ce sont 2 choses complètement différentes .. watch est une extension .. ou du moins c'était le cas jusqu'à watchOS 2.0 .. elle a été donnée avec la cible iOS et ne fonctionnait même pas sans iPhone .. ATV est une entité distincte.. c'est de cela que je parle, si la construction pour ATV sera séparée (vous devez payer 2$) et en plus iOS a payé 2$, ou sera-t-il possible de donner un universel Construction à 2 $ pour iOS et ATV... alors je pense que non, car même la cible iOS n'offre pas de famille d'appareils pour ATV.
c'est ce que montrera le lancement réel, mais il se comporte vraiment de la même manière que le code Apple Watch, par exemple. Sinon, la documentation indique qu'il sera possible d'ajouter du code pour tvOS à l'application existante et qu'il sera ainsi possible de vendre une application (une entité dans l'App Store) pour iOS et tvOS en même temps - un achat pour le client, ou en tant qu'entité distincte - un achat distinct pour iOS et pour tvOS.
Juste pour clarifier, il ne s'agit pas de 200 Mo par application, mais de 200 Mo stockés localement et le reste téléchargé depuis le net en cas de besoin.
Merci, c'est ce que je pensais, mais je l'ai probablement mal formulé. Tout ce qui dépasse 200 Mo (ou tout ce qui est téléchargé en plus) est stocké sous forme de cache et si le système décide qu'il manque d'espace, il commence à le supprimer - ce qui n'arrivera probablement pas tant qu'il n'y aura pas suffisamment d'espace libre, puis le contenu le moins utilisé. sera supprimé, donc dans la pratique, cela ne posera probablement pas vraiment de problème.
Que dois-je découvrir d'autre, soi-disant, cette limite ne s'appliquera pas aux jeux, ou le jeu pourrait faire plus de 200 Mo dès la base. Mais je ne sais toujours pas exactement comment cela signifie exactement. Il est fort possible qu'Apple ajuste encore cette politique en fonction des retours des développeurs.
hehe Pokemon TCG – 4 Go, Commandez le chaos en ligne – 1,6 Go Hearthstone 1,3 Go Je suis vraiment curieux à ce sujet.
il y avait des informations selon lesquelles les jeux avaient un mode spécial. Je rassemble les détails maintenant et nous terminerons l'article.
Je n'y arrive pas, et je m'excuse d'avance si j'offense quelqu'un, mais j'ai juste une joie immense, sincère et pure que je voulais partager avec vous...
Au lendemain de l'annonce de la nouvelle Apple TV, je n'ai pas eu la flemme et je me suis inscrit à la loterie Apple (dois-je choisir ?) avec la possibilité d'obtenir un Developer Kit avant même sa mise en vente.
Hier soir, Apple m'a écrit qu'il m'avait sélectionné pour le premier lot :)
Donc, je ne suis pas le même que l'auteur de cet article, et je travaille honnêtement sur Preschool Brasnicce pour Apple TV - disponible dans votre App Store courant octobre :)
donc j'ai le sentiment que tous ceux qui se sont inscrits l'ont probablement eu :) J'ai aussi commandé hier et j'ai vraiment, vraiment hâte de le recevoir... Et je connais encore une personne qui attend également sa livraison...
Quoi qu'il en soit, pour l'instant, il semble qu'il y aura probablement beaucoup d'applications lorsque les ventes commenceront :)
Ce n'est probablement pas le cas de tout le monde - ils ne me l'ont pas donné :(
:( Je suis désolé pour toi.
Si quelqu'un le souhaite, j'ai huit autocollants Apple blancs… Je peux les envoyer par courrier…