Bati GitHub

Diese Datenschutzerklärung gibt es nur auf Englisch und Französisch. Unten steht die englische Fassung, sie ist maßgeblich. Die App selbst ist auf Deutsch verfügbar, von einer KI übersetzt und noch nicht von Muttersprachlern geprüft. Fragen beantworte ich gern auf Englisch oder Französisch: feedback.bati@proton.me

Esta política de privacidad solo existe en inglés y en francés. Debajo figura la versión en inglés, que es la que hace fe. La app está disponible en español, traducida por una IA y todavía sin revisar por hablantes nativos. Puede escribirme con cualquier pregunta, en inglés o en francés: feedback.bati@proton.me

Privacy Policy for Bati

Last updated: 20 September 2026

Bati is an offline-first training app. It has no account, no server of its own, and no analytics. This page exists because both app stores require a privacy policy URL, and because the short version deserves to be said plainly:

Bati collects nothing about you. Nothing you record in the app leaves your phone unless you send it yourself, deliberately, by email. Two exceptions, both off by default: the map behind an outing, which tells a map host roughly where you go, and a daily question to GitHub about a newer version of the app.

One sentence of that used to be shorter. Until outings landed, the app made no network request of any kind, and that was enforced by refusing itself the INTERNET permission. Drawing a map behind a walk needs the map, so the permission is now in the build, and the honest version of the promise is one line longer rather than gone: the map is a setting, off until you switch it on, and until then the app still makes no request of any kind. A second switch joined it on 20 September 2026, for the copies that no store updates: see the map and the version check below.

What is stored, and where

Everything Bati records (your workouts, sets, reps, hold times, quests, adventures, village, achievements, flame, oath, avatar, settings, and the GPS points of an outing) is written to a SQLite database inside the app’s private storage on your device.

Backups you make

Settings offers three ways to write that database to a file. Share my backup hands it to your system’s share sheet. Save a file writes it into a folder you choose on the device. Automatic backup writes it into a folder you choose once, and then again on its own before each app update. Where any of those files goes from there is entirely your choice: the app sends it nowhere and has no way to.

What Bati never does

The map, and the one host

An outing (a walk, a run, a ride) records where you went, so it can tell you how far you travelled. Those points stay in the database on your phone, like everything else.

Drawing them on a map needs a map, and the map is off by default. A fresh install draws the route as a line on the app’s own dark background, and requests nothing. Settings has one switch for the map; turn it on and Bati asks tiles.openfreemap.org for tiles, the square images a map is made of, and that is the first of the app’s two network destinations. OpenFreeMap serves OpenStreetMap data, free, with no key and no registration.

The version check, and the second host

F-Droid and the Play Store both notice a new version of an app and tell you about it. A copy installed by hand from an APK has nobody to tell it anything, and can sit a year behind without knowing. So Settings has a second switch, Check for updates, and it is off by default too.

Switched on, Bati asks api.github.com once a day whether a newer version has been published, and puts a card on the home screen when the answer is yes.

Permissions, and why

Location, precise and approximate (optional). Used by one thing: measuring the ground an outing covers. The app reads your position while an outing is running and stops the moment the session ends. The points are written to the local database and never sent anywhere. Decline it, or never start an outing, and the rest of the app is unaffected. Android requires the approximate permission to be requested alongside the precise one; only the precise one is actually read, because approximate location cannot measure a run.

Running with the screen off (Android). An outing keeps a foreground service and a wake lock alive so the trace does not stop when your phone sleeps in a pocket. That is what the permanent notification during an outing is for: an app watching your position should say so, on screen, the whole time.

Notifications (optional). Asked for when you turn a reminder on, and used for the outing notification above. Reminders are scheduled locally by your device’s operating system: there are no push notifications, so there is no server that knows your device.

Internet. For the map, and nothing else, and only while the map is switched on in Settings. What the request reveals is in the map above.

Network state. Whether you are online, and over what kind of connection. The map library asks so it can stop requesting tiles when there is nothing to request them over. It reports no identity, no network name and no location, and it is only meaningful at all because of the permission above it. Bati deliberately does not take the neighbouring Wi-Fi permission, which would name the networks around you, and a network name is a location by another route.

Photos (optional). If you choose a photo as your hero avatar, the app reads that one image from your library. It is stored on your device like the rest of your data, and never uploaded. Decline the permission and the app works normally with the built-in avatars.

