Randonneur5

PWA d’édition et de partage de randonnées à partir de fichiers KMZ / KML / GPX, avec tracé animé (“chenillard”), profil altimétrique, gestion de photos géolocalisées, et une fonction de visite guidée avec lecture audio des commentaires.

Fonctionnalités

Édition

Visite guidée

Déploiement

Installation sur smartphone (PWA)

  1. Ouvrir l’URL de déploiement dans Chrome (Android)
  2. Menu ⋮ → Ajouter à l’écran d’accueil / Installer l’application
  3. Une fois installée, Randonneur5 apparaît dans le menu Partager des gestionnaires de fichiers pour les fichiers .kmz, .kml, .gpx

Déploiement

Vercel

cd randonneur5
vercel --prod

Le fichier vercel.json configure les en-têtes MIME nécessaires (.kmz, .kml, .gpx) et la route du share-target.

GitHub Pages

Le projet est préconfiguré pour être servi depuis un sous-chemin /randonneur5/ (voir manifest.json et sw.js, variable SCOPE).

git init
git add .
git commit -m "Randonneur5"
git remote add origin https://github.com/<utilisateur>/randonneur5.git
git push -u origin main

Puis activer GitHub Pages sur la branche main dans les paramètres du dépôt. Le fichier 404.html gère la redirection nécessaire au bon fonctionnement du Service Worker sur ce type d’hébergement.

Le Partage de fichiers (share_target) ne fonctionne que sur un hébergeur supportant les requêtes POST (Vercel). Sur GitHub Pages, l’application reste utilisable normalement mais ne pourra pas être proposée dans le menu “Partager” d’un gestionnaire de fichiers.

Structure du projet

randonneur5/
├── index.html          application complète (HTML + CSS + JS, mono-fichier)
├── manifest.json        manifeste PWA (icônes, share_target, scope)
├── sw.js                 service worker (cache, réception des fichiers partagés)
├── 404.html             redirection SPA pour GitHub Pages
├── vercel.json           configuration des en-têtes et routes Vercel
└── icons/
    ├── icon-192.png / icon-512.png                icônes standard
    └── icon-192-maskable.png / icon-512-maskable.png   icônes adaptatives Android

Notes techniques

Historique des choix de conception

La fonction Visite a initialement été conçue avec un enchaînement automatique (lecture audio puis avance après une pause de quelques secondes). Ce mode s’est révélé instable sur certains navigateurs mobiles (blocages aléatoires de la synthèse vocale, désynchronisation de l’avance automatique). Le mode retenu — navigation et lecture déclenchées manuellement par l’utilisateur — s’est avéré nettement plus robuste sur l’ensemble des plateformes testées, sans perte d’usage significative.