Illustration by Emeline GRADELER — Designer UX UI La Chouette Co

La Chouette loves Garmin, aka 🩉 ❀ 🐒

Une Chouette tombant amoureuse d’un singe ? C’est digne d’un conte de fĂ©es !

Laissez-moi vous conter l’histoire


Il était une fois, il y a bien longtemps, dans un pays trÚs lointain, au milieu des montagnes et des ruisseaux, des pùquerettes et du génépi, une paisible bourgade nommée Grenoble.
Cette cité était chérie, entre autres, des sportifs en tout genre, ainsi que des savants.
De ce mélange étonnant, notre histoire tient son origine.

The usual suspects

En effet, ActiveLook, une entreprise grenobloise (đŸ‡«đŸ‡· cocorico !), fabrique des Ă©crans tĂȘte haute pour lunettes : dans des lunettes de sport, ils intĂšgrent leur Ă©cran haute dĂ©finition minuscule, avec une consommation ridicule.
GrĂące Ă  cet appendice, l’athlĂšte voit directement dans son champ de vision les donnĂ©es transmises via Bluetooth par un smartphone iOS ou Android.
Et tout cela grĂące Ă  la magie de l’ingĂ©nierie et de l’optique (c’est-Ă -dire longues heures de R&D !).

Image reprĂ©sentant ce qu’un athlĂšte voit dans les lunettes ActiveLook.
Illustration by Emeline GRADELER — Designer UX UI La Chouette Co

De son cĂŽtĂ©, Garmin dĂ©veloppe toutes sortes d’appareils dĂ©pendants des signaux GPS pour positionner, localiser, guider sur terre, mer, et dans le ciel, les militaires, les civils
 Et aussi les sportifs !

En 2003, ils publient le standard ANT+, une sorte de Bluetooth Low Energy, ou BLE, avec presque une dĂ©cennie d’avance ! Une Ă©ternitĂ© qui a vu la commercialisation d’innombrables capteurs utilisant ce standard, “wearables” ou non, comme des tensiomĂštres, podomĂštres, tachymĂštres, pĂšse-personnes, qui peuvent discuter ensemble, au travers des appareils Garmin.

La mĂȘme annĂ©e, ils commercialisent la montre Forerunner, fournissant aux joggers et aux triathlĂštes des mesures prĂ©cises des distances parcourues, vitesses, tensions cardiaques, altitudes, cadences, et le temps bien sĂ»r ! “Overnight Success” parmi les sportifs !

Mais !?!? Garmin commercialise des montres fournissant des données sportives et ActiveLook des lunettes affichant des données sportives. Hum

N’y aurait-il pas une opportunitĂ© attendant d’ĂȘtre dĂ©couverte ? đŸ€”

C’est ainsi qu’ActiveLook est revenu vers nous en 2019 pour faire parler les 2 tourtereaux. Ah oui, je dis “revenu”, car nous sommes impliquĂ©s dans le dĂ©veloppement de leurs applications Android et iOS.

The UN-usual suspects!

Comme dans tout conte de fĂ©es, une dot se doit d’ĂȘtre apportĂ©e. Dans notre cas les systĂšmes connexes aux appareils Garmin.

PremiĂšrement, l’écosystĂšme Connect IQ de Garmin. Celui-ci intĂšgre tous les outils nĂ©cessaires pour crĂ©er et diffuser une application exĂ©cutable sur les appareils Connect IQ compatibles (compteurs de vĂ©los et montres de la marque). Exactement comme Apple et Google pour leurs smartphones, magasin en ligne inclus.
Et pour ne rien gĂącher, cet Ă©cosystĂšme est fourni gratuitement. Que demande le peuple ?

Mais avec de grands pouvoirs, viennent de grandes responsabilités ! Va-t-on réinventer la roue, ou la rendre meilleure ?
L’environnement Connect IQ propose de nombreuses possibilitĂ©s : applications complĂštes, extensions insĂ©rĂ©es dans le systĂšme par dĂ©faut (DataField), façade pour afficher les donnĂ©es diffĂ©remment (WatchFace), etc