Home-screen widget (Android, optional). The flame widget reads your flame from the same on-device database.

Crash reports

If Bati crashes, it writes the error and its stack trace to your device only. When a feature fails without crashing (a backup that could not be written, say), the error message is kept the same way; that message may include the name of a folder or file you chose.

Nothing is transmitted automatically. If you want to help fix a crash, Settings has a “Report a bug” action that opens your own email app with the report filled in. You can read it, edit it, or delete it before sending, and if you never send it, it never leaves your phone. Reports you do send are used only to fix the bug and are not shared onward.

Children

Bati is a general-audience fitness app and is not directed at children under 13. It collects no personal data from anyone, of any age.

Your rights

Because Bati holds no data about you, there is nothing for us to export, correct or delete on your behalf. You hold all of it: either backup row in Settings hands you the whole database as a file, and uninstalling the app erases every record it ever made.

Changes

If this policy changes, the updated version will be published at this URL with a new date. The one change that would matter is a new network destination. The second one arrived on 20 September 2026 and got its own section above, in plain words rather than folded into a list, which is how a third would arrive too.

Contact

Questions about this policy, and anything else (a bug, an idea, a feature you wish existed): feedback.bati@proton.me

Politique de confidentialité de Bati

Dernière mise à jour : 20 septembre 2026

Bati est une application d’entraînement hors ligne d’abord. Pas de compte, pas de serveur à nous, pas d’analytics. Cette page existe parce que les deux stores exigent une URL de politique de confidentialité, et parce que la version courte mérite d’être dite simplement :

Bati ne collecte rien sur vous. Rien de ce que vous enregistrez dans l’application ne quitte votre téléphone, sauf si vous l’envoyez vous-même, délibérément, par e-mail. Deux exceptions, désactivées par défaut toutes les deux : la carte derrière une sortie, qui dit à un hôte de cartes à peu près où vous allez, et une question quotidienne à GitHub sur une version plus récente.

Une phrase de tout cela était plus courte avant. Jusqu’aux sorties, l’application ne faisait aucune requête réseau, et c’était garanti par le refus de la permission INTERNET elle-même. Dessiner une carte derrière une marche demande la carte : la permission est donc désormais dans la compilation, et la version honnête de la promesse est une ligne plus longue plutôt que disparue : la carte est un réglage, désactivé tant que vous ne l’activez pas, et jusque-là l’application ne fait toujours aucune requête. Un second interrupteur l’a rejointe le 20 septembre 2026, pour les copies qu’aucun store ne met à jour. Voir « La carte, et l’hôte unique » et « La vérification de version, et le second hôte » plus bas.

Ce qui est stocké, et où

Tout ce que Bati enregistre (séances, séries, répétitions, temps de gainage, quêtes, aventures, village, hauts faits, flamme, serment, avatar, réglages et les points GPS d’une sortie) est écrit dans une base SQLite située dans le stockage privé de l’application, sur votre appareil.

Les sauvegardes que vous faites

Les réglages proposent trois façons d’écrire cette base dans un fichier. Partager ma sauvegarde la remet au partage de votre système. Enregistrer un fichier l’écrit dans un dossier que vous choisissez sur l’appareil. Sauvegarde automatique l’écrit dans un dossier que vous choisissez une fois, puis de nouveau toute seule avant chaque mise à jour de l’application. Ce que ces fichiers deviennent ensuite ne dépend que de vous : l’application ne les envoie nulle part, et n’en a aucun moyen.

Ce que Bati ne fait jamais

La carte, et l’hôte unique

Une sortie (marche, course, vélo) enregistre le terrain parcouru pour pouvoir vous dire la distance. Ces points restent dans la base de données de votre téléphone, comme le reste.

Les dessiner sur une carte demande une carte, et la carte est désactivée par défaut. Une installation neuve dessine le trajet comme un trait sur le fond sombre de l’application, et ne demande rien. Les réglages ont un interrupteur pour la carte ; activez-le et Bati demande à tiles.openfreemap.org des tuiles, les carrés d’image qui composent une carte, et c’est la première des deux destinations réseau de l’application. OpenFreeMap sert des données OpenStreetMap, gratuitement, sans clé et sans inscription.

