6 ans pour finaliser la carte sur watchOS
(david-smith.org)- La fonctionnalité de carte watchOS de Pedometer++ a été affinée pendant plus de 6 ans avec pour objectif d’offrir la meilleure expérience cartographique possible sur Apple Watch, et atteint un jalon important avec la sortie de Pedometer++ 8
- Les premières tentatives consistaient à générer la carte sur un serveur puis à l’afficher sur l’Apple Watch, mais comme il fallait transmettre les données d’activité à chaque aller-retour, ce n’était pas pratique pour la navigation ni pour un usage quotidien, et cela ne pouvait pas fonctionner hors ligne
- Pour obtenir le niveau de contrôle nécessaire sur watchOS, un moteur natif de rendu cartographique en SwiftUI a été développé en interne, permettant dès 2021 de rendre de manière stable des cartes à tuiles et d’y superposer la position
- Pour s’adapter à watchOS 26 et à Liquid Glass, une nouvelle carte de base a été créée avec Andy Allen, en réduisant la complexité visuelle et en augmentant le contraste et la saturation afin qu’elle reste lisible sous des éléments à effet de verre
- En collaboration avec Rafa Conde, une nouvelle mise en page a été conçue avec les métriques superposées en haut à gauche et la carte comme page supérieure d’une pile verticale, puis validée sur le terrain sur plusieurs centaines de miles avant d’être intégrée au design final de Pedometer++ 8
Le parcours de Pedometer++ pour les cartes sur watchOS
- En montagne ou en extérieur, une habitude essentielle pour ne pas se perdre consiste à vérifier très ხშირად sa position actuelle en déplacement, et une carte au poignet est le meilleur moyen d’y parvenir
- Depuis les débuts de l’Apple Watch, l’objectif était d’avoir une bonne carte au poignet, mais en pratique, ce n’est qu’avec watchOS 6 et l’arrivée de SwiftUI, qui a permis de créer de “vraies” apps, que cela est devenu envisageable
- Les premières Apple Watch avaient un petit écran et un processeur lent, ce qui rendait difficile d’atteindre le niveau souhaité, et la première tentative de carte dans Pedometer++ reposait sur une génération côté serveur
- Avec cette approche côté serveur, il fallait faire des allers-retours des données d’activité concernées à chaque rafraîchissement de l’écran, ce qui était utile pour valider l’idée, mais pas pratique pour la navigation ni pour un usage quotidien, et cela ne pouvait pas non plus fonctionner hors ligne
Moteur cartographique personnalisé basé sur SwiftUI
- Pour progresser sur watchOS, il fallait un contrôle de plus bas niveau, donc un moteur complet de rendu cartographique natif en SwiftUI a été construit en interne
- SwiftUI était alors l’option prise en charge sur watchOS, et cela a aussi aidé à intégrer des cartes dans des widgets qui ne prenaient en charge que SwiftUI
- En 2021, le projet a atteint un niveau permettant de rendre des cartes de manière stable et performante sur watchOS
- Ce moteur peut afficher des cartes à tuiles et superposer par-dessus des informations de position
Les contraintes de conception de l’écran sur watchOS
- Concevoir une app watchOS était un défi à la fois intéressant et frustrant à cause des contraintes du petit écran et de l’utilisation à une main
- L’objectif était de permettre aux utilisateurs de lire la carte et de s’en servir pour la navigation tout en gardant accès aux informations liées à l’activité
- Après plusieurs essais de conception, une approche modale a été retenue pendant un temps, avec un bouton en haut à gauche pour basculer entre l’écran de carte et l’écran de métriques
- Cette approche permettait, sur un écran, de déplacer librement la carte, de zoomer et dézoomer, et sur l’autre d’offrir les métriques et les commandes via l’interface classique de pages à onglets de watchOS
- Mais cette conception donnait une impression de compromis, et il était difficile d’intégrer une carte interactive dans une structure d’interface où les gestes de balayage étaient nécessaires
- À mesure que l’écran de l’Apple Watch s’est agrandi, il a semblé moins nécessaire de séparer aussi fortement un espace dédié pour rendre la carte utile
- Une autre possibilité, consistant à placer les métriques sous l’écran, a ensuite été étudiée, mais elle introduisait d’autres limites pour les longues sorties ou les activités moins centrées sur la navigation
- Plusieurs propositions de design partageaient une même limite : l’app ne pouvait afficher à la fois qu’un ensemble fixe de champs
- Il aurait été possible de rendre l’interface configurable par l’utilisateur, mais sur watchOS il vaut mieux éviter les interactions qui durent plus de quelques secondes, et la configuration utilisateur est par nature fastidieuse, donc ce n’était pas adapté
Création d’une nouvelle carte adaptée à Liquid Glass
- Alors que la structure de l’app restait un sujet de réflexion, Apple a annoncé watchOS 26 et Liquid Glass
- L’un des éléments clés de la conception de Liquid Glass est la superposition de couches, ainsi que l’importance de familles de couleurs qui s’accordent bien entre elles
- Jusqu’alors, l’app utilisait Thunderforest Outdoors comme carte de base, et même si son contenu intégré était bon, elle s’accordait mal avec Liquid Glass lorsqu’on y ajoutait des éléments à effet de verre
- Avec le cartographe Andy Allen, une toute nouvelle carte de base a été créée pour bien fonctionner avec Liquid Glass
- Cette nouvelle carte réduit la complexité visuelle, augmente le contraste des éléments et renforce la saturation des éléments cartographiques pour qu’ils ne deviennent pas ternes ni brouillés sous le verre
- Ce travail a également permis de créer une variante mode sombre des tuiles cartographiques
- Le mode sombre est aussi utile sur iOS, mais son effet a été particulièrement important sur watchOS, avec pour objectif une carte très lisible même à distance de bras
- Le résultat était une carte adaptée à watchOS, mais il manquait encore une conception d’app à la hauteur
Une nouvelle mise en page avec Rafa Conde
- Pour sortir de cette impasse de conception, une collaboration a été engagée avec le designer Rafa Conde
- Parmi plusieurs mises en page alternatives, celle avec les métriques superposées en haut à gauche et la carte comme page supérieure d’une pile verticale est devenue la direction finale
- Cette conception résout le problème de la carte interactive en imposant d’abord de toucher la carte pour entrer en mode exploration
- Une fois le concept général défini, le travail s’est poursuivi avec la réalisation concrète de l’app et l’affinage des détails
- Le concept de Rafa a rapidement été transformé en prototype fonctionnel et validé sur le terrain au fil de plusieurs centaines de miles parcourus à pied
- Les polices et des choix de design plus subtils ont ensuite été peaufinés pour aboutir à la version finale intégrée à Pedometer++ 8
- L’écran final est lisible et utile, avec un design à la fois naturel pour la plateforme watchOS, nouveau et distinctif
Pourquoi ne pas avoir utilisé MapKit
- Le travail sur cette carte personnalisée avait commencé avant l’arrivée d’Apple MapKit sur watchOS, et si MapKit n’a pas été retenu, c’est parce qu’il ne fournissait pas le niveau de configurabilité et d’utilité dont Pedometer++ avait besoin
- MapKit est bon pour les usages de base, mais il n’offrait pas le niveau de contrôle visé par Pedometer++
- Sur watchOS, MapKit s’affiche toujours en mode sombre ; cela peut être un bon choix par défaut, mais cela crée des limites en matière d’accessibilité et de choix utilisateur, donc cela aurait dû être configurable
- Le MapKit de watchOS a gagné en capacités avec le temps, mais il restait encore limité sur les animations et les overlays
- La couverture des courbes de niveau et de l’affichage des sentiers dans MapKit s’améliore, mais il existe encore de nombreux endroits où des détails plus riches sont nécessaires alors que la carte MapKit y est presque vide
- Un exemple compare les différences entre la carte personnalisée et MapKit à l’entrée d’un itinéraire de randonnée favori en Écosse
2 commentaires
Je ne fais pas de randonnée, mais l'effort investi dans l'app est énorme. Ils ont embauché des cartographes...
Commentaires sur Hacker News
Le fait que l’Apple Watch n’ait pas de cartes de randonnée/topographiques conçues par Apple semble être un gros échec. Même la Watch Ultra, la plus chère et censée être destinée aux « explorateurs », n’en a pas, et des fonctions comme l’import de GPX relèvent presque du fantasme
Au final, c’est un appareil lifestyle, mais c’est quand même regrettable
L’évolution est remarquable, et c’est aussi agréable de voir ce qu’on peut créer quand on s’éloigne de conventions de design comme l’alignement centré et les interfaces symétriques. Ça donne presque envie d’avoir une Apple Watch
Sur les captures d’écran de l’article, on voit Hidden Valley à Glen Coe, en Écosse, qui fait partie de mes petites randonnées préférées
En revanche, mes souvenirs liés à la maison au fond de cette vallée sont moins agréables. Avant, en passant en voiture, je regardais avec fascination cette maison toujours fermée, perdue dans un coin isolé entre les montagnes, en me demandant à quel point cela devait être spécial d’y vivre. Le parking du sentier était juste quelques centaines de mètres plus haut sur la route
Quelques années plus tard, j’ai reconnu cette maison dans un documentaire de Louis Theroux, où il s’y rendait avec son propriétaire, la personnalité télé Jimmy Saville. Puis, après mon retour en Australie, on a découvert après sa mort que Saville était l’un des pédocriminels et agresseurs sexuels les plus tristement célèbres du Royaume-Uni, ce qui était vraiment horrible. On peut d’ailleurs voir sur la carte de la capture le nom et le contour de cette cabane en haut
Par curiosité, j’ai regardé, et il semble qu’ils aient embauché un cartographe pour créer de grandes et belles images de cartes sur mesure afin d’ajouter des détails absents d’Apple Maps, comme les sentiers de randonnée
Du coup, contrairement à Apple Maps qui fait un rendu dynamique, l’approche consiste essentiellement à afficher des tuiles d’images. Cela permet de créer des cartes plus belles et plus détaillées, mais cela a des implications sur des aspects comme les téléchargements séparés selon les niveaux de zoom, la rotation ou les possibilités de mise à jour
Le fournisseur de cartes d’origine propose à la fois des services de tuiles vectorielles et raster : https://www.thunderforest.com/maps/outdoors/
L’approche courante consiste à utiliser directement un service de tuiles vectorielles et une définition de style, ou à générer des tuiles raster si nécessaire
En tant qu’utilisateur de Pedometer++, je suis impressionné par l’obsession du détail que David entretient depuis des années. L’évolution de l’app est vraiment remarquable
Le soin qu’il avait déjà apporté à Watchsmith a fait de lui un expert mondial de facto dans le domaine des widgets, et la manière dont cela l’a conduit au grand succès avec Widgetsmith est aussi admirable. C’est le genre de réussite qui arrive à quelqu’un qui le mérite vraiment
Sur une montre, les tuiles statiques sont le bon choix. J’ai déjà fait du rendu dynamique sur des appareils très contraints, et les déplacements ainsi que le zoom se faisaient dévorer à chaque frame par les pauses du ramasse-miettes
Apple Maps sur WatchOS est plutôt bon, mais en général, quand je monte à vélo, que je lance un itinéraire, puis qu’au bout d’environ 3 minutes l’écran « Vous faites de l’exercice ? » vient recouvrir l’affichage, je ne peux plus voir la carte tant que je ne m’arrête pas pour le désactiver
À mon avis, cet écran ne devrait pas prendre tout l’écran ; il devrait devenir une notification, ou bien démarrer discrètement l’enregistrement au bout d’un moment
Je suis étonné que les gens chez Apple qui développent ça rencontrent sûrement ce problème sans le corriger
Si la carte de cette app peut rester affichée et garder le contrôle de l’écran, ce serait pour moi une fonction décisive. Cela dit, en parcourant la page de l’App Store, il n’était pas clair quelles fonctionnalités sont derrière l’abonnement et lesquelles ne le sont pas, et comme je déteste les apps qui ne vous le disent qu’une fois toute la configuration terminée, je vais sans doute simplement essayer de me souvenir de lancer l’entraînement manuellement