C’est Ă  ce moment que notre 🐒 arrive, enfin ! Garmin requiert le langage Monkey-C pour dĂ©velopper sur sa plateforme.
Oh non, encore un langage propriĂ©taire
 Certes, mais taillĂ© pour cette plateforme et avec une multitude de petites attentions qui rendent l’expĂ©rience trĂšs intĂ©ressante.
Par exemple, c’est un langage avec une syntaxe inspirĂ©e de l’omniprĂ©sent C, mais bĂ©nĂ©ficiant de plein d’amĂ©liorations apparues avec d’autres langages plus rĂ©cent.
Mais aussi, c’est un langage dynamique qui a de nombreux avantages, comme par exemple la gestion automatique de la mĂ©moire. Ou que ce dynamisme permet Ă©galement de charger les extensions, pardon Datafields, Ă  la volĂ©e sans avoir besoin de redĂ©marrer nos appareils, et ça pour l’utilisateur, c’est vraiment bien !

Pour couronner le tout, la technologie Bluetooth Low Energy (BLE), disponible bien aprĂšs ANT+,mais qui s’est rĂ©pandue comme une traĂźnĂ©e de poudre auprĂšs du grand public. Et avec elle, plĂ©thore d’équipements ont Ă©tĂ© conçus, du casque audio Ă  la montre en passant par la gamelle pour chats et j’en passe et des pas mĂ»rs...

Et les lunettes ActiveLook, bien Ă©videmment !

Setting the stage

Mais sans mĂ©chants, ni obstacles insurmontablesÂč, pas de conte de fĂ©es.
Ça tombe bien, ils se sont prĂ©sentĂ©s d’eux-mĂȘmes, juste derriĂšre la dot. Quelle chance ! 😝

Premiùrement, la 🩉 ne sait pas parler 🐒. Ni Connect IQ d’ailleurs. BLE ça oui, mais pas BLE avec Monkey-C. Et la tour de Babel n’est pas à Grenoble !

Un singe qui code ? C’est un message subliminal ou bien ?
Illustration by Emeline GRADELER — Designer UX UI La Chouette Co

Ensuite, et aprĂšs moult dĂ©bats, nous avons dĂ©cidĂ©s d’amĂ©liorer la roue. Le DataField est sorti vainqueur, terrassant ses adversaires par son intĂ©gration dans le systĂšme Connect IQ, et son — apparente — facilitĂ© de dĂ©veloppement.

Malheureusement imposé par Garmin, un Datafield ne peut communiquer directement avec ses comparses Datafields. Pourra-t-on afficher la puissance mesurée par un capteur ANT+ dans nos lunettes ? Que de suspense !

Il existe aussi des limites qui dĂ©pendent de la physique et de nos dĂ©couvertes scientifiques, quantiques, philosophiques
 Hum, pardon. Je m’égare !
Bref, une montre, un ordinateur de vĂ©lo, ont une mĂ©moire TRÈS TRÈS limitĂ©e, de quelques dizaines de milliers d’octets ~64 - 512Ko. À titre de comparaison, l’iPhone contemporain le plus chiche en la matiĂšre arbore fiĂšrement 64 Go, soit plus d’un million de fois plus gros ! Chaque bit compte !

Également, des Ă©lĂ©ments propres au monde qui nous entoure, de la gĂ©opolitique presque : certaines tribus Ă©loignĂ©es utilisent diffĂ©rentes unitĂ©s pour reprĂ©senter, par exemple, les distances. (Non-metric measurement system countries, I’m looking at you! đŸ€Ź). Ou, sacrilĂšge, diffĂ©rentes façons de reprĂ©senter des donnĂ©es identiques (km/h ou s/500m ? Chocolatine ou pain au chocolat ? etc
)
De plus, au sein mĂȘme de ces tribus, les pratiquants de vĂ©locipĂšdes auront besoin d’accĂ©der Ă  des mĂ©triques diffĂ©rentes de celles disponibles pour les coureurs


