Développement appli mobile c2c

Bonjour à tous.tes.

Comme mentionné sur ce fil Application Camptocamp : cahier des charges à élaborer avec vous @Sixte-dsm s’est proposé pour développer l’appli mobile de c2c (une v2 du coup) sur la base de ce cahier des charges

Version à choisir - le CA a préchoisi v1 ou v3, avec preference pour v3 car plus ergonomique. Dans les faits, ce sera v3 Si ça ne diverge pas trop sur la V3 (pas de paquet de code supplementaire à maintenir)
V1 — Site actuel + options terrain : Camptocamp.org
V2 — Refonte “application moderne : Camptocamp
V3 — Fusion V1 + V2 : Camptocamp.org

Le retour de Sixte sur le CDC (éléments supplémentaires + éléments à décider avec vous):

  1. V1 vs V3 (pourcentage de code commun)
  • V1 : fork direct de c2c_ui + quelques patches → ~100 % du code commun avec le site, mais ergonomie desktop.
  • V3 : fork direct de c2c_ui + shell mobile (top bar, bottom nav) + 4 plugins isolés (offline, outing-session, app-settings, screen) → ~95 % du code commun , ergonomie mobile.

Sur ~450 fichiers, une vingtaine sont V3-seuls et une dizaine de fichiers du site sont légèrement modifiés (chaque modif annotée // V3 ). Concrètement, les évolutions de c2c_ui sont automatiquement héritées par la V3 — la dette de maintenance additionnelle est faible.
Ma reco : V3.

  1. Choix technique : PWA

J’ai fait le choix d’une PWA pour trois raisons : un seul code source pour Android + iOS + desktop, zéro coût de publication, et réutilisation maximale de c2c_ui (c’est ce qui rend le 95 % commun possible).

Cela dit, une publication future sur les stores reste possible : elle demande un développement supplémentaire de mon côté et l’ouverture d’un compte développeur côté C2C (Google Play : 25 USD one-time ; Apple : 99 USD/an, récurrent). Ma reco : rester sur la PWA dans un premier temps, et n’y aller que si l’usage se développe. À vous de décider — dites-moi comment vous souhaitez fonctionner.

Question à trancher côté C2C : est-ce que la PWA vous convient telle quelle, ou souhaitez-vous à terme viser une présence sur les stores ?

  1. Livrables déployés
    C2C - dev app mobile - CDC - v1.0.docx (22,6 Ko)
    Les 6 lots du CDC posés. Ajouts par rapport à la V1 :
  • Shell mobile : barre du haut, barre du bas 5 onglets, pages Moi / Plus / Paramètres app
  • Consultation offline : sauvegarde unique / par page / pack sortie du jour (route + waypoints associés en un tap), indicateur de fraîcheur, gestion du stockage avec purge
  • Recherche géo : bouton « Près de moi » avec rayons 10/25/50/100 km
  • Création de sortie : StartOutingControl avec tracking GPS optionnel (battery guard écran verrouillé), brouillon local, sync différée, gestion des conflits (409), export GPX
  • Photos : capture + galerie, upload différé au retour du réseau
  • Édition mobile : sticky save bar et layout 1 colonne sur les formulaires V1 (via feuille de style dédiée, sans modif des composants du site)
  • Landing page : un seul lien à communiquer, routage auto ordi/tél

Fondations : 41 tests unitaires + CI GitHub Actions (lint + tests + build à chaque push), déploiement auto sur GitHub Pages, et 3 docs de handover ( ARCHITECTURE.md , docs/BUILD.md , docs/HANDOVER-C2C.md aligné sur §3.2).

URL de test : Camptocamp — choix de la version

  1. Reste à faire
    Côté dev ( rien de bloquant pour un premier release) : import GPX, corrélation photos-trace, affichage trace live + profil altimétrique pendant tracking, filtre « disponibilité offline », config unités et seuil batterie, propositions auto sommets/parkings/waypoints en fin de sortie, écrans de consentement custom, vraie pause de sortie.

Prochaines etapes

  1. A debattre/ echanger en direct avec Sixte @edwardoo need your support / main feedback

V1 vs v3 : sur la base du retour de sixte ci dessus - part on vraiment sur la v3 ?
Question à trancher côté C2C** : : est-ce que la PWA vous convient telle quelle, ou souhaitez-vous à terme viser une présence sur les stores ?

  1. Retour sur la version actuelle : sur l’usabilité, l’ergonomie,… Camptocamp — choix de la version
    -> Partagez vos retours utlisateurs.rices directement ici (@Tom_Clancy par ex.)
    -> Si on part sur 2 mois de tests dans ce cercle restreint, cela vous semble t il suffisant ?

  2. autres elements / idées qui vous seraient venues entretemps - à partager ici et faisabilité à débattre ensemble, sous réserve que l’on ne mette pas Sixte sous l’eau evidemment (donc de son accord) (je pense à @Adrien_le_bouquetin par ex)

4 Likes

Tout ceci est très intéressant mais je n’ai pas tout compris. Suis je le seul ?

Il est fait usage de nombreux termes techniques réservé aux développeurs. N’étant pas se ceux-ci, je m’abstiens à donner des avis au risque d’être à côté du sujet.

Mon seul avis est : suis pour la V3

2 Likes

J’ai pas tout compris non plus, mais le mini test de navigation que je viens de faire (sur V3) me semble tout à fait convaincant!
Le menu en bas est très pratique. La barre de menu pourrait être un poil plus haute selon moi. (la barre d’adresse de mon navigateur est en bas et je clique dessus 1 fois sur 4, alors que je suis assis à mon bureau et pas en montagne)
Je ne sais pas si c’est voulu mais sur la page création de sortie la barre avec les boutons « enregistrer » +« prévisualiser » est fixe dans le quart du bas de l’écran. (je vais mettre une capture d’écran).
Je ne me sens pas légitime pour m’exprimer sur store/pas store.
Mais bravo pour le boulot.

1 Like

Bonjour à tous,

Je suis la personne qui a commencé à travailler sur le développement. Comme certaines personnes se demandaient qui j’étais, je me permets de me présenter.

Je m’appelle Sixte. Je suis actuellement en école d’ingénieur et j’ai quelques bases en codage. Je ne suis pas du tout développeur professionnel.

À côté de ça, je suis passionné d’escalade et d’alpinisme. J’utilise très souvent Camptocamp et je me suis heurté à quelques limites du site internet lors de son utilisation sur le terrain et sur téléphone. C’est pour ça que j’ai contacté Camptocamp pour aider au développement d’une application.

Le sujet est présenté de façon assez détaillée et technique, notamment pour que les personnes à l’aise en codage et les développeurs puissent bien comprendre le projet et, plus tard, le code qui sera open source.

L’idée est surtout que je ne sois pas le seul à avoir une vue d’ensemble et une compréhension détaillée du code et de la structure de l’application. Il faut que les développeurs de Camptocamp puissent comprendre ce qui a été fait et comment l’application fonctionne, plutôt que de devoir tout reprendre à partir de zéro si quelqu’un d’autre doit travailler dessus.

L’intérêt de cette discussion est donc surtout de discuter du côté pratique et utilitaire de l’application.

En gros, l’objectif est que chacun teste les différentes versions, se fasse son avis sur celle qu’il préfère, puis fasse éventuellement un test plus approfondi sur cette version, par exemple la V3, avec une utilisation concrète sur le terrain.

Cela permettrait de faire remonter tous les bugs, les améliorations possibles, les choses qui ne fonctionnent pas, les éléments à changer, etc. Je pense que c’est ça le vrai intérêt de ce sujet.

À noter : pour ne pas avoir la barre du navigateur en bas, il faut créer un raccourci. Par exemple sur iPhone, il faut appuyer sur « Partager », puis « Ajouter à l’écran d’accueil ». Comme ça, on a vraiment l’impression d’être sur une vraie application.

Sixte

9 Likes

@Sixte-dsm La V3 est elle mise à jour ces derniers temps ou est ce toujours l’ancienne version de démo du début ?

C’est bien la dernière version. Je n’ai pas eu le temps de voir si tout fonctionnait et de la tester sur le terrain.
Je pense qu’il y a pas mal de bugs ( notamment sur l’enregistrement des sorties offline). Le but est de tout faire remonter.

1 Like

Merci Sixte pour ton introduction !

Sujet pour le @CA1

Je confirme que c’est la priorité pour les non développeurs.ses ! @gilles74 @patapouet
N’hésitez pas à faire des retours bien complets.

!! Attention vu que c’est encore un beta, n’oubliez pas de sauvegarder vos topos offline d’une autre facon, pour eviter de se retrouver dans une face à chercher voitre itineraire sans topo…

1 Like

Merci pour ton retour
J’ai corrigé les deux points . La barre du menu est un peu plus haute, et le bouton « Enregistrer » n’est plus flottant, il est maintenant en bas de la page.

Un rafraîchissement de la page devrait suffire pour voir les changements.

1 Like

@Sixte-dsm Un affichage étrange sur mon téléphone (Samsung S20):

  • Lors de l’affichage d’une sortie, le choix du type de carte (OTM, IGN, Sat) est en haut de la page et y reste avec le déplacement de page. Ne devrait il pas être positionné sur la carte ?

2 Likes

Effectivement il faisait doublon avec le sélecteur natif de la carte. Je viens de le retirer.

1 Like

J’ai pas trouvé comment on crée une sortie offline avec enregistrement de la trace GPS.
J’ai juste pu créer une sortie online avec le formulaire habituel de création de sortie.

Voici comment fonctionne l’enregistrement en offline actuellement :

Tout d’abord, je pense que cette option ne fonctionne que si le site a été mis en raccourci :

Ensuite, il faut avoir enregistré notre topo lorsque l’on est connectée au réseau.

Maintenant on peut être hors réseaux (sur le terrain).


Et lancer la sortie.

Une fois la sortie lancée, on le voit sur la page de du topo :

Et sur le reste de l’apps :

Pour arrêter la sortie et pouvoir enregistrer le topo :

Plusieurs options possibles. Ici on choisit de renseigner la partie immédiatement.

On ce retrouve sur une page classique pour rentrer une sortie :

Une fois enregistré et tant qu’on ne retrouve pas de connexion, on reste dans cet état :

Une fois qu’on retrouve de la connexion, la synchronisation se fait :

L’avantage de cette solution est que, si l’on choisit d’enregistrer la trace GPS, un fichier GPX sera créé et intégré directement dans le topo. Cela permettra d’avoir beaucoup plus de traces GPX qu’à l’heure actuelle.

Même si l’on ne choisit pas d’enregistrer la trace GPS, celle-ci nous permet quand même, dès la fin de notre sortie, d’avoir automatiquement dans notre topo une proposition pour associer notre sortie au topo enregistré.

À noter que la création d’une sortie hors ligne est aussi possible directement via le bouton « + » vert. Le topo se met dans « Mes topos » en attente et se synchronise sur le profil dès que la connexion revient. Sur le même principe que ce que je viens de montrer ci dessus.

Deux limites actuelles à cette voie :

  1. Le champ itinéraire est obligatoire, et on ne peut pas le remplir si la course / l’itinéraire qu’on veut poster n’est pas déjà enregistré dans « Mes topos ».
  2. On ne peut pas lancer de trace GPS depuis ce chemin — la trace n’est disponible que si on passe par une sortie démarrée depuis un itinéraire enregistré dans « Mes topos ».
3 Likes

Merci à toi pour ton travail et ta rapidité.

C’est parfait, ça a plus d’allure comme ça!

Je n’ai pas testé et je ne pense pas pouvoir tester rapidement mais ton post sur l’enregistrement d’une sortie offline est top.
Au vu des explications ci dessus, je pense qu’un petit mode d’emploi de l’appli pourrait être bienvenu.
Quelle est la meilleure méthode selon vous pour avoir une page « mode d’emploi de l’appli C2C » sous la main? Création d’un article?

1 Like

Certainement effectivement un article, avec un titre commençant par « AIDE: » pour qu’il rejoigne ses petits copains

3 Likes

@Sixte-dsm quelques petites remarques:

  • Lors de la création de la sortie suite à son parcours, toutes les activités de l’itinéraire du topo sont cochées par défaut. Exemple: un itinéraire est commun au ski de rando, en raquette et en rando été (fréquent dans le topoguide).
    Je pense qu’il vaudrait mieux ne cocher aucune activité par défaut, laisser l’utilisateur valider sa réelle activité du jour. Et si au moment d’enregistrer la sortie, aucune activité est cochée, mettre un message d’alerte type « Renseignez une activité ».
    Dans le cas actuel et sans attention de la part du contributeur, on risque de se retrouver avec des sorties ayant plusieurs activités incompatibles entre elles (exemple: ski rando et randonnée).

  • Petit problème graphique:
    Mettre une marge + importante à gauche du message « Enregistrer la trace GPS… »

  • Le bouton démarrer un enregistrement n’est pas très visible et trop petit. Ce n’est pas intuitif.
2 Likes

Merci pour vos retours !

C’est une bonne remarque, merci. C’est corriger.

C’est corriger.

J’ai mis un bouton plus volumineux et intuitif.

N’hésitez pas à me faire un retour pour me dire si les corrections vous conviennent également de votre côté.

NB : Avant chaque test, relancer « l’apps » et une fois dessus rafraîchir la page en swipant vers le bas.

1 Like

@Sixte-dsm , un truc bizarre ou que je ne comprend pas:
j’ai fait ma sortie (en simulation) donc j’ai sélectionné mon sommet avec l’itinéraire que je veux.

Après je remplis mon CR de sortie. A ce moment, il m’est proposé des centaines d’itinéraires qui n’ont rien à voir avec le mien du jour. Celui qui m’intéresse (mon itinéraire hors ligne) est tout en bas de la page après ces nombreux qui n’ont rien à voir avec ma sortie finie.


1 Like

C’est bon, c’est corrigé. Pour renseigner un itinéraire, cela fonctionne comme dans la version actuelle. La seule différence est qu’il y a un cadre orange dans lequel on retrouve « Mes topos ».

Si l’itinéraire n’était pas renseigné dans « Mes topos », on peut quand même ajouter un itinéraire comme avant, soit en zoomant sur la carte. Dans ce cas, une liste d’itinéraires apparaît, comme on le voit sur le screen que tu as envoyé.
Si on ne zoome pas sur la carte, on peut rentrer le nom de l’itinéraire.

Dans le cas où l’on est hors réseau et que l’on n’a pas enregistré notre itinéraire dans « Mes Topos », on peut quand même préenregistrer la sortie en lui attribuant un titre provisoire.

Si on choisit un titre provisoire, il n’y aura pas d’autres informations à renseigner. La synchronisation se fera au moment où l’on sera reconnecté et où l’on aura choisi l’itinéraire correspondant.