Suivez-nous

Interview

Interview, les limites du développement pour l’Apple Watch

Arnaud

Publié le

 

Par

layout.png

L’Apple Watch en a sous le capot : c’est sans doute la montre connectée la plus puissante du marché, avec son SoC S1, qui délivre une puissance de calcul, d’après les premiers retours sur le sujet, voisine de celle d’un iPhone 4S/5.

Cependant, en l’état actuel, cette puissance est assez bridée, et les développeurs qui s’essayent au portage de leurs apps rencontrent quelques mauvaises surprises du fait de limitations importantes au niveau de WatchKit.

Philippe, fondateur d’un jeune studio français nommé Galta Apps, et ancien des équipes de R&D d’Apple, développeur d’un démineur massivement multijoueurs pour iOS, A Few Billion Square Tiles, dont nous avons déjà eu l’occasion de vous parler, nous raconte le processus de développement du versant Apple Watch de celui-ci. Dans le détail. Interview.

WatchKit, prometteur mais limité

Bonjour Philippe. Comment pourrais tu caractériser le développement sur l’Apple Watch par rapport à celui sur iOS ?

Avant tout il faut bien comprendre que les outils fournis par Apple pour créer des apps sur l’Apple Watch (WatchKit) sont très éloignés de ceux de l’iPhone/iPad (UIKit). WatchKit n’est pas une version “light” d’UIKit, mais un système totalement différent, extrêmement simplifié et, dans l’état actuel, beaucoup moins puissant.

Quelles en sont les limitations ?

Le premier changement particulièrement important pour les jeux, c’est qu’il n’est pas possible de dessiner directement à l’écran. Il n’y a pas d’OpenGL, pas de SpriteKit : on ne peut utiliser que les éléments de base fournis par Apple (texte, boutons, images). Et l’utilisation de ces éléments est très encadrée : alors qu’UIKit laisse au développeur le choix total du placement de ses objets, WatchKit est beaucoup plus rigide et ne permet que de définir une hiérarchie que l’OS arrangera ensuite au mieux.

Par exemple on pourrait décrire en substance : “Une interface composée d’un premier groupe d’objets alignés verticalement. Ce groupe contenant un titre, suivi d’une image, suivie d’un nouveau groupe. Ce deuxième groupe contenant deux boutons alignés horizontalement.” Et WatchKit générerait alors l’interface suivante.

Il n’est donc pas possible de choisir la position exacte des objets, ni d’avoir deux objets qui se superposent (on peut tricher un peu cependant car les groupes peuvent être décorés avec une image de fond). Pour ceux qui ont fait du HTML avant l’arrivée du CSS, écrire une interface avec WatchKit ressemble donc assez à faire une mise en page web à partir de tables.

Impossible de choisir la position exacte des objets, ni d’avoir deux objets qui se superposent

Il est possible de changer les propriétés des objets à tout moment (marges, couleurs, images, textes, visibilité, …), ce qui permet de modifier légèrement l’interface pour répondre aux actions de l’utilisateur sans avoir à afficher une toute nouvelle page. Il n’est par contre pas possible d’animer les objets comme sur l’iPhone ; toute animation doit être pré-dessinée sous forme de série d’images, un peu comme des gifs animés.

Il y a également des limites quant aux événements qu’on peut détecter sur la montre ?

Oui, la seconde différence avec iOS concerne la gestion des évènements : le seul évènement disponible est le tap simple. Le balayage (swipe), l’appui long (long press) ou les évènements multiples (multitouch) ne sont pas accessibles aux développeurs externes. Il n’est pas non plus possible de connaitre la position exacte du doigt: on ne connait que le bouton qui a reçu le tap. De plus, les nouveautés de l’Apple Watch comme la Digital Crown et le Force Touch ne sont pas encore accessibles. La Digital Crown ne peut donc que scroller verticalement, et le Force Touch est limité à une seule fonction: afficher un menu contextuel.

Dans l’état actuel de WatchKit, il est donc impossible de reprendre le code d’affichage d’un jeu et de le porter sur l’Apple Watch ; seule la logique du jeu (back-end) peut parfois être réutilisée. Je pense donc que l’on est dans une phase d’expérimentation, et qu’il faudra quelques mois pour voir arriver de nouveaux concepts qui utilisent vraiment l’Apple Watch comme un nouveau medium et non comme un iPhone light (si tu ne l’as pas déjà testé, Spy_Watch me semble d’ailleurs très prometteur comme concept). De plus il est très probable que la plupart de ces limitations disparaitront avec les futures mises à jours de WatchKit. Certaines des apps actuelles d’Apple permettent déjà de se faire une idée de ce qui sera alors possible.

Couronne digital et force touch inaccessibles

Malgré ces restrictions, le développement de A Few Billion Square Tiles a été rapide

C’est exact, de l’ordre d’une semaine. Le portage lui-même n’a pas été très difficile. J’ai pu réutiliser tout mon back-end (principalement la communication avec le serveur), et je n’ai eu qu’à repenser et réécrire l’interface. WatchKit étant tellement limité il a fallut réduire le jeu à son expression la plus simple. Mais la mise en page automatique de WatchKit est bien adaptée aux tableaux, et l’absence d’appui long est facilement réglée par l’ajout d’un bouton dédié. Tout cela m’a pris une petite semaine.

Il y avait malgré tout deux grandes inconnues puisqu’il y a une semaine encore il était impossible de faire tourner les apps sur une vraie Apple Watch. Le simulateur d’Apple permet de tester sur son mac, mais cela ne donne aucune idée de la taille réelle des boutons ni de la vitesse de la montre. Il y avait donc un grand risque de sortir un produit inutilisable, parce que trop lent ou doté d’une interface trop petite. C’est d’ailleurs le cas de beaucoup d’apps actuellement, mais je suis certain qu’elles vont très vite s’améliorer maintenant que les montres sont disponibles.

Sortir sans tester sur un vrai device, c’est risquer d’avoir une app non fonctionnelle

Un petit mot à ce sujet concernant le choix cornélien qu’Apple a proposé aux développeurs : avoir une app disponible dès la sortie de l’Apple Watch permet de surfer sur la vague et d’amener potentiellement de nombreux utilisateurs. Mais sortir sans tester sur un vrai device, c’est risquer d’avoir une app non fonctionnelle qui amènera probablement des mauvaises notes sur l’App Store, polluant du même coup les notes de l’application d’origine. Le pari était donc risqué. Mais si la raison suggérait d’attendre quelques semaines, le sentiment l’a probablement emporté pour beaucoup de développeurs !

J’ai finalement testé la taille de mon interface en utilisant une app qui transformait mon iPhone en écran externe de mon mac et en plaçant le simulateur sur cet écran externe. La résolution de l’iPhone étant assez proche de celle de l’Apple Watch 42mm, cela donnait une petite idée du résultat. Pour la vitesse par contre… j’ai croisé les doigts comme tout le monde!

Au final, le jeu tourne très bien même si il n’est bien sur pas aussi confortable que sur iPhone ou iPad. Mais contourner les limitations de WatchKit était un exercice de style intéressant, et il y a quelque chose de très zen à utiliser cette minuscule fenêtre de 25 cases pour se balader parmi les centaines de millions de cases du jeu 🙂

A Few Billion Square Tiles