Garmin Instinct 2 Surf Edition watch face

Pour faire suite à mon post sur le SDK pour pouvoir personnaliser une montre Garmin, j’ai travaillé quelque peu le sujet pour aboutir à cette nouvelle version du design.

Pour résumer j’ai rajouté deux jauges en forme d’arc, celle sur la gauche pour la charge batterie et l’autre sur la droite pour le ratio entre le nombre de pas et l’objectif quotidien. J’ai laissé tomber la jauge classique en forme de rectangle pour la batterie. J’ai également rajouté des fonts personnalisés, notamment une font détourée pour les minutes comme pour l’affichage d’origine de cette montre. J’ai encore pas mal galéré pour le rafraîchissement des secondes avec la fonction onPartialUpdate, en fait c’est tout simplement le chargement toutes les secondes de la font personnalisée qui devait le perturber, j’ai renvoyé ce chargement à l’initialisation du programme. Il reste encore un artefact à l’affichage des secondes qui est pas vraiment gênant mais un brin inesthétique, je ne suis également pas encore très satisfait des fonts, j’ai du mal à trouver des fonts étroites pour l’affichage des nombres, ces améliorations feront l’objet d’une troisième version plus tard.

Pour publier l’application créée dans le store Garmin, il faut exporter le projet via la combinaison de touches CTRL+SHIFT+P et la commande Monkey C: Export Project dans la liste déroulante. Cela va générer un fichier .iq qu’on pourra télécharger ensuite sur le store pour mettre à disposition l’application. Concernant mon projet on le trouvera ici.

Tant qu’à faire comme j’ai créé un environnement github pour partager le code, j’ai créé un dépôt git local pour pouvoir le synchroniser avec le dépôt distant. Ça était plutôt laborieux et j’ai fait sans doute plein de manips inutiles pour la bonne raison que mon dépôt distant est main et il m’a créé un dépôt local master et j’ai dû tout remettre en place pour ne pas multiplier les branches.

Difficile donc de décrire toutes les étapes pour la création de ce dépôt local. Mais grosso modo après avoir installé git, il m’a fallu créer un nom associé à un mail :

git config --global user.name "Funix"
git config --global user.mail olivier.hoarau@funix.org

Ensuite on initialise le dépôt avec git init et c’est là que les choses se sont gâtées pour moi car il a utilisé master au lieu de main. En fait j’aurais dû taper avant pour qu’il prenne par défaut la branche main :

git config --global init.defaultBranch main

Maintenant on rajoute le dépôt distant dénommé origin :

git remote add origin https://github.com/funix83/Funix-Watch.git

Avant d’aller plus loin on configure la connexion SSH pour pouvoir échanger le serveur distant en créant une clé via la commande :

ssh-keygen -t ed25519 -C "olivier.hoarau@funix.org"

On le rajoute dans l’agent SSH pour ne pas avoir à saisir le mot de passe à chaque fois en tapant :

ssh-add ~/.ssh/id_ed25519

Commande qu’il faudra taper à chaque reboot. Maintenant sous l’interface sous github on rajoutera la clé publique dans Settings -> SSH and PGP Keys. Pour vérifier que la connexion est bien établie en SSH, on peut taper git remote -v qui va nous donner :

origin  git@github.com:funix83/Funix-Watch.git (fetch)
origin  git@github.com:funix83/Funix-Watch.git (push)

Il m’a fallu d’abord me connecter en SSH à github pour initialiser la connexion et que les échanges soient possibles ensuite en tapant ssh -T git@github.com.

Ensuite on se place dans le répertoire local du projet et on crée à la racine du projet un fichier .gitignore qui contiendra la liste de tous les fichiers à ne pas suivre (typiquement les binaires). On rajoute ensuite tous les fichiers du projet à suivre avec un commit initial :

git add --all *
git commit -m "initial commit"

Et on synchronise avec un git push. Maintenant quand on travaille sur le projet en local en créant et modifiant des fichiers, la commande git status me renvoie :

Sur la branche main
Votre branche est à jour avec 'origin/main'.

Modifications qui seront validées :
  (utilisez "git restore --staged <fichier>..." pour désindexer)
	nouveau fichier : .gitignore
	nouveau fichier : resources/fonts/DejaVu25.fnt
	nouveau fichier : resources/fonts/DejaVu25_0.png
	nouveau fichier : resources/fonts/IndigoOutline44.fnt
	nouveau fichier : resources/fonts/IndigoOutline44_0.png
	nouveau fichier : resources/fonts/Samdan50.fnt
	nouveau fichier : resources/fonts/Samdan50_0.png

Modifications qui ne seront pas validées :
  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
  (utilisez "git restore <fichier>..." pour annuler les modifications dans le répertoire de travail)
	modifié :         bin/Funixwatch.prg
	modifié :         bin/Funixwatch.prg.debug.xml
	modifié :         bin/gen/006-B3888-00/source/Rez.mcgen
	modifié :         bin/internal-mir/Rez.mir
	modifié :         bin/mir/source/FunixWatch-wordApp.mir
	modifié :         bin/mir/source/FunixWatch-wordView.mir
	modifié :         manifest.xml
	modifié :         resources/fonts/fonts.xml
	modifié :         resources/layouts/layout.xml
	modifié :         source/FunixWatch-wordApp.mc
	modifié :         source/FunixWatch-wordView.mc

Fichiers non suivis:
  (utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
	Funixwatch.prg
	Funixwatch.prg.debug.xml
	developer_key
	gen/
	internal-mir/
	mir

Je laisse les fichiers non suivis (binaires, etc.), il m’a rajouté en suivi automatiquement les nouveaux fichiers et je dois rajouter manuellement les fichiers modifiés en tapant à la racine du projet :

git add manifest.xml
git add resources/fonts/fonts.xml
git add resources/layouts/layout.xml
git add source/FunixWatch-wordApp.mc
git add source/FunixWatch-wordViewtati.mc

Je tape un commit pour valider les modifications :

git commit -m "Rajout de jauge en forme d'arc pour batterie et les pas et nouvelles polices"

et je fais un git push pour pousser vers le dépôt distant. Si on modifie un fichier sur le dépôt distant (le fichier README.md) par exemple, on tapera au contraire git pull pour mettre à jour à le dépôt local.

Autre commande utile pour savoir quels sont les fichiers qui sont suivis git ls-files, pour stopper le suivi on tapera git rm nom-du fichier.

Pour plus d’infos sur l’utilisation de git, voilà quelques sites intéressants en français :

Laisser un commentaire