Politique de confidentialité
1. Préambule
La présente politique de confidentialité (ci-après « la Politique ») décrit la manière dont l’application KCalories (ci-après « l’Application ») collecte, utilise, conserve, partage et protège vos données à caractère personnel, conformément au Règlement général sur la protection des données (Règlement UE 2016/679, ci-après « RGPD ») et à la loi française Informatique et Libertés (loi n° 78-17 du 6 janvier 1978 modifiée).
L’Application a vocation à vous accompagner dans le suivi de votre alimentation, de votre hydratation, de votre activité physique et de l’atteinte de vos objectifs nutritionnels et corporels. Pour fournir ces services, l’Application traite des données concernant la santé au sens de l’article 9 du RGPD : ces données bénéficient d’une protection renforcée et leur traitement repose toujours sur votre consentement explicite.
Nous nous engageons à traiter vos données de manière loyale, transparente, proportionnée et sécurisée, et à vous garantir l’exercice de l’ensemble des droits que vous tenez de la réglementation.
2. Responsable du traitement
Le responsable du traitement au sens de l’article 4-7 du RGPD est l’éditeur de l’Application, agissant à titre individuel. L’identité juridique complète et, le cas échéant, le numéro d’immatriculation (SIREN) du responsable, ainsi que l’adresse postale, sont disponibles sur demande à l’adresse de contact ci-dessous.
Pour toute question relative à la présente Politique, à l’exercice de vos droits, ou pour signaler une violation de données :
- Email contact privacy :
privacy@kcaloriesapp.com - Email support général :
support@kcaloriesapp.com
À ce stade, l’Application n’étant pas exploitée par une organisation tenue de désigner un Délégué à la Protection des Données (DPO) au sens de l’article 37 du RGPD, le responsable du traitement peut être contacté directement aux adresses ci-dessus. Toute évolution de cette obligation sera reflétée dans une version mise à jour de la présente Politique.
3. Périmètre et finalités du traitement
L’Application traite vos données personnelles uniquement pour les finalités décrites ci-après. Aucune donnée n’est utilisée à des fins de profilage publicitaire, de revente à des tiers, ou de prise de décision automatisée produisant des effets juridiques au sens de l’article 22 du RGPD.
| # | Finalité | Données concernées | Base légale RGPD |
|---|---|---|---|
| F1 | Authentification anonyme et identification stable de l’utilisateur sur ses appareils | Identifiant Firebase Anonymous, jeton AppCheck | Art. 6-1-b — exécution du contrat (fourniture du service) |
| F2 | Personnalisation de votre profil et calcul de vos objectifs nutritionnels (besoin énergétique, macros) | Sexe, âge, taille, poids, niveau d’activité, objectif de poids, mode alimentaire | Art. 6-1-b et Art. 9-2-a — consentement explicite (donnée de santé) |
| F3 | Suivi alimentaire quotidien : repas, aliments, calories, macronutriments, micronutriments, hydratation, activité | Historique des repas, aliments scannés, photos d’aliments (si l’utilisateur les fournit), entrées d’hydratation, comptage de pas | Art. 6-1-b et Art. 9-2-a — consentement explicite (donnée de santé) |
| F4 | Synchronisation optionnelle avec Apple HealthKit | Pas, calories actives, poids, activité (lecture/écriture selon vos autorisations) | Art. 6-1-a et Art. 9-2-a — consentement explicite via le système d’autorisations iOS |
| F5 | Notifications de rappel, de série (« streak »), résumés hebdomadaires, alertes contextuelles | Préférences de notification, jeton FCM, fuseau horaire, langue | Art. 6-1-a — consentement (autorisation système iOS) |
| F6 | Fonctionnalités sociales optionnelles : amis, classement, défis, fil d’activité, listes de courses partagées | Pseudonyme affiché, code ami, identifiants des amis, événements d’activité, paramètres de visibilité | Art. 6-1-a — consentement (chaque action est volontaire) |
| F7 | Découverte d’amis par carnet d’adresses (optionnelle) — les numéros de téléphone ne sont jamais transmis en clair : seul un condensat SHA-256 calculé localement est envoyé pour comparaison | Hash SHA-256 des numéros de téléphone, propre hash de l’utilisateur stocké côté serveur | Art. 6-1-a — consentement explicite |
| F8 | Sécurité de l’Application : prévention de la fraude, vérification d’authenticité (AppCheck), limitation du débit | Jeton AppCheck, en-têtes techniques de requête, journaux serveur | Art. 6-1-f — intérêt légitime (sécurité) |
| F9 | Suivi des incidents techniques et amélioration de la stabilité | Rapports de crash anonymisés, fil d’ariane technique, version de l’Application, modèle d’appareil, version d’iOS | Art. 6-1-f — intérêt légitime (qualité du produit) |
| F10 | Mesure d’audience interne et compréhension de l’usage des fonctionnalités | Événements anonymisés ou pseudonymisés (action, horodatage, écran) | Art. 6-1-f — intérêt légitime (amélioration produit) ; opt-out possible |
| F11 | Support utilisateur : traitement de vos demandes via le formulaire intégré | Message libre, version d’app, identifiant utilisateur haché (jamais l’UID brut) | Art. 6-1-b — exécution du contrat |
| F12 | Recherche d’aliments par code-barres (Open Food Facts) | Code-barres scanné, en-tête User-Agent | Art. 6-1-f — intérêt légitime (consultation d’une base ouverte) |
4. Catégories de données traitées en détail
4.1 Données d’identification et de profil
- Identifiant utilisateur Firebase (anonyme par défaut).
- Pseudonyme (« display name ») et photo de profil (avatar), tous deux optionnels.
- Code ami unique généré côté serveur, partageable.
- Empreinte SHA-256 de l’identifiant utilisateur, utilisée exclusivement à des fins de support pour permettre une recherche sans exposition de l’identifiant brut.
4.2 Données concernant la santé (article 9 RGPD)
L’Application traite les catégories particulières suivantes, qui bénéficient d’un niveau de protection renforcé :
- Mesures corporelles : poids actuel et historique, taille, âge, sexe.
- Objectifs et mesures dérivées : objectif calorique journalier, objectifs en macronutriments, dépense énergétique estimée (TDEE), objectif de poids cible.
- Suivi alimentaire : repas enregistrés, quantités, types d’aliments, valeurs nutritionnelles dérivées (calories, protéines, glucides, lipides, micronutriments lorsque disponibles).
- Hydratation : volume d’eau consommé.
- Activité physique : nombre de pas, calories actives (si la synchronisation HealthKit est activée par l’utilisateur).
- Mode alimentaire : régime déclaré (omnivore, végétarien, végétalien, etc.).
- Photos de repas : si l’utilisateur choisit d’en ajouter.
Le traitement de ces données ne repose jamais sur autre chose que votre consentement explicite (article 9-2-a du RGPD), matérialisé par votre acceptation de la présente Politique et par les choix granulaires que vous opérez dans l’Application (activer ou non HealthKit, soumettre ou non une photo, etc.).
4.3 Données techniques et identifiants persistants
- Jeton Firebase Cloud Messaging (FCM) pour la délivrance des notifications push (uniquement si vous accordez l’autorisation).
- Métadonnées d’appareil : modèle, version d’iOS, identifiant local d’appareil utilisé pour différencier vos installations sans servir d’identifiant publicitaire (l’IDFA n’est pas collecté).
- Fuseau horaire, langue et préférences de thème.
- Préférences de notifications (catégories activées, créneaux horaires).
4.4 Données comportementales et techniques
- Évènements d’usage anonymisés ou pseudonymisés (par exemple : ouverture d’un écran, ajout d’un repas, scan d’un code-barres).
- Historique local des codes-barres scannés (stocké uniquement sur l’appareil, sauf agrégation statistique côté serveur).
- Requêtes de recherche textuelle dans la base d’aliments (utilisées en agrégat pour mesurer la qualité de la base).
- Journaux d’erreurs techniques et rapports de plantage transmis à Firebase Crashlytics.
4.5 Données sociales (lorsque vous activez ces fonctionnalités)
- Liste d’amis : identifiants, statut de la relation, date d’ajout.
- Demandes d’amis en attente.
- Empreinte SHA-256 des numéros de téléphone de votre carnet d’adresses (calculée localement, transmise pour comparaison, jamais stockée en clair) — uniquement si vous activez la découverte par contacts.
- Fil d’activité agrégé (actions visibles selon vos paramètres de visibilité).
- Défis (création, participation, classements).
- Listes de courses partagées (les destinataires des listes voient leur contenu, par construction de la fonctionnalité).
- Paramètres de visibilité : qui peut voir votre journal, votre poids, vos statistiques.
4.6 Photos
- Avatar : si vous l’ajoutez, la photo est stockée dans Firebase Storage et associée à votre identifiant utilisateur.
- Photos de repas : utilisées localement sur votre appareil.
- Photos de courses : si vous en ajoutez, elles sont stockées localement et, si vous partagez la liste correspondante, dans Firestore.
Aucun traitement biométrique au sens de l’article 9 du RGPD n’est appliqué à ces photos. Aucune reconnaissance faciale ni identification biométrique n’est mise en œuvre.
4.7 Données que nous ne collectons pas
À titre de transparence, nous précisons que l’Application ne collecte pas :
- de données de géolocalisation précises ou en arrière-plan ;
- d’identifiant publicitaire (IDFA) ou de fingerprint à des fins publicitaires ;
- de numéros de téléphone en clair (uniquement leur condensat, et uniquement si vous activez la découverte par contacts) ;
- de données génétiques, biométriques d’identification, d’opinion politique ou philosophique, religieuses, syndicales ou relatives à la vie sexuelle ou à l’orientation sexuelle au sens de l’article 9 du RGPD.
5. Bases légales du traitement
Conformément à l’article 6 et à l’article 9 du RGPD, chaque traitement opéré par l’Application repose sur l’une des bases légales suivantes :
- Consentement explicite (Art. 6-1-a et Art. 9-2-a) : il s’agit de la base principale pour les données concernant la santé, la synchronisation HealthKit, les notifications push, les fonctionnalités sociales et le partage de listes.
- Exécution du contrat (Art. 6-1-b) : pour ce qui est strictement nécessaire à la fourniture du service de suivi (création du compte technique, sauvegarde locale du suivi).
- Intérêt légitime (Art. 6-1-f) : pour la sécurité technique de l’Application (AppCheck, prévention d’abus), la stabilité (rapports de crash anonymisés) et la mesure d’audience pseudonymisée. Une analyse de mise en balance (« balancing test ») est tenue à disposition sur demande.
Vous pouvez retirer votre consentement à tout moment, sans que cela affecte la licéité des traitements antérieurs (article 7-3 du RGPD). Le retrait s’opère soit via les paramètres de l’Application (notifications, HealthKit, fonctionnalités sociales), soit en supprimant votre compte.
6. Destinataires et sous-traitants
Vos données peuvent être transmises aux destinataires suivants, dans la stricte limite des finalités décrites :
| Destinataire | Rôle | Finalités | Pays de stockage | Lien vers leurs engagements |
|---|---|---|---|---|
| Google LLC / Firebase | Sous-traitant | Authentification, base de données (Firestore), stockage de fichiers (Storage), notifications (FCM), suivi des incidents (Crashlytics), validation d’authenticité (AppCheck) | États-Unis (Google Cloud) | https://firebase.google.com/terms/data-processing-terms |
| Apple Inc. | Co-responsable / sous-traitant selon les services | HealthKit (les données de santé restent sur l’appareil), Push Apple (APNs en relais de FCM) | États-Unis | https://www.apple.com/legal/privacy/ |
| Open Food Facts | Source publique de données | Recherche de produits par code-barres (consultation d’une base ouverte) | France / Union européenne | https://world.openfoodfacts.org/ |
Engagement clé : nous ne vendons ni ne louons vos données à aucun tiers. Aucun partenaire publicitaire, aucun courtier de données, aucun annonceur n’a accès à vos données.
Note : si de nouveaux sous-traitants devaient intervenir, la présente section serait mise à jour en conséquence avant toute activation effective.
7. Transferts hors Union européenne
Plusieurs sous-traitants étant établis aux États-Unis (notamment Google/Firebase et Apple), vos données peuvent être transférées hors de l’Espace économique européen.
Ces transferts sont encadrés par :
- les clauses contractuelles types (CCT) adoptées par la Commission européenne (décision d’exécution 2021/914) ;
- le Data Privacy Framework (UE-US), lorsque le sous-traitant y est certifié ;
- les mesures techniques et organisationnelles complémentaires mises en place par les sous-traitants (chiffrement en transit, chiffrement au repos, contrôles d’accès stricts).
Vous pouvez nous contacter à privacy@kcaloriesapp.com pour obtenir copie des garanties applicables au transfert spécifique de vos données.
8. Durée de conservation
| Catégorie de données | Durée de conservation |
|---|---|
| Données de profil, suivi alimentaire, poids, hydratation, activité | Tant que votre compte est actif. Suppression intégrale sur demande de suppression du compte (voir section 10). |
| Photos d’avatar, photos de repas, photos de courses | Idem, jusqu’à suppression explicite par vous ou suppression du compte. |
| Cache de données alimentaires (par code-barres) | Trente (30) jours côté serveur, renouvelable lors d’une nouvelle requête. |
| Historique local de scans | Conservé localement sur votre appareil. Vous pouvez le purger à tout moment depuis les paramètres. |
| Données en attente de synchronisation (modifications faites hors ligne : repas, hydratation, poids, mensurations, activité, profil) | Stockées localement sur votre appareil, chiffrées par le système iOS. Supprimées automatiquement une fois la synchronisation réussie, et effacées lors de la suppression de votre compte ou de votre déconnexion. |
| Entrées supprimées (repas, pesées, mensurations) | Lors d’une suppression, l’entrée est marquée comme supprimée côté serveur (sans purge immédiate) afin de garantir la cohérence de vos données, conservée au maximum trente (30) jours, puis définitivement supprimée. |
| Données sociales (amis, défis, fil d’activité) | Tant que la relation est active ; suppression sur demande ou lors du retrait d’une fonctionnalité. |
| Empreintes SHA-256 des contacts | Non conservées : utilisées en flux pour la comparaison, puis effacées. Votre propre empreinte est conservée tant que vous laissez la fonctionnalité active. |
| Rapports de plantage (Crashlytics) | Quatre-vingt-dix (90) jours par défaut. |
| Évènements d’audience pseudonymisés | Quatre-vingt-dix (90) jours pour les évènements unitaires ; agrégats statistiques conservés sans donnée personnelle. |
| Demandes de support | Conservées pour la durée nécessaire au traitement de votre demande, plus la durée légale de conservation des éléments de preuve (généralement trois ans). |
À l’issue de ces délais, les données sont soit supprimées définitivement, soit anonymisées de manière irréversible.
9. Sécurité
Nous mettons en œuvre des mesures techniques et organisationnelles appropriées pour protéger vos données contre la destruction accidentelle ou illicite, la perte, l’altération, la divulgation ou l’accès non autorisés :
- Chiffrement en transit : toutes les communications avec nos serveurs et nos sous-traitants utilisent TLS 1.2 ou supérieur.
- Chiffrement au repos : les données stockées dans Firebase / Google Cloud bénéficient d’un chiffrement AES-256 par défaut. Les jetons sensibles sur l’appareil sont stockés dans le Keychain iOS, lui-même chiffré par le système d’exploitation.
- Authenticité de l’Application : Firebase AppCheck vérifie en continu que les requêtes proviennent d’une instance légitime de l’Application.
- Cloisonnement des accès : les règles de sécurité Firestore restreignent l’accès aux données utilisateur à leur seul propriétaire ; les Cloud Functions backend appliquent les vérifications côté serveur.
- Aucune authentification par mot de passe utilisateur dans la version actuelle (authentification anonyme délégué à Firebase) : il n’y a donc pas de stockage de mot de passe.
- Hachage à sens unique des numéros de téléphone (SHA-256) lorsque vous utilisez la découverte par contacts.
- Surveillance des incidents : suivi des erreurs et notifications automatiques en cas d’anomalie.
En cas de violation de données à caractère personnel susceptible d’engendrer un risque pour vos droits et libertés, nous nous engageons à notifier la CNIL dans les soixante-douze (72) heures conformément à l’article 33 du RGPD, et à vous en informer si l’article 34 le requiert.
10. Vos droits
Conformément aux articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :
- Droit d’accès (Art. 15) : obtenir la confirmation que des données vous concernant sont traitées et en obtenir copie.
- Droit de rectification (Art. 16) : corriger des données inexactes ou incomplètes.
- Droit à l’effacement (Art. 17, « droit à l’oubli ») : obtenir l’effacement de vos données dans les conditions prévues par le RGPD.
- Droit à la limitation (Art. 18) : demander la suspension temporaire d’un traitement.
- Droit à la portabilité (Art. 20) : récupérer vos données dans un format structuré, couramment utilisé et lisible par machine.
- Droit d’opposition (Art. 21) : vous opposer, pour des raisons tenant à votre situation particulière, à un traitement fondé sur l’intérêt légitime.
- Droit de retirer votre consentement (Art. 7-3) : à tout moment, sans que cela n’affecte la licéité des traitements antérieurs.
- Droit de définir des directives post-mortem sur le sort de vos données après votre décès, conformément à l’article 85 de la loi Informatique et Libertés.
Exercice de vos droits :
- Suppression de compte intégrée : depuis l’écran Réglages → Supprimer le compte. Cette action déclenche la suppression irréversible de l’ensemble de vos données personnelles dans nos systèmes (sous réserve des durées de conservation légales obligatoires).
- Désactivation granulaire : depuis les paramètres, vous pouvez désactiver à tout moment les notifications, la synchronisation HealthKit, les fonctionnalités sociales et la mesure d’audience.
- Demande écrite : pour tout autre droit, écrivez-nous à
privacy@kcaloriesapp.com. Nous vous répondrons dans un délai d’un (1) mois, prolongeable de deux (2) mois en cas de complexité ou de pluralité de demandes (Art. 12-3 du RGPD).
Réclamation auprès de la CNIL : si vous estimez que le traitement de vos données ne respecte pas la réglementation, vous pouvez introduire une réclamation auprès de la Commission Nationale de l’Informatique et des Libertés (CNIL) :
3 Place de Fontenoy — TSA 80715 — 75334 Paris Cedex 07 https://www.cnil.fr
11. Mineurs
L’Application n’est pas destinée aux personnes âgées de moins de seize (16) ans. Aucune inscription n’est acceptée pour des utilisateurs en deçà de cet âge sans le consentement explicite des titulaires de la responsabilité parentale, conformément à l’article 8 du RGPD.
Si vous êtes parent ou tuteur et que vous constatez qu’un mineur sous votre responsabilité utilise l’Application sans votre consentement, contactez-nous à privacy@kcaloriesapp.com afin que nous puissions procéder à la suppression du compte.
12. Cookies et identifiants persistants
L’Application est une application mobile native et n’utilise pas de cookies au sens de la directive 2002/58/CE (« ePrivacy »). Elle utilise les mécanismes de stockage natifs iOS suivants :
- Trousseau (Keychain) : pour le stockage sécurisé du jeton d’authentification Firebase et du jeton FCM.
UserDefaults: pour les préférences utilisateur non sensibles (thème, langue, fuseau horaire, préférences de notifications, version acceptée de la présente Politique).- Stockage local de l’application : pour le suivi alimentaire hors ligne, y compris les données en attente de synchronisation (voir section 8 pour la durée de conservation).
- Cache d’images : pour les avatars, images de repas et images de produits.
Aucun de ces mécanismes ne sert à un traçage publicitaire.
13. Décisions automatisées et profilage
L’Application ne prend aucune décision exclusivement automatisée produisant des effets juridiques ou affectant significativement votre situation au sens de l’article 22 du RGPD.
Les calculs nutritionnels (besoin énergétique, objectifs en macronutriments) sont fournis à titre indicatif et de support, et ne se substituent en aucun cas à un avis médical. L’Application ne fournit pas de conseil médical et ne saurait remplacer la consultation d’un professionnel de santé qualifié.
14. Modifications de la présente Politique
Nous pouvons être amenés à modifier la présente Politique pour refléter une évolution réglementaire, l’ajout d’une fonctionnalité ou d’un sous-traitant, ou la prise en compte d’une recommandation de la CNIL.
En cas de modification substantielle, vous serez informé(e) à l’ouverture de l’Application, et un nouveau consentement vous sera demandé lorsque la nature des modifications le justifie. Les versions antérieures restent disponibles sur demande à privacy@kcaloriesapp.com.
La date de dernière mise à jour figure en tête de la présente Politique.
15. Téléchargement et conservation locale
À tout moment, vous pouvez télécharger la présente Politique au format PDF depuis l’écran qui l’affiche dans l’Application, afin d’en conserver une copie. Le PDF généré reflète exactement la version que vous avez sous les yeux, avec sa date de mise à jour et son numéro de version.
16. Contact
Pour toute question, demande d’exercice de droits ou réclamation préalable :
- Email privacy :
privacy@kcaloriesapp.com - Email support :
support@kcaloriesapp.com - Réclamation auprès de la CNIL : https://www.cnil.fr/fr/plaintes
Fin du document.