Tout savoir sur Garmin Connect IQ
En même temps que sortait la Forerunner 920XT, Garmin annonçait l’ouverture de ses montres aux développeurs, en mettant à disposition un SDK (Software Developement Kit) pour que chacun puisse développer sa fonction pour les montres de la marque.
Ce billet n’a pas pour vocation de faire de chacun des lecteurs de ce blog un programmeur Connect IQ car le développement d’application nécessite des connaissance spécifique qui ne peuvent être abordées ici. Pour les personnes qui ont déjà développé dans des langages comme Java, Phyton, C ou même en PHP, le Monkey C, utilisé par Connect IQ, ne devrait pas poser trop de problèmes d’adaptation.
J’aborde dans la suite de ce billet les possibilités offertes par le SDK actuellement et les types d’apps que l’on pourra trouver bientôt sur le store, mais aussi les limitations actuelles de ce système. Enfin, le processus de publication d’une application sur le « app store » de Garmin, et enfin l’installation des applications sur la montre.
Dans les exemples qui suivent, c’est ma 920XT qui a servi à démontrer le fonctionnement de Connect IQ, mais le fonctionnement est identique pour toutes les autres montres qui supportent cette fonctionnalité, à savoir la Foreruenner 920XT, la fénix 3, la Epix et la Vivoactive.
Contenu de l’article
Qu’est que le SDK, et qu’est-ce qu’on peut faire avec ?
Garmin fournit aux développeurs une SDK, nommé Connect IQ qui permet de construire des applications qui seront compatibles avec les montres de la marque.
Garmin a publié un site complet destiné aux développeurs. Comme pour la plupart des ressources dédiées à la programmation, ce site est disponible uniquement en anglais. Il permet de télécharger le SDK (pour Mac ou Windows), donne quelques infos sur sa mise en place et propose la documentation liée aux fonctions propres au SDK de Garmin.
Le SDK de Garmin est prévu pour l’intégrer avec l’environnement Eclipse, bien connu de nombreux développeurs. cet environnement de développement est libre et peut être téléchargé gratuitement pour Mac ou Windows. Le SDK publié par Garmin étant lui aussi gratuit, le développement et la publication d’applications sur l’app store de Garmin est donc entièrement gratuit.
La mise en place de l’environnement de développement
Entre le moment ou l’on décide de se mettre à Connect IQ et le moment où l’on commence à code, il se passe environ 15 minutes. Inutile de dire que le processus de mise en place de l’environnement est des plus simple pour les personnes qui ont l’habitude de ce genre de choses.
Toute la procédure pour commencer à développer est disponible en ligne ici (en anglais).
Une fois l’environnement en place, le développement peut commencer. On débute un projet en choisissant son type:
Le SDK permet de créer 4 types de programmes:
- Watch face, ou page d’affichage de l’heure.
- Data field, ou un champ de données pour les pages d’entrainement
- Widget, en gros une petite application très simple
- Watch App, soit une application complète, à même de remplacer le profil sportif par exemple.
Mais il faut savoir qu’actuellement, la 920XT ne supporte que les applications de type « Watch face » ou « Data field« . Les autres seront disponibles plus tard.
Dans cette fenêtre, on choisit aussi sur quelles montres on souhaite rendre disponible son programme. Certains programmes spécifiques aux écrans carrés ne fonctionneront peut-être pas sur la fénix 3, etc… C’est donc là que se définit quels appareils seront compatibles.
Une fois le type d’application choisi, on commence le projet. Là, c’est de la ligne de code, comme tout programme informatique. Le langage de Connect IQ est le Monkey C, langage développé par Garmin pour l’occasion. C’est un langage haut niveau, proche de Java ou d’Objective C (utilisé pour la applications Apple iOS) mais qui n’est pas aussi complet. Voici à quoi ressemble l’environnement Eclipse avec un projet Connect IQ:
Lorsque l’on souhaite tester son application, on dispose de deux possibilités:
- Soit on installe l’application sur sa montre, puis on l’exécute pour en vérifier le fonctionnement. Cette procédure peut être un peu longue juste pour un test, donc on peut aussi:
- Utiliser le simulateur fourni par Garmin afin de valider « virtuellement » son application.
Voici un exemple du simulateur de la nouvelle fénix 3:
Une fois que l’on est satisfait du fonctionnement de son logiciel, on peut le « packager », c’est à dire centraliser toutes les informations dans un seul et même fichier, via le menu « Connect IQ« :
Que va réellement apporter Connect IQ aux utilisateurs de montre Garmin ?
Ouvrir le développement à tout le monde est théoriquement l’assurance des utilisateurs d’avoir un moyen d’obtenir les fonctions dont il a besoin dans la montre, pour autant que « matériellement » la montre en question puisse assurer cette fonction.
Prenons un exemple parmi d’autres: sur mon site d’améliorations de la Polar V800, un utilisateur a proposé à Polar d’ajouter une fonction pour déterminer sa VMA via un test standardisé, puis de calculer le résultat (la demande se trouve ici). Si cette demande concernait la 920XT, elle pourrait être adressée par un développeur via Connect IQ.
Le développeur pourrait créer une application de type « Watch App« , qui serait exécutée par l’utilisateur lorsqu’il souhaiterait déterminer sa VMA. L’application donnerait des indications sur la procédure, par exemple:
« Courrez pendant 12 minutes le plus rapidement possible, en portant votre ceinture de FC, sur terrain le plus plat possible. Appuyez sur start pour commencer… »
L’application enregistrerait donc pendant 12 minutes la fréquence cardiaque, la vitesse et la distance parcourue par l’utilisateur, et pourrait lui donner des indications comme:
- La qualité du test (est-ce que la vitesse a été constante ou pas)
- La dérive cardiaque durant le test
- La distance parcourue (et donc calculer la VMA).
On trouve beaucoup de demandes récurrentes d’utilisateurs de montres Garmin dans les forums, ou via les commentaires du site, qui pourraient être satisfaites par des développement Connect IQ.
La possibilité de créer des applications sur la montre qui communiquent avec une application sur le smartphone permet d’imaginer beaucoup de possibilités.
Quelles sont les limitations de Connect IQ
Actuellement, le SDK est disponible en version 1.0. Il permet beaucoup d’interactions avec la montre, mais certaines limitations brident potentiellement certaines applications:
- Bien qu’il existe des profils Bluetooth et ANT+ dans le SDK, le profil Bluetooth ne permet pas d’associer un capteur Bluetooth Smart, mais uniquement la communication avec le smartphone.
- La communication ANT+ disponible via le SDK ne permet pour l’instant de communiquer qu’avec un émetteur ANT+. Il est donc pour l’instant impossible de connecter plusieurs capteurs à une seule application…
- L’absence de parser XML dans la montre limite les possibilité d’import/export de fichiers de données autre que les fichiers .fit de Garmin.
- et probablement bien d’autres…
Garmin a annoncé que le SDK était loin d’être figé, et que des mises à jour à venir apporteraient d’autres fonctions.
Comment publier son application sur l’app store de Garmin
Une fois que l’on a développé son application et que l’on a exporté le package (il s’agit d’un fichier qui porte le nom de son application avec l’extension .iq), on peut la soumettre pour validation à Garmin.
Peut être vous rendez-vous d’un Tweet que j’avais envoyé quand je commençais à tester Connect IQ, avec une capture d’une Watch Face indiquant l’heure en français dans le texte:
Je joue un peu avec #Connect #IQ… Est-ce que je devrais écrire un billet sur le développement d'apps #Garmin? pic.twitter.com/LjhExKoZxN
— nakan.ch (@TriNakan) December 11, 2014
J’ai terminé cette applications puis je l’ai packagée pour la publier. L’objectif n’est pas la gloire éternelle car elle n’a rien de sensationnel, mais c’était pour voir la procédure de bout en bout.
Voici les étapes à suivre pour publier son application:
1. Posséder un compte chez Garmin, ou en créer un.
2. Se connecter à cette adresse: http://apps.garmin.com/en-US/developer/upload
3. Soumettre son application (le fichier .iq) et le numéro de version:
En cliquant sur le bouton « Continue », le système valide que le fichier d’application est valide, et propose de renseigner les champs présentés sur l’app store:
Ensuite, on peut soumettre son application et Garmin validera ou non sa publication. D’après Garmin le processus prend environ 3 jours ouvrables:
Dans mon cas, à peine quelques heures plus tard, l’application était en ligne sur le store !
En gros, dans son processus de validation, Garmin vérifie que l’application respecte les conditions générales d’utilisation de Connect IQ, et qu’elle ne présente pas de risques, de plantages ou autres.
Installer son application sur la montre
Actuellement, la seule montre sur la marché qui supporte Connect IQ est la Forerunner 920XT. Et encore, le firmware qui le permet est en version beta. Donc on en est bien au tout début de l’aventure!
Alors pour pouvoir afficher fièrement ma nouvelle application, vous devrez:
1. Vous assurer que vous utilisez la dernière version de Garmin Express (indispensable)
2. Télécharger et installer manuellement le firmware beta de la Forerunner 920XT (actuellement la version 2.64)
3. Vous rendre sur l’app store de Garmin à l’adresse: https://apps.garmin.com/
4. Choisir et installer les applications de votre choix.
Le modèle commercial
Toutes les applications disponibles sur le store de Garmin sont gratuites. Donc pour rentabiliser un développement, il faudra vendre une application de smartphone ou encore un accessoire qui fonctionnera avec l’application.
Mais on peut imaginer que ce modèle évolue, et je n’exclus pas, même dans un avenir proche, que Garmin se mette à proposer des applications payantes.
Et la suite
Comme bien d’autres, ce billet va évoluer en même temps que Garmin Connect IQ, et sera mis à jour dès que des nouveautés feront leur apparition.
Quand à vous, si vous avez des questions ou des remarques, n’hésitez pas à utiliser les commentaires.
Enfin, de par mon travail, la programmation fait partie de mes compétences professionnelles. Je n’ai passé que peu de temps sur Connect IQ jusque là, mais si certains d’entre-vous ont des idées de développement (champ de données ou autres) qui n’existent pas encore, en fonction du temps que j’ai à disposition, je suis preneur. Sur ce genre de programmes, c’est l’idée de base qui est souvent difficile à trouver ;-)
Mise à jour en mars 2016: Un de mes plus gros projet développé sur IQ à ce jour est la balance de W’, dont voici tous les détails!
Merci pour la lecture!