Je navigue depuis une douzaine d'années sur mes voiliers, principalement en croisière. A ce jour je n'ai pas trouvé le logiciel adéquat pour mes carnets de bord et journaux de voyage en voilier.
Mon but développer un logiciel de Voyage basé sur du tracking GPS sur Smartphone adapté au monde de la voile, associant photos et commentaires à des WayPoints sur une carte et un journal de voyage pouvant être ensuite exporté et vu sur le WEB.

Un rapide aperçu, différents supports:

Les Blogs
J'ai bien un Blog: http://esperanzavoyage.blogspot.com/

Les cartes Google Map
Dans ce blog j'ai des liens vers des cartes Google Map :
https://esperanzavoyage.blogspot.com/p/parcours-du-moment.html

Les albums photo
Dans ce blog j'ai des liens vers des albums photo :
https://esperanzavoyage.blogspot.com/p/p.html

Les logiciels de voyage tracking sur Smartphone

Findpenguins https://findpenguins.com/
avec un album de voyage personnel:
https://findpenguins.com/5zv97kazlsbkz/trip/balade-en-grece-janvier-2019

Polarstep https://www.polarsteps.com/

Wikiloc https://fr.wikiloc.com/
exemple itinéraires en voilier: https://fr.wikiloc.com/itineraires/voile

Les logiciels de voyage sur le Web

TravelMap https://travelmap.net/fr
Là un voyage à bord de mon voilier Experanza en 2018 https://esperanzasailing.travelmap.net/
Là j'ai du exporter un fichier .kml au bon format afin d'obtenir le parcours pour ensuite associer des photos à quelques Waypoints. C'est ce type de présentation qui me convient dommage c'est que sur du Web.....


Les Trackers GPS sur Smartphone

Exemple GeoTracker et il y en a plein d'autres...
https://play.google.com/store/apps/details?id=geo.tracker&hl=fr
Ces nombreux logiciels permettent d'enregistrer (souvent en background avec de nombreuses options...) nos traces GPS et permettent de les exporter en format .GPX ou .KML pour ensuite revoir nos parcours sur Google Hearth ou sur le Web.
Mais là on sort des logiciels de voyage avec association de journaux et photos à des waypoints.


Les logiciels de navigation sur Smartphone

Navionics
https://play.google.com/store/apps/details?id=it.navionics.singleAppMarineLakesHD&hl=fr

Sailgrib WR https://play.google.com/store/apps/details?id=com.sailgrib_wr&hl=fr
 Plein d'autres Weather4D, QtVlm, SquidMobile etc... tous sont plus spécialisés météo ou routage et imcorporent ou non un tracking GPS. 
Là aussi on sort des logiciels de voyage avec association de journaux et photos à des waypoints. Ce n'est pas leur but.

Les trackers GPS et les logiciels de navigation sont evidement hors categorie. La plupart des autres logiciels associant tracking GPS et journal de voyage (FindPengins, PolarStep etc...) proposent des options payantes et ne correspondent jamais totalement à mes attentes, étant informaticien et profitant du confinement liée au covid 19, j'en profite pour me lancer dans un petit défi technique, développer le logiciel de voyage en voilier qui me convient.

Le cahier des charges (un peu de technique):

Une application adaptée à la voile et à tout voyage basé sur des déplacements lents, peu gourmande en ressources et fonctionnant hors internet.
La seule spécificité de cette application concernant la voile sera la possibilité de voir le parcours sur des cartes marines (ou sur terre openStreetMap) et générer des carnets de bord qui sont obligatoires sur un voilier en cas de contrôle. (Format papier ou numerique accepté).

Fonctionner indistinctement sur Android ou Iphone. Un projet Flutter.
Pour cela, dans mon travail, développant sur un nouveau Framework fortement poussé par Google pour les applications mobiles : Flutter https://flutter.dev/ je pense que c'est le framework idéal pour développer rapidement une petite application de voyage avec un seul code source ( Dart ) associé à une compilation Multiplate-forme Android ou Iphone.