Et si ce n’était pas suffisant, le dĂ©veloppeur lui-mĂȘme, laissĂ© Ă  son propre chef, peut devenir un mĂ©chant de l’histoire ! En effet, et c’est continuellement vĂ©rifiable, “le dĂ©veloppeur d’aujourd’hui crĂ©e les bugs de demainÂČ !”

Un vrai problĂšme sans solution. Seule la magie pouvait dĂ©mĂȘler le schmilblick!

Where the (not so) magic happens đŸȘ„

Magie ? Vraiment ? En fait non.

Fort de notre partenariat prĂ©cĂ©dent avec ActiveLook, nous avions dĂ©jĂ  une bonne partie des spĂ©cifications pour les lunettes, et des attentes des sportifs en gĂ©nĂ©ral. Easy peasy donc, non ? Pas tout Ă  fait, car du point de vue d’un sportif utilisant un ordinateur Garmin, aucune. Retour Ă  la case dĂ©part.

Nous avons donc interrogĂ© ActiveLook, ainsi que des utilisateurs afin d’extraire la substantifique moelle, le Saint Graal : leurs besoins nĂ©cessaires. Ceux-ci ont d’ailleurs Ă©voluĂ© dans le temps, en fonction de ce que nous trouvions, produisions, 
 Bref, de longues heures de R&D, n’est-ce pas !

Vint le temps des explorations techniques : les diffĂ©rentes solutions possibles et les technologies disponibles et nĂ©cessaires. Et de dĂ©couvrir, entre autre, que Monkey-C et son dynamisme permet de rĂ©soudre notre problĂšme de communications entre les datafields trĂšs facilement. En effet, les donnĂ©es n’étant pas typĂ©es lors de l’écriture du code, c’est Ă  l’exĂ©cution que le type est dĂ©terminĂ©. Pas de magie ici non plus, simplement de la communication. Si un objet possĂšde certaines caractĂ©ristiques propre Ă  un type, alors nous pouvons lui attribuer le type en question. En informatique, cela s’appelle le 🩆 Duck Typing : “Si ça marche comme un canard et que ça cancane comme un canard, alors c’est un canard”. Le systĂšme envoie les donnĂ©es de tous les datafields Ă  tous les datafields, Ă  chaque seconde, et libre Ă  chacun de prendre ce qui l’intĂ©resse.

Aux balbutiements de cette relation 🩉 — 🐒, une autre relation privilĂ©giĂ©e, que dis-je indispensable s’est crĂ©Ă©. Celle entre nos chouettes dĂ©veloppeurs et le simulateur Garmin pour vĂ©rifier que notre programme bien-aimĂ© đŸ€Ź ne soit pas trop glouton đŸ˜± en mĂ©moire. Un peu Ă  la façon d’un Jim Lovell essayant de ramener Apollo 13 sans faire sauter les plombs. Bon, bien moins stressant, mais la finalitĂ© est la mĂȘme : obtenir un livrable fonctionnel.

Le simulateur Garmin affiche en temps réel les mémoires utilisée et disponible. Ici, le programme est bien en deça de la limite. Ouf !
Qui peut rĂ©sister Ă  cette vision ? đŸ„° đŸ€€

Vous avais-je parlĂ© des limitations de l’ordinateur du dĂ©veloppeur ? Bien que nos Macs parlent BLE nativement, le simulateur Garmin, lui, n’y a pas accĂšs. C’est certes une broutille (facilement surmontĂ©e grĂące un dongle BLE) mais la ligne d’arrivĂ©e semblait s’éloigner encore et encore


