Développer une Sailing App pour une montre Garmin

Luc

Luc


Aug 24th 2015 in code recherche

J’ai récemment acheté une montre GPS pour monitorer mes sorties en VTT et en voile.

Garmin Fenix 3

Après quelques essais concluants en montagne, j’ai remarqué qu’il n’existait pas d’application capable de monitorer la voile. Il existe une autre montre Garmin (Quantum) conçue spécifiquement pour la voile mais ses composants sont dépassés et son prix est presque aussi élevé que la Fenix 3, qui possède tout le hardware nécessaire pour fonctionner comme la Quantum...

Mes besoins

La fonction principale dont j'ai besoin est le compte à rebours de départ et le temps de course. La séquence de départ d'une régate est signalée par une compinaison de coups de canon, sifflets et drapeaux. 5 minutes avant le départ, un coup de canon retentit et un drapeau est levé: c'est à ce moment que le compte à rebours est démarré.

En tant que développeur, j’ai cherché une solution pour implémenter ma propre app Sailing et j’ai découvert l’API connectIQ permettant de développer des apps, watch faces et widgets pour les montres compatibles.

L'API connectIQ

Il existe un API pour les montres connectées compatibles ConnectIQ pour lesquelles les possibilités sont plutôt limitées par le hardware car il faut se rappeler que nous développons sur une montre!
La documentation est succincte bien que complète, mais la communauté étant quasiment inexistante, il est difficile de trouver des exemples de code ou des explications.

Programming language

Le langage utilisé par ConnectIQ s’appelle le MonkeyC.

La machine virtuelle Monkey utilise un langage orienté objet et expose un API pour l’interface: layouts, position, suivi d’activité, stockage persistant et communication avec les périphériques mobiles et les capteurs.

Etant donné qu'on travaille sur un petit écran de montre, l'interface utilisateur est difficile à développer. Par exemple, j'ai dû jouer avec la dimension de l'écran et calculer l'angle correspondant à la seconde courante pour dessiner la barre de progression autour de l'écran en superposant des ronds et des polygones.

Pour les gens que cela intéresserait, le code est disponible sur GitHub sous license MIT

https://github.com/dmrrlc/connectiq-sailing/

L'application

L'app peut être téléchargée et installé depuis le store Garmin connectIQ et voici la liste de ses fonctionnalités :

  • Compte à rebours de 5min pour les départs de régates

  • Enregistrement du tracé GPS

  • Vitesse courante (knt)

  • Direction courante (heading)

 

Compte à rebours de départ

Mode voile avec temps de course, vitesse et direction

What’s next ?

Ce projet était une bonne introduction au développement d’app pour montres connectées et il y a encore beaucoup d’autres possibilités à explorer.

J’aimerais encore ajouter les fonctionalités suivantes dans le futur:

  • Compatiblité avec d’autres montres de la marque Garmin

  • Ajuster le compte à rebours en cours

  • Définir une ligne de départ avec deux coordonnées et calculer le temps restant jusqu’à la ligne