France Metro est une petite app dédiée aux transports parisiens. Conçue pour vous aider à vous déplacer — pas pour vous suivre. Voici exactement ce que l'application lit, où vont les données, et ce qui reste sur votre appareil. Sans petits caractères.
Position et termes de recherche — uniquement quand une fonctionnalité en a besoin, uniquement vers IDFM via notre proxy. Plus des pings d'usage et de plantage anonymes vers Firebase.
Données personnelles stockées
Aucune
Pas de comptes, pas de profils, pas de bases de données d'utilisateurs. Firebase conserve des agrégats anonymes — jamais d'enregistrements individuels.
Publicité / suivi
Aucun
Pas de demande d'IDFA, pas de pubs, pas de revente, pas de partage avec annonceurs. Le tracking est désactivé dans notre Privacy Manifest iOS.
Lié à votre identité
Rien
L'app n'a pas de connexion. Les événements Firebase utilisent un identifiant d'installation anonyme qui se réinitialise à la désinstallation.
Trajet des données
De votre téléphone à un itinéraire, en trois étapes.
Étape 1
Votre téléphone
position · requête
Étape 2
Notre Worker
+ clé secrète
Étape 3
IDFM (Paris)
Votre téléphone n'envoie que la requête. Le Cloudflare Worker que nous opérons ajoute la clé d'API IDFM (qui réside uniquement sur le Worker — jamais sur votre téléphone) et transmet la requête. IDFM répond, le Worker repasse la réponse, et votre téléphone affiche un itinéraire. Rien n'est stocké en chemin.
Ce qui est lu
Ce que l'app lit sur votre appareil.
Position précise avec autorisation
Quand vous appuyez sur « Utiliser ma position » ou ouvrez une fonctionnalité qui en a besoin (gare la plus proche, itinéraires depuis ici, prochains passages à proximité), l'application demande au système votre latitude et longitude. iOS et Android demandent toujours votre autorisation au préalable ; vous pouvez refuser ou révoquer dans vos réglages. Les coordonnées sont :
Envoyées à IDFM le temps d'une seule requête.
Transmises via notre Cloudflare Worker, qui ajoute les identifiants d'API et transmet. Le Worker n'enregistre ni ne stocke aucune coordonnée.
Non stockées par l'application sur votre appareil ni sur nos serveurs.
Non liées à un identifiant — pas de compte, pas d'identifiant d'appareil envoyé.
Requêtes de recherche
Quand vous cherchez une station, une adresse ou un lieu, le texte saisi est envoyé au géocodeur d'IDFM. La requête transite par le même Cloudflare Worker. Les recherches récentes sont sauvegardées uniquement sur votre appareil — effaçables à tout moment depuis l'application.
Lieux enregistrés & favoris
Les stations ou adresses que vous enregistrez (Domicile, Travail, favoris) sont stockées uniquement sur votre appareil, dans le stockage sécurisé du système (Keychain sur iOS, Keystore sur Android). Elles ne quittent jamais votre appareil.
Préférences de l'application
Thème (clair/sombre), langue (EN/FR/AR), et autres réglages sont stockés localement. Ils ne quittent jamais votre appareil.
Analytics & plantages
Pourquoi Firebase, et ce qu'il y a vraiment dedans.
Cette section explique exactement ce que Google Firebase fait dans l'application. Nous avons choisi les paramètres les plus conservateurs et désactivé toutes les fonctionnalités liées à la publicité — les drapeaux de consentement adStorage, adUserData, adPersonalizationSignals sont tous mis à refusé.
Pourquoi nous l'utilisons
Nous sommes un petit projet. Pour améliorer France Metro nous avons besoin de savoir deux choses : quelles fonctionnalités aident vraiment (pour concentrer notre travail sur ce qui compte) et quand l'app plante (pour trouver et corriger les bugs). C'est tout. Pas de profils publicitaires, pas de modèles comportementaux, rien qui soit vendu à des tiers.
Ce que collecte Firebase Analytics
Événements de l'appCompteurs agrégés du type « recherche ouverte » ou « itinéraire planifié ». Pas le contenu de vos requêtes, ni d'adresses, ni de destinations.
Signaux de sessionQuand l'app démarre, combien de temps elle est ouverte, l'écran sur lequel vous êtes. Pour repérer une fonctionnalité cassée ou inutilisée.
Contexte technique approximatifPays (depuis l'IP, puis l'IP est jetée), modèle d'appareil, version de l'OS, version de l'app, langue.
Identifiant d'installation Firebase anonymeIdentifiant aléatoire pour compter « 1 installation » au lieu de doubler. Se réinitialise à la désinstallation.
Ce que collecte Firebase Crashlytics
Traces de plantageQuand l'application plante réellement — pour voir quelle ligne de code a échoué et livrer un correctif.
Fil d'événements récentsPar exemple « l'utilisateur a ouvert le planificateur ». Jamais de contenu personnel.
Version d'appareil et d'OSCapturée au moment du plantage pour reproduire.
Ce qui est désactivé
Identifiant publicitaireIDFA / GAID jamais demandé. Sur iOS, on n'affiche délibérément pas de prompt ATT.
Signaux de personnalisation publicitaireLes trois drapeaux Firebase (adStorage, adUserData, adPersonalizationSignals) sont à refusé à chaque démarrage.
Identifiants utilisateurNous n'appelons jamais setUserId. Rien dans Firebase ne vous relie à une personne.
Événements de debug en productionLes analytics sont désactivées dans les builds de debug (kReleaseMode). Les clics dev ne polluent pas la prod.
Où vont les données
Les données Firebase sont traitées par Google sur ses serveurs (généralement UE/US) et soumises à la politique de confidentialité de Google et aux conditions de traitement Firebase. Google conserve les données analytics selon ses paramètres de rétention standards ; nous ne modifions pas ces valeurs par défaut.
Non collecté
Ce que nous ne faisons pas, délibérément.
Identifiants publicitairesPas d'IDFA, pas d'identifiant publicitaire Android. NSPrivacyTracking=false.
Comptes utilisateursPas d'email, mot de passe, login social, ou numéro de téléphone.
SDK de réseaux sociauxPas de Facebook, pas de Google Sign-In, pas de Twitter/X.
Vente de donnéesNous ne vendons, louons ni partageons aucune donnée à des fins marketing.
Données de paiementL'app est gratuite, aucun paiement traité.
Contacts, photos, micro, caméraCes autorisations ne sont jamais demandées.
Contenu de vos recherches dans les analyticsFirebase voit qu'« une recherche a eu lieu », pas l'adresse tapée.
Tiers
Par où passent les données.
Île-de-France Mobilités (IDFM)
IDFM est l'autorité organisatrice des transports parisiens et la source des données en temps réel que l'app affiche. Quand vous utilisez une fonctionnalité nécessitant des données live, vos coordonnées et/ou requêtes sont envoyées aux APIs PRIM et Instant System. Le traitement est régi par leur politique sur iledefrance-mobilites.fr.
Google Firebase
Nous utilisons Firebase Analytics et Crashlytics pour recevoir les événements anonymes et les rapports de plantage décrits ci-dessus. Google agit comme notre sous-traitant : nous configurons ce qui est collecté, Google le stocke et l'agrège. Toutes les fonctionnalités liées à la publicité de Firebase sont explicitement désactivées par nous. Voir la politique de Google et l'aperçu Firebase.
Cloudflare
Les requêtes vers IDFM transitent par un Cloudflare Worker que nous opérons (france-metro-idfm-proxy.mokhtarsayed72.workers.dev). Le rôle de Cloudflare est purement transport. Le Worker n'enregistre ni les corps de requête, ni les coordonnées, ni les termes de recherche. Voir la politique de Cloudflare.
OpenStreetMap
Si l'app affiche une carte, les tuiles sont chargées depuis OpenStreetMap ou un fournisseur communautaire. Votre IP est visible par ce fournisseur le temps de la requête (comme pour toute requête web). Nous n'envoyons aucun identifiant. Voir la politique OSM.
Stockage
Comment les données sont stockées.
Sur votre appareil : toutes les préférences, historiques et lieux enregistrés sont stockés localement. Les éléments sensibles utilisent Keychain (iOS) ou Keystore (Android) — chiffrés par l'OS.
Sur nos serveurs : rien de spécifique à un utilisateur. Pas de base de données contenant des données personnelles. Le Cloudflare Worker transmet en temps réel et ne conserve rien.
Sur les serveurs de Google (Firebase) : événements analytics anonymes et rapports de plantage tels que décrits dans Analytics, conservés selon la rétention standard Firebase.
Sauvegardes : sur Android nous définissons android:allowBackup="false" avec des dataExtractionRules strictes — les données sont exclues des sauvegardes cloud et du transfert d'appareil sauf consentement explicite.
Sécurité
Défense en profondeur.
HTTPS uniquement pour chaque requête. Cleartext désactivé (Android networkSecurityConfig, iOS App Transport Security).
Épinglage de certificat sur les hôtes IDFM et proxy pour détecter les attaques MITM.
Auto-protection à l'exécution (RASP) via FreeRAsp/Talsec — refuse de s'exécuter sur les appareils rootés/jailbreakés, avec débogueur ou Frida hook attaché, sur émulateurs, sur APK modifié, ou installé depuis un store non officiel.
Obfuscation du code (--obfuscate + --split-debug-info) et réduction des ressources sur les builds de release.
FLAG_SECURE sur Android bloque captures et enregistrements ; iOS effectue la redaction de snapshot nativement.
Isolation des secrets : la clé d'API IDFM réside uniquement sur le Cloudflare Worker, jamais dans l'APK/IPA.
Apple Privacy Manifest déclare que l'app ne traque pas, liste chaque type collecté, et précise qu'aucun n'est lié à l'identité.
Vos droits
Ce que vous contrôlez.
Comme nous ne stockons pas de données personnelles sur nos serveurs, la plupart des droits que vous auriez en vertu des lois de protection des données sont déjà exercés par défaut : il n'y a aucun profil de vous à accéder, corriger ou supprimer de notre côté. Vous pouvez néanmoins :
Accès & portabilité : consulter et exporter vos lieux enregistrés et votre historique depuis l'application à tout moment.
Effacement : désinstaller l'application — toutes les données locales partent avec elle. La désinstallation réinitialise aussi l'identifiant Firebase anonyme. Ou utilisez les contrôles « Effacer l'historique » / « Supprimer un lieu » dans l'app.
Retrait du consentement : révoquer l'autorisation de localisation dans les réglages OS — l'application continue à fonctionner sans les fonctionnalités live. Nous travaillons sur un interrupteur in-app pour aussi désactiver analytics et plantages ; en attendant, désinstaller est le moyen de se désengager complètement.
Opposition / Limitation / Réclamation : nous contacter, et le cas échéant déposer une plainte auprès de votre autorité locale (la CNIL en France).
EEE (RGPD) : la base légale du traitement de votre position et requêtes est votre consentement explicite (Art. 6(1)(a) RGPD), donné quand l'app demande l'autorisation. Les analytics anonymes et plantages reposent sur l'intérêt légitime (Art. 6(1)(f)) — améliorer le service et le maintenir stable — sans aucune activité publicitaire. Retirer le consentement ou s'opposer : nous écrire ou désinstaller l'app.
Californie (CCPA/CPRA) : nous ne vendons ni partageons aucune donnée personnelle. Pas d'obligation « Do Not Sell » car nous ne vendons rien. Vous conservez vos droits d'accès, suppression et non-discrimination.
Mineurs
Confidentialité des mineurs.
France Metro est une application grand public de transport, non destinée aux enfants de moins de 13 ans (ou moins de 16 ans là où la loi locale fixe un âge plus élevé). Nous ne collectons sciemment aucune donnée d'enfants. Si vous pensez qu'un enfant a utilisé l'app et souhaitez vérifier ce qui se trouve sur son appareil, voir « Effacement » ci-dessus — la désinstallation supprime tout.
Modifications
Modifications de cette politique.
Si nous ajoutons une fonctionnalité qui modifie significativement ce que l'app lit ou où vont les données (comptes, pubs, analytics étendues), nous :
Mettrons à jour cette page et incrémenterons la date d'effet en haut.
Mentionnerons le changement dans les notes de version.
Pour les changements substantiels, demanderons un consentement renouvelé là où la loi l'exige.
Les versions précédentes restent disponibles sur demande à l'adresse de contact ci-dessous.
Contact
Contact.
Pour toute question relative à la confidentialité, demande au titre du RGPD/CCPA, signalement de sécurité, ou autre sujet lié à cette politique, écrivez à :