🐦 Politique de confidentialité
Pioudex · dernière mise à jour : 2 septembre 2026
Catalogue embarqué Position à la maille du département Aucun traceur
Cette page décrit ce que Pioudex mesure, ce qu'elle garde, ce qui sort du téléphone, vers qui, et ce que tu peux exiger. Elle est écrite à partir du code de l'app tel qu'il est à la date ci-dessus. Quand une garantie a une limite, la limite est écrite avec elle.
1. Qui est responsable
Le responsable du traitement est Pierrick Coulon, entrepreneur individuel établi en France, éditeur de Pioudex. Contact : coulonpierrick@gmail.com. Le traitement relève du Règlement général sur la protection des données (RGPD).
2. Les destinations réseau
Les destinations réseau de l'app sont les suivantes, et chacune est décrite plus bas :
- le service d'identification : la photo, et les prises audio quand le modèle sonore embarqué tombe en panne ;
- la sauvegarde en ligne de ta collection ;
- les rapports de plantage ;
- le composant d'abonnement, joint dès le lancement, que tu sois abonné ou non.
L'identification au son s'exécute sur le téléphone, le modèle étant embarqué dans l'app. En cas de panne de ce modèle, les enregistrements de la session (une à trois prises) sont envoyés au service d'identification, avec le code de département et le mois.
3. Ce qui est enregistré sur le téléphone
Tout ce que l'app écrit elle-même va dans son dossier de support, sous les noms qui suivent.
- Le journal du dex (
journal_captures.json) : pour chaque espèce débloquée, un identifiant, le nom scientifique, le code de département, le geste employé (son ou photo), le palier de confiance (certain ou probable), la date, et le lien vers la prise conservée. - Les prises (dossier
prises/) : les photos et les enregistrements sonores que tu choisis de garder. - Le département retenu (
departement.json), un fichier qui ne contient que ce code. - Le nombre de photos identifiées dans la journée
(
quota_photo.json), qui sert au quota de la version gratuite. Il est compté en local et n'est jamais synchronisé. - Le réglage des notifications d'événements
(
notifications_evenements.json), et le compte des ouvertures de l'app qui sert à proposer ce réglage une seule fois, à la deuxième ouverture (proposition_notifications.json). - Le fait que la prise en main a été vue
(
onboarding.json). - Le format des compteurs, fraction ou pourcentage
(
affichage.json). - Une copie du catalogue et du modèle sonore embarqués dans l'app
(
catalogue.sqlite,perch_elague.tflite, chacun avec son empreinte) : la base et l'interpréteur lisent un fichier, pas une ressource de l'app.
Dans le dossier temporaire, que le système balaie : l'enregistrement en cours avant son identification, la photo préparée pour l'identification, et la vue recadrée quand tu resserres le cadre sur l'oiseau.
Les composants tiers écrivent aussi pour eux-mêmes : la session de la sauvegarde (le jeton de connexion à ton compte, dans les préférences de l'app) ; l'identifiant anonyme et l'état de l'abonnement mis en cache par le composant d'abonnement (point 10) ; l'identifiant d'installation du composant de rapports de plantage (point 9) ; et, si tu relies un compte Google, la session Google dans le trousseau du téléphone.
Le journal du dex n'ajoute que des lignes : il n'a pas de geste de suppression unitaire. Ce qui est sur le téléphone disparaît avec la désinstallation de l'app, et les prises peuvent être effacées avant cela (voir le point 12).
4. La position
Pioudex est un jeu de collection départemental : la position sert à savoir dans quel département tu te trouves, et à quel point une espèce y est rare.
- La permission de localisation n'est demandée qu'au moment où tu fais le geste, pendant la prise en main, jamais au lancement.
- Rien de plus fin que le code de département n'est enregistré, ni sur le téléphone, ni en ligne. Les coordonnées relevées vivent en mémoire le temps d'être converties en code de département.
- La commune est parfois affichée à l'écran. Elle est résolue hors ligne, contre la table des communes embarquée dans l'app, et n'est enregistrée nulle part.
- La base en ligne ne comporte aucune colonne de latitude ou de longitude.
La précision de la mesure n'est pas la même sur les deux systèmes. Sur iOS, l'app demande une position précise. Sur Android, elle ne déclare que la localisation approximative, ce qui plafonne la précision au niveau du système. Dans les deux cas, ce qui est conservé s'arrête au département.
5. Les photos et les sons
Ce qui est écrit sur le téléphone
Les fichiers image conservés dans l'app sont dépouillés de leurs métadonnées avant d'être écrits : les blocs EXIF et les commentaires sont retirés des JPEG, les blocs de texte et d'EXIF sont retirés des PNG.
Une photo prise dans ta galerie
Si la photo d'origine porte des coordonnées GPS, elles sont lues localement, converties en code de département contre les contours embarqués dans l'app, puis abandonnées. Ni la latitude ni la longitude ne sont écrites, ni envoyées. La copie qui part au service d'identification est celle qui a déjà été vidée de ses métadonnées.
Une photo prise avec l'appareil
Sur ce chemin, le fichier envoyé au service d'identification est celui que produit le sélecteur du système, qui le ré-encode à ses propres dimensions. Pioudex ne garantit pas que ce fichier soit dépourvu de métadonnées. Le dépouillement explicite décrit plus haut intervient plus tard, au moment où la photo est conservée : le fichier gardé sur le téléphone, lui, est bien nettoyé.
Les sons
Les enregistrements sonores sont écrits sur le téléphone et ne montent jamais dans la sauvegarde : elle ne porte que les photos, et le dépôt en ligne n'accepte que des formats image. Ils peuvent en revanche partir au service d'identification, dans le seul cas décrit au point 6 : une panne du modèle embarqué. Aucune purge automatique n'efface les prises : elles restent jusqu'à ce que tu les effaces ou que tu désinstalles l'app.
6. L'identification par la photo
L'identification au son s'exécute sur le téléphone. Elle n'émet aucune requête tant que le modèle embarqué répond ; s'il tombe en panne, les enregistrements de la session partent au service d'identification, comme le fait une photo. L'identification par la photo appelle un service hébergé sur Google Cloud Run. La requête ne contient que quatre choses :
- le fichier à identifier ;
- le code de département ;
- le mois de la prise : le jour est forcé au premier du mois ;
- un jeton partagé, quand il est configuré. Il sert à empêcher n'importe qui d'utiliser le service aux frais du projet. Il n'identifie personne et ne dépend pas de ton compte.
Aucune coordonnée n'est transmise.
Côté service, les fichiers sont lus en mémoire et ne sont pas écrits sur disque. Une ligne de journal technique est produite pour suivre la calibration du modèle : le mode, un identifiant de requête tiré au hasard, le code de département, le mois, les scores obtenus, le temps de calcul et les cinq premières hypothèses. Elle ne contient ni identifiant d'utilisateur, ni position plus fine que le département.
Deux précisions que le code ne peut pas garantir à lui seul. D'une part, l'interface du service sait accepter une latitude et une longitude : l'app n'en envoie aucune, mais l'API en accepterait. D'autre part, comme pour tout service joint par Internet, l'hébergeur voit l'adresse IP qui l'appelle, au niveau du transport. C'est vrai également pour la sauvegarde et pour les rapports de plantage.
7. La sauvegarde en ligne
La sauvegarde recopie ta collection sur un serveur, pour que tu la retrouves si tu changes de téléphone. Elle est hébergée chez Supabase, région Paris.
Ce qui monte
- Une ligne par espèce débloquée, avec exactement : un identifiant généré par l'appareil, l'identifiant de ton compte, le nom scientifique, le code de département, le geste (son ou photo), le palier de confiance, la date de la capture, la référence de la prise et la date d'écriture.
- Les photos conservées, dans un dépôt privé, rangées sous l'identifiant de ton compte.
Ce qui ne monte pas
- Les enregistrements sonores.
- Toute position plus fine que le département.
- Tes statistiques, ton niveau, ton expérience et tes badges : ils sont recalculés sur le téléphone à partir du journal, le serveur n'en porte aucun.
L'accès est cloisonné par ligne et par dossier : le serveur n'autorise la lecture et l'écriture que sur les lignes et les fichiers rattachés à ton compte. Aucune règle de modification ni de suppression n'existe sur les lignes du journal, qui ne fait qu'ajouter ; la suppression complète est décrite au point 12.
L'app n'offre aucun moyen de désactiver cette sauvegarde. Il n'y a pas d'interrupteur : le compte se crée tout seul et la synchronisation suit.
8. Le compte
Le compte se crée sans écran et sans geste, de façon anonyme, à la première synchronisation possible. Il ne contient qu'un identifiant aléatoire, plus les lignes du journal et les photos qui s'y rattachent. Aucun écran de l'app ne le demande, et il n'est obligatoire pour rien : l'app est entière sans lui.
Tu peux relier cette sauvegarde à un compte Apple ou Google, depuis Profil, puis Réglages, puis la section Sauvegarde. C'est facultatif, et c'est ce qui te permet de retrouver ta collection sur un autre téléphone.
- Pioudex ne voit aucun mot de passe : le flux est celui d'Apple ou de Google.
- Le rattachement fait entrer une adresse e-mail dans la base des comptes : c'est ce que le service d'authentification demande pour créer un compte. Apple permet de la masquer derrière son relais privé. Ton nom n'est pas demandé, et cette adresse n'est affichée nulle part dans l'app : l'écran ne nomme que la porte employée, ton compte Apple ou ton compte Google.
- Quand ta sauvegarde était anonyme, elle est convertie et l'identifiant reste le même : les captures survivent. Un cas à part : si ce compte Apple ou Google porte déjà une sauvegarde Pioudex, l'app efface d'abord la sauvegarde anonyme, photos puis compte, puis bascule sur la sauvegarde existante. Le journal du téléphone n'a rien perdu : la synchronisation suivante le remonte entier sous ce compte. Si cet effacement échoue, la bascule a lieu quand même et les lignes anonymes restent sur le serveur sans pouvoir être rattachées ; écris à l'adresse du point 18 et nous les supprimerons.
- Se déconnecter ne touche que la session de l'appareil. La sauvegarde en ligne reste entière, et la synchronisation repart ensuite sur un compte anonyme neuf.
9. Les rapports de plantage
Les rapports techniques partent vers Sentry (projet en région Union européenne), pour corriger les pannes. Le composant est actif dès le lancement : à chaque ouverture de l'app, il signale le début et la fin de la session, ce qui compte les sessions avec et sans plantage par version ; une erreur ou un plantage envoie un rapport ; une mesure de performance sur cinq est échantillonnée.
- Aucune capture d'écran n'est jointe, et aucune hiérarchie de vues non plus : les deux options sont coupées explicitement dans le code, pour que la garantie ne dépende pas d'une valeur par défaut.
- Le code de Pioudex n'attache aux rapports ni ton compte, ni un identifiant qu'il connaît, ni fil d'Ariane, ni aucune donnée collectée par l'app. Le composant, lui, attache à chaque rapport et à chaque session un identifiant d'installation : un nombre tiré au hasard sur l'appareil à la première ouverture, écrit dans le cache de l'app et propre à Sentry. Il ne correspond ni à ton compte Pioudex, ni à ton compte Apple ou Google, ni à l'identifiant de l'appareil, et il disparaît avec la désinstallation. Sentry l'affiche comme « utilisateur » pour compter les installations touchées par une panne.
- Un rapport contient la trace technique et le contexte que le composant collecte par défaut : le modèle de l'appareil, le nom et la version du système, la version de l'app, la langue et le fuseau horaire, l'orientation et la taille de l'écran, la mémoire totale et disponible, une empreinte calculée à partir de l'identifiant fournisseur de l'appareil, de son modèle et de l'identifiant de l'app, et les repères que le composant pose de lui-même : passage en arrière-plan et retour, alerte de mémoire basse, changement de connexion réseau (Wi-Fi, cellulaire, aucune). Cette liste est lue dans les composants tels qu'ils sont à la date de cette page.
- Il n'y a pas d'interrupteur dans l'app pour ces rapports.
10. L'abonnement Pioudex Plus
L'achat et le paiement sont gérés entièrement par l'App Store ou Google Play : Pioudex ne voit ni numéro de carte, ni coordonnées bancaires. L'état de l'abonnement, actif ou non, est vérifié par RevenueCat à partir de ce que la boutique délivre.
Ce composant se configure dès le lancement de l'app, pour tout utilisateur, abonné ou non : l'onglet Dex et le Profil, montés au démarrage, lui demandent si Plus est actif ; la carte et l'identification photo le font aussi. Il génère son propre identifiant anonyme, le met en cache sur le téléphone et l'envoie avec chaque requête, ainsi que l'identifiant de l'app, le modèle de l'appareil, la version du système et de l'app, les langues préférées du téléphone (trois au plus), le pays de la boutique et, sur iOS, l'identifiant fournisseur de l'appareil, celui que le système attribue à l'éditeur pour cet appareil. Le reçu de la boutique lui est envoyé à l'achat, à la restauration et quand la boutique signale une transaction, renouvellement compris.
Aucun identifiant Pioudex ne lui est transmis : la fonction qui le ferait existe dans le code et n'est appelée nulle part. Aucune espèce, aucune capture, aucune photo, aucun son et aucune position ne lui sont envoyés. Si cela change, cette page sera mise à jour pour dire quel identifiant lui est passé.
11. Les notifications
Les notifications de Pioudex sont locales, exclusivement : elles sont programmées et déclenchées par le téléphone. Il n'y a ni serveur de notifications, ni jeton d'appareil. La permission système n'est demandée qu'au moment où tu actives le réglage.
12. Effacer
La sauvegarde en ligne
Profil, puis Réglages, puis la section Sauvegarde, puis Supprimer, avec une confirmation. Ce bouton n'apparaît qu'une fois la sauvegarde reliée à un compte Apple ou Google : une sauvegarde restée anonyme n'est joignable ni par l'app ni par courriel, faute d'identité qui permette de la retrouver. La désinstallation est alors le seul geste possible, et elle la laisse mourir sur place. L'app efface d'abord les photos du dépôt, puis supprime le compte lui-même, ce qui emporte en cascade toutes les lignes du journal en ligne.
Ces gestes ne touchent à rien sur le téléphone. Ni le dex, ni le journal, ni les prises. Ta collection reste, et une sauvegarde anonyme neuve reprend ensuite. La marche à suivre détaillée est sur la page Supprimer mon compte.
Ce qui est sur le téléphone
- Libérer la place, dans les Réglages, efface toutes les prises, photos et sons, sur le téléphone et dans la sauvegarde en ligne. Le dex ne bouge pas.
- Désinstaller l'app supprime tout ce qui est local : le journal, les prises et les réglages.
13. Les services qui interviennent
| Service | Pourquoi | Ce qu'il reçoit |
|---|---|---|
| Google Cloud Run | Identification par la photo, et au son en repli | La photo, ou les prises audio en repli ; le code de département ; le mois |
| Supabase (Paris) | Sauvegarde de la collection | Le journal, les photos conservées, l'adresse e-mail si tu relies un compte |
| Sentry (UE) | Rapports de plantage, sessions | La trace, le contexte technique, l'identifiant d'installation |
| RevenueCat | État de l'abonnement, dès le lancement | Son identifiant anonyme, l'identifiant de l'app et de l'appareil, le reçu de la boutique |
| Apple, Google | Connexion facultative, paiement | Ce que leurs propres flux traitent |
Il n'y a ni publicité, ni traceur publicitaire, ni mesure d'audience, ni revente de données. Aucun composant d'analytique n'est présent dans l'app. Les polices de caractères sont embarquées, pour qu'aucun affichage n'aille les chercher ailleurs, et le catalogue est local.
14. Bases légales et durées
- Identification, dex, sauvegarde : exécution du service que tu as demandé en installant l'app, dans les termes des conditions d'utilisation.
- Rapports de plantage : intérêt légitime à corriger les pannes.
- Abonnement, et la vérification de son état pour tout utilisateur : exécution du contrat d'abonnement et du service.
- Durées : les données locales vivent tant que l'app est installée, et les prises tant que tu ne les effaces pas. Les données en ligne vivent tant que la sauvegarde existe : rien ne les efface automatiquement, et la suppression du compte les emporte immédiatement.
15. Tes droits, et ce que l'app permet
Le RGPD te donne des droits d'accès, de rectification, d'effacement, de limitation, d'opposition et de portabilité. Voici où chacun se trouve, sans arrondir les angles.
| Droit | Dans l'app |
|---|---|
| Effacement en ligne | Oui, sauvegarde reliée : Réglages, Sauvegarde, Supprimer |
| Effacement local | Partiel : Libérer la place efface les prises ; la désinstallation efface le reste |
| Retrait de l'appareil | Oui : Se déconnecter |
| Accès, rectification | Aucun écran : par e-mail |
| Portabilité, export | L'app ne propose aucun export : par e-mail |
| Opposition à la sauvegarde | Aucun réglage ne permet de la désactiver |
Pour les droits qui ne passent pas par un écran, écris à coulonpierrick@gmail.com : la réponse est due dans le mois. Si ta sauvegarde est reliée à un compte Apple ou Google, écris depuis l'adresse de ce compte, c'est le seul moyen de la retrouver.
16. Réclamation
Si une réponse ne te satisfait pas, tu peux saisir la Commission nationale de l'informatique et des libertés (CNIL), cnil.fr.
17. Modifications
Cette page porte sa date de mise à jour en tête. Toute évolution de ce qui est collecté y sera reportée avant d'être mise en service.
18. Contact
coulonpierrick@gmail.com, et la page support.