Tiens, encore une nouvelle application de navigation ! Quelle drôle d'idée ! En fait, il y a quelques années déjà, j'étais très surpris par les logiciels existants, que ce soit embarqués dans un traceur ou disponibles sur mon téléphone ou ordinateur.
La gestion des marques, routes et traces par exemple. Le format GPX est très sommaire, et tous les éditeurs ont étendu ce format avec leurs propres extensions propriétaires. Comme attendu, il n'y a aucune compatibilité avec un autre logiciel, alors que c'est normalement le but d'un format d'échange… Mais la plupart des logiciels importent mal les fichiers générés par d'autres. Ça va du message d'erreur sans raison, du plantage de l'application, ou des comportements inattendus.
J'ai vu des logiciels qui imposaient un ordre précis des chemins XML. Alors qu'il n'y a aucune contrainte dans le schéma GPX.
Beaucoup de logiciels trouvant des marques les importent toutes, ignorant les traces ou routes incluses. Ou importer un fichier de routes n'importent que la première en ignorant les suivantes. Ce qui oblige à découper à la main le fichier GPX en plusieurs petits.
Même le commentaire associé à un objet est parfois perdu, le schéma GPX offrant
<desc> et <cmt> pour deux usages distincts, mais les
logiciels utilisent l'un ou l'autre.
Un traceur très connu et très utilisé qui encode les caractères accentués en HTML, dans
un fichier XML UTF-8. Un non-sens. Le ħ maltais apparaissant comme ħ
ou le ñ espagnol comme ñ. Et aucun logiciel ensuite n'est capable
d'importer ces fichiers. Avec au mieux un message d'erreur ou sinon un beau plantage.
Alors déjà j'ai voulu écrire une application qui importe correctement tous les fichiers GPX, mais qui sache conserver les données propriétaires comme le groupe associé (quasiment tous les logiciels permettent de classer les éléments dans des groupes), le symbole, la couleur de la route ou de la trace, les photos. Quelques rares logiciels permettent aussi d'associer un lien Internet ou un fichier.
Même constat pour la navigation. Je trouvais des applications très agréables à utiliser, très bien faites. Mais pour la partie instrumentation, limitées à quelques mesures de base en NMEA 0183. L'une affichant certaines mesures, une autre d'autres mesures. Quelques rares applications plus complètes, avec les mêmes quelques valeurs de confort mais à l'ergonomie douteuse, moches esthétiquement, et parfois se bloquant ou ralentissant.
Et lorsque l'on commence à avoir sur son bateau plusieurs monitorings de batteries, plusieurs sondes de réservoirs, plusieurs capteurs de température, là ça devient amusant. À part quelques rares exceptions, les logiciels gèrent mal les sources indexées. C'est l'indicateur de tension de batteries qui en une seconde affiche 12,3 comme 24,6, ou 30 % comme 60 % pour les réservoirs. Inutilisable.
Et puis ce sont toujours des applications multiplateformes. C'est-à-dire un seul code source unique pour des plateformes matérielles différentes. Suivant la solution utilisée, l'interface utilisateur est souvent pas terrible. Et ces solutions se concentrent sur le minimum commun existant sur les plateformes, sans exploiter les possibilités propres à chaque système.
De là j'ai commencé à écrire une application pour iPhone et Mac. Différents prototypes, jamais finalisés. Des périodes où j'avais du temps à y consacrer, des longues périodes d'abandon, des difficultés ensuite à m'y remettre. Insatisfait de mes architectures ou de mes implémentations, je jetais, recommençais. Plus j'avançais, plus d'idées me venaient. Alors je partais dans une nouvelle direction, sans jamais terminer les parties précédentes pourtant bien entamées. Les années passant, il était évident que je n'arriverais à rien. Et puis un jour j'ai décidé de m'y remettre sérieusement.