Puis on a recommencĂ©, modifiĂ© nos plans, raturĂ© des phrases, paragraphes, voire mĂȘme arrachĂ© des pages entiĂšres
 Soit en termes plus techniques, nous avons Ă©tudiĂ©, crĂ©Ă©, modifiĂ©, supprimĂ© des projets Monkey-C. Suivis par des projets Monkey-C parlant Bluetooth avec les lunettes (souvent en dialecte trĂšs bas niveau, hexadĂ©cimal, primitif diront certains !).

Ce n’est qu’une fois le terrain dĂ©frichĂ©, et les fondations solidement ancrĂ©es, que nous avons pu attaquer la version actuelle, le DataField đŸ€©.

Et donc tout recommencer ! Mais en appliquant nos connaissances et exploitant nos compĂ©tences nouvellement acquises, bien sĂ»r ! “Lather Rince Repeat”, en vĂ©rifiant et adaptant continuellement le travail pour garder nos chouettes dĂ©veloppeurs dans le camp du bien ! Un vrai travail d’équipe !

Vous pourriez me dire que c’est le propre de tout dĂ©veloppement informatique. Et vous aurez raison ! En effet itĂ©rer sur le travail accompli pour l’affiner est l’essence mĂȘme de la mĂ©thode Agile et des variantes qui en dĂ©coulent


Conclusion

Comme tout conte de fĂ©es qui se respecte, il faut conclure par le sempiternel : “Ils vĂ©curent heureux et eurent beaucoup d’enfants disponibles sur le Connect IQ Store."

Ce partenariat en cours, bien que nous poussant dans de nombreux coins et recoins rarement visités par les développeurs, comme le développement embarqué, un nouveau langage, un nouvel écosystÚme, 
 nous a laissé de nombreux enseignements différents, mais essentiels.

À titre personnel, ce projet a soulignĂ© l’importance de la curiositĂ©, de l’humilitĂ©, des ‘best practices’, d’utiliser le bon outil pour le travail effectuĂ©. Un retour aux sources de l’artisanatÂł : “Laisser un chantier plus propre qu’il ne l’était avant son passage”.

Notre entreprise et ses processes ont Ă©galement Ă©tĂ© affectĂ©s et nous sommes en train d’en amĂ©liorer diffĂ©rents aspects. La communication Ă©tant la pierre angulaire de notre travail, nous amĂ©liorons continuellement l’échange des travaux, leurs reprĂ©sentations, afin qu’aucune spĂ©cification, dĂ©cision ne puisse se perdre et soit convenablement exploitĂ©e. De mĂȘme, notre systĂšme de partage des connaissances a bĂ©nĂ©ficiĂ© d’un petit ravalement. Que celui qui n’a jamais Ă©tĂ© dans la situation “Nico est en vacances ! On fait comment ?đŸ˜±â€ me lance la premiĂšre pierre !

Bref, maintenant vous savez comment une 🩉 est tombĂ©e ❀ d’un 🐒 (mĂȘme avec une mĂ©moire de 🐟 rouge đŸ„ł) !

Alors si ce n’est pas dĂ©jĂ  fait, abonnez-vous Ă  notre blog.

Et si votre systĂšme embarquĂ© est sentimental, contactez-nous, que la Chouette puisse vous donner un p’tit coup d’aile. 😉

À coeur vaillant, rien d’impossible ! Moins sexy, mais tout aussi vĂ©ridique, Ă  force d’efforts, et de pugnacitĂ© nous avons rĂ©ussi Ă  dompter le singe !

[1] Rien n’est insurmontable pour une Chouette, c’est un oiseau


[2] Adaptation trĂšs libre de ce tweet de Filipe Fortes :

“Debugging is like being the detective in a crime movie where you are also the murderer.”

[3] Le “software craftsmanship" est un Ă©tat d’esprit qui se dĂ©veloppe de plus en plus dans la communautĂ© des dĂ©veloppeurs (pun actually intended).

--

--