Un tracking GPS en backgroud adapté à des déplacements lents. (Voilier ou randonnée, vélo) peu gourmand en ressources et fonctionnant hors connexion internet.
Dans le projet Flutter, utiliser un service de géolocalisation le moins gourmand possible, pouvant tourner en background même quand l'application est arrêtée et pouvant même redémarrer automatiquement après arrêt du téléphone.

Initialement Utilisation du package background_fetch : https://pub.dev/packages/background_fetch associé au package Geolocator https://pub.dev/packages/geolocator
Le package backgroud_fetch permet l’exécution d'une tache en background toutes les 15 minutes au minimum mais ce timing est suffisant pour déclencher l'appel d'une géolocalisation (appel de Geolocator) sur des déplacements lents. En voilier à une vitesse de 6 Noeuds cela permet de générer un waypoint tous les 1,5 Milles Nautiques (1 Mille Nautique = 1 Km 852 mètres) ce qui est amplement suffisant pour le suivi d'un journal de voyage.

Géolocator n'a pas répondu a mes attentes en termes de précision et je me suis finalement orienté vers un package Flutter  reposant sur des services GPS natifs Android et Ios https://pub.dev/packages/background_locator. L'utilisation de ce package permet des paramètrages beaucoup plus fins avec une précision accrue: distance minimum entre deux waypoints, fréquences des vaypoints pouvant aller de 5 secondes à plusieurs minutes pour des déplacements lents.

Pour stocker l'enregistrement des waypoints, des commentaires et images associées utilisation d'une base de données SQL Locale Sqlite autonome qui fonctionne hors connexion internet.
Package https://pub.dev/packages/sqflite Cette base de donnée permet de stocker les images avec des types BLOB prévus à cet effet.

Pour restituer les waypoints sur des cartes gratuites dans l'application et hors connexion internet utilisation du package flutter_map https://pub.dev/packages/flutter_map
Ce package permet d'utiliser des cartes gratuites au format OpenStreetMap ou autres qui pourront être téléchargées avant le voyage. Ce package est fortement inspiré de leaflet https://leafletjs.com/

Pour restituer des journaux de voyage publics sur le Web connexion internet et upload de fichiers json à partir de l'application.
Ces journaux pourront être vus par des amis ou des personnes suivant le voyage, un peu semblables à cela dans la forme: https://esperanzasailing.travelmap.net/
Ces journaux stockés en local dans l'application dans Sqlite seront uploadés sur le web via un une extraction de la base sqlite au format json  et un upload d'images locales liées au journal de voyage.  
Le serveur hébergeant le service web de restitution des journaux et des cartes sera Google Firebase avec sa partie database pour les objets json et sa partie storage pour les images.
Une fois ces fichiers json copiés sur un serveur Web ils pourront être exploités ensuite en tant que données json pour une restitution sur des cartes utilisant la librairie open source javascript leaflet : https://leafletjs.com/
Afin de conserver la spécificité des cartes marines avec leaflet on pourra utiliser l'api Navionics V2 : https://webapiv2.navionics.com/examples/5000_LeafletSupport.html pour une une présentation des cartes du voyage sur le web plus adaptée au monde maritime.

Si dans l'application on dispose d'une connexion internet on pourra donc Exporter nos journaux vers internet pour les rendre public sur le Web, et aussi les voir via une WebView intégrée dans l'application.

Pour résumer le cahier des charges: Une application de voyage fonctionnant sur tout smartphone (Android ou Iphone). Dans cette application seul le processus de publication des journaux de voyage sur le web necessite une connexion internet, toutes les autres fonctions: tracking GPS, gestion des journaux et waypoints, ajout des photos et commentaires, consultation des journaux photos et cartes  fonctionnent hors internet. Cela me semble important quand on navigue au large dans des contrèes reculées ou dans des pays étrangers où les coûts de connexion peuvent être prohibitifs.