← Retour à l'accueil

FAQ — PerfLog

Les questions les plus posées sur le fonctionnement, la confidentialité et la sauvegarde de PerfLog.

🔒 Confidentialité & données
Mes données restent-elles vraiment sur mon téléphone ?

Oui, par défaut. Toutes tes séances, programmes, mensurations et préférences sont stockées dans la base SQLite locale de l'app, dans le sandbox isolé chiffré par ton OS (Data Protection AES-256 sur iOS, File-Based Encryption sur Android 7+).

Aucune donnée ne quitte ton appareil tant que tu n'actives pas explicitement la Sauvegarde Cloud dans Paramètres → Cloud.

PerfLog utilise-t-il des trackers ou de l'analytique ?

Non, zéro. Pas de Firebase, pas de Crashlytics, pas de Sentry, pas de Mixpanel, pas de Google Analytics, pas de Meta Pixel. Aucune métrique d'usage ni rapport de crash n'est transmis.

Cette absence est vérifiée à chaque commit par deux scripts CI (check_no_tracking.dart + check_no_network_imports.dart) qui bloquent toute introduction accidentelle d'un tel SDK.

L'app demande-t-elle des permissions sensibles ?

Non. Aucune demande de géolocalisation, caméra, micro, photos, contacts, ou identifiant publicitaire (IDFA iOS / Advertising ID Android). Les seules permissions Android demandées :

  • INTERNET — requise pour la Sauvegarde Cloud (si activée)
  • POST_NOTIFICATIONS — pour les rappels de timer de repos
  • RECEIVE_BOOT_COMPLETED — pour reprogrammer les rappels après reboot
  • VIBRATE — feedback haptique fin de timer
  • USE_EXACT_ALARM — précision du timer de repos
☁️ Sauvegarde cloud
Comment fonctionne le chiffrement E2E de la sauvegarde ?

Quand tu actives la sauvegarde cloud, l'app dérive une clé de chiffrement à partir de ta passphrase via Argon2id (RFC 9106, paramètres t=3, m=64MB, p=4 — anti-GPU brute force).

Tes données sont chiffrées avec AES-256-GCM côté téléphone avant tout envoi. Notre hébergeur (Supabase, Frankfurt EU) ne voit qu'un blob opaque indéchiffrable.

Nous ne pouvons jamais lire tes données — la clé n'existe que sur ton appareil.

Que se passe-t-il si j'oublie ma passphrase ?

L'app génère pour toi un code de récupération de 12 mots BIP39 (standard Bitcoin, 256 bits d'entropie) au moment de l'activation cloud. Tu peux le voir à tout moment depuis Paramètres → Cloud → "Mon code de récupération".

Si tu oublies ta passphrase, ce code te permet de restaurer ton compte sur un nouvel appareil ou de re-déchiffrer ta sauvegarde.

⚠️ Si tu perds les deux (passphrase ET code de récupération) sans avoir noté tes 12 mots ailleurs, tes données cloud sont perdues définitivement — par design, nous n'avons aucun moyen de les récupérer.

Puis-je restaurer mes données sur un nouvel iPhone / Android ?

Oui, tant que tu as ton email + (ta passphrase OU ton code de récupération 12 mots).

Sur le nouvel appareil : Paramètres → Cloud → "J'ai déjà un compte — restaurer" → entrer l'email → code OTP par mail → passphrase ou code 12 mots → restauration en quelques secondes.

Combien de temps mes données restent-elles en ligne ?

Tant que tu utilises l'app. Si tu n'effectues aucune synchronisation pendant 24 mois consécutifs, ton compte cloud est automatiquement supprimé (minimisation RGPD Art. 5.1.e). Tu reçois 3 emails de notification avant : 60 jours, 30 jours, et 7 jours avant la purge.

Tu peux aussi activer l'option "Conservation prolongée" dans Cloud → Paramètres si tu veux éviter cette purge auto.

⚙️ Général
L'app fonctionne-t-elle hors-ligne ?

Oui, intégralement. Toutes les fonctionnalités principales (création de programme, log de séance, analyse historique, mensurations) fonctionnent sans connexion internet.

La connexion n'est requise que pour la Sauvegarde Cloud (si activée).

Que se passe-t-il si je désinstalle PerfLog ?

La base locale est supprimée avec l'app (comportement OS standard). Si tu n'as pas activé la sauvegarde cloud, tes données sont perdues.

Avant désinstallation, pense à utiliser Profil → Exporter mes données pour générer un fichier JSON portable que tu peux importer sur un nouveau device.

Mon téléphone est jailbreaké / rooté. Est-ce un problème ?

Sur un device compromis (jailbreak iOS ou root Android), un attaquant ayant l'accès root peut dumper la mémoire du processus PerfLog et y récupérer en clair les tokens, clés et passphrase pendant les sessions actives.

Cette limite est fondamentale à toute app crypto consumer — aucune app fitness sur le marché ne mitige ce scénario. PerfLog suppose un device non compromis. Si ce n'est pas ton cas, la confidentialité ne peut pas être pleinement garantie.

Puis-je exporter mes données pour les utiliser ailleurs ?

Oui, à tout moment. Profil → Exporter mes données → fichier JSON structuré contenant l'intégralité de tes séances, programmes, mensurations, records personnels.

C'est un droit fondamental RGPD (Art. 20 — droit à la portabilité). Le format est documenté et lisible par n'importe quel outil capable de parser du JSON.

Combien coûte PerfLog ?

PerfLog est gratuit. Pas d'abonnement, pas d'achats in-app, pas de publicité.

C'est un projet personnel non commercial de Vincent BERHOUET. Le coût d'hébergement (Supabase EU + GitHub Pages) est pris en charge personnellement.

🔧 Technique
Sur quelles versions iOS / Android PerfLog tourne-t-il ?

iOS 14+ (iPhone 6S et plus récent)
Android 5.0+ / API 21+ (la grande majorité des appareils en circulation depuis 2014)

Les fonctionnalités spécifiques Android 12+ (nouveau Splash Screen API) sont supportées si disponibles, fallback gracieux sinon.

Le code source est-il public ?

Le repo applicatif est privé pour l'instant. Les seuls artefacts publics sont les documents légaux hébergés ici (privacy policy + CGU) et cette FAQ.

Une partie de la doc technique (audit no-tracking, threat model) peut être partagée sur demande à contact@perflog.app.

Qui maintient PerfLog ?

Vincent BERHOUET (développeur indépendant solo). Joignable par email contact@perflog.app.

Le développement suit une cadence sprints, avec une priorité absolue à la qualité, la sécurité, et le respect du contrat privacy. Pas de roadmap publique pour l'instant — les évolutions répondent aux retours des bêta-testeurs.