La vérification de version, et le second hôte

F-Droid et le Play Store remarquent tous les deux la sortie d’une nouvelle version et vous le disent. Une copie installée à la main depuis un APK n’a personne pour l’en informer, et peut rester un an en arrière sans le savoir. Les réglages ont donc un second interrupteur, Chercher les mises à jour, lui aussi désactivé par défaut.

Activé, Bati demande une fois par jour à api.github.com si une version plus récente est parue, et pose une carte sur l’accueil quand la réponse est oui.

Permissions, et pourquoi

Position, précise et approximative (facultatif). Utilisée pour une seule chose : mesurer le terrain parcouru pendant une sortie. L’application lit votre position tant que la sortie dure et s’arrête à la fin de la séance. Les points sont écrits dans la base locale et ne sont envoyés nulle part. Refusez-la, ou ne partez jamais en sortie, et le reste de l’application ne change pas. Android exige que la permission approximative soit demandée avec la précise ; seule la précise est réellement lue, parce qu’une position approximative ne mesure pas une course.

Fonctionner écran éteint (Android). Une sortie maintient un service de premier plan et un wake lock pour que la trace ne s’arrête pas quand le téléphone s’endort dans une poche. C’est à cela que sert la notification permanente pendant une sortie : une application qui suit votre position doit le dire, à l’écran, du début à la fin.

Notifications (facultatif). Demandées quand vous activez un rappel, et utilisées pour la notification de sortie ci-dessus. Les rappels sont programmés localement par le système de votre appareil : il n’y a aucune notification push, donc aucun serveur ne connaît votre appareil.

Internet. Pour la carte, et rien d’autre, et uniquement tant que la carte est activée dans les réglages. Ce que la demande révèle est dans « La carte, et l’hôte unique » plus haut.

État du réseau. Si vous êtes connecté, et par quel type de lien. La bibliothèque de carte le demande pour cesser de réclamer des tuiles quand il n’y a rien pour les transporter. Elle n’en tire aucune identité, aucun nom de réseau et aucune position, et cela n’a de sens que grâce à la permission ci-dessus. Bati refuse délibérément la permission Wi-Fi voisine, qui nommerait les réseaux autour de vous : un nom de réseau est une position par un autre chemin.

Photos (facultatif). Si vous choisissez une photo comme avatar, l’application lit cette image dans votre galerie. Elle est stockée sur votre appareil comme le reste, et jamais envoyée. Vous pouvez refuser : l’application fonctionne normalement avec les avatars intégrés.

Widget d’écran d’accueil (Android, facultatif). Le widget de flamme lit votre régularité dans la même base locale.

Rapports de crash

En cas de plantage, Bati écrit l’erreur et sa trace uniquement sur votre appareil. Quand une fonction échoue sans plantage (une sauvegarde impossible à écrire, par exemple), le message d’erreur est conservé de la même façon ; ce message peut contenir le nom d’un dossier ou d’un fichier que vous avez choisi.

Rien n’est transmis automatiquement. Si vous souhaitez aider à corriger un bug, les Réglages proposent « Signaler un bug », qui ouvre votre propre application e-mail avec le rapport pré-rempli. Vous pouvez le lire, le modifier ou le supprimer avant envoi, et si vous ne l’envoyez jamais, il ne quitte jamais votre téléphone. Les rapports envoyés servent uniquement à corriger le bug et ne sont transmis à personne.

Enfants

Bati est une application de sport tout public, non destinée aux enfants de moins de 13 ans. Elle ne collecte aucune donnée personnelle, quel que soit l’âge.

Vos droits

Comme Bati ne détient aucune donnée vous concernant, nous n’avons rien à exporter, corriger ou supprimer pour vous. Vous détenez l’intégralité : l’une ou l’autre ligne de sauvegarde, dans les réglages, vous remet la base entière sous forme de fichier, et désinstaller l’application efface chaque enregistrement qu’elle a produit.

Modifications

Si cette politique change, la version à jour sera publiée à cette URL avec une nouvelle date. Le seul changement qui compterait serait une deuxième destination réseau, et il serait écrit ici en toutes lettres plutôt que glissé dans une liste.

Contact

Questions sur cette politique, et tout le reste (un bug, une idée, une fonctionnalité qui vous manque) : feedback.bati@proton.me