Gym Regular counts your gym visits on your phone. There is no account, no server of ours, no advertising and no measurement of how you use the app.
Stays on your device: places, visits, notes, goals, pauses, memberships and settings.
Leaves your device: the map and the address search while you set up or edit a place. Backup, CSV export and diagnostics bundle only when you pass them on yourself.
Does not exist: account, server, advertising, measurement of your use, stored location.
Gym Regular ("the app") is a local-first gym attendance app for Android. It counts your gym visits automatically, using places you configure yourself and the Android geofencing system, and it keeps one free-text note per visit. This Privacy Policy explains what data the app handles, how it is used, your rights, and how to contact us.
There is no account, no sign-in, no server operated by us, no advertising and no product analytics. Everything the app records stays in its own storage on your device unless you export or share it yourself.
1. Who we are
Gym Regular is published by:
- Name: Ivan Knezevic
- Country: Switzerland
- Contact e-mail: i.knezevic@gmx.ch
For the purposes of GDPR and the Swiss Federal Act on Data Protection (FADP/revDSG), Ivan Knezevic acts as data controller for any personal data this Privacy Policy covers.
Independent application notice
Gym Regular is an independent application developed by Ivan Knezevic in Switzerland. It is not affiliated with, endorsed by, sponsored by or otherwise connected to any gym, fitness studio chain, equipment manufacturer, or the publisher of any other fitness, workout or habit-tracking application. The words "gym" and "regular" are generic English terms - one for the place, one for the habit of showing up - and are used here in that descriptive sense.
The app does not connect to any gym operator's membership or access-control system. The membership feature is a fee amount you type in yourself so the app can show you a cost per visit; it is a number in your own database and nothing else.
2. Data the app handles on your device
Gym Regular is designed local-first. The following data categories are created and stored on your device only, in the app's own database and in the app's own preference storage:
- Places you configure: the name you give a place, its latitude and longitude, the detection radius, the activity you assign to it, whether it is active, and how it is detected.
- Location readings for detection: while detection is active, the app reads the device location in the foreground and in the background and compares it, on the device, with the places you configured. These readings are not stored as coordinates and are not transmitted. What the app keeps from them is the result: timestamps, the place concerned, and counters the detection needs in order to survive a restart.
- Visits: start and end time, the place (or the note that it was a home workout or another place), a training type you may assign, your free-text note, the local date and time zone of the visit, how the visit came about (automatically or entered by hand), whether you confirmed it, and whether it was edited or deleted.
- Goals and pauses: how many training days per week you aim for, the joker rule, and any pauses you record together with the reason you type.
- Memberships and fees: a membership name, a currency, the fee amount you enter and the months it applies to.
- Recording periods: when automatic detection was running, when it was interrupted, and why, so that a gap in the record is visible as a gap instead of as a week without training.
- Detection log: the most recent detection events with their time, the place involved and a short technical detail such as a distance in metres or a reason code. The app keeps at most the last 500 of these entries.
- Change history of your visits: which visit was created, changed or deleted, and when.
- Training types: the labels you create yourself, for example Push, Pull, Legs. The app deliberately stores no exercises, sets, weights or training plans; it counts visits and holds one note.
- Settings: your goal, notification settings, theme, language, what the home-screen widget shows, and similar preferences.
- Files you create: the backup file, the CSV export and the diagnostics bundle, which exist only when you create them (see section 3).
A note on health-related data
Some of this is data about your body and your habits: when and how often you train, which training type you assign, and whatever you write in a note. Depending on what you write, a note can say more than the app ever asks for.
This data is generated by you, stored in the app's private storage on your device, and is not transmitted to us or to any third party. We never see it. It is your choice whether you write anything sensitive in a note, and you can edit or delete any visit and its note at any time.
3. Data the app may send off your device
Gym Regular does not transmit your visits, your notes, your goals, your places or the location readings used for detection. There is no account, no synchronisation, no analytics SDK, no advertising SDK and no crash-reporting service in this app.
There are exactly two places where the app itself contacts a service on the internet, and both happen only while you are setting up or editing a place:
- Map tiles (OpenStreetMap): the map you use to place or check a place loads its image tiles from
tile.openstreetmap.org. Each request names the tile being loaded, which together with the other tiles describes the map section you are looking at, and carries a User-Agent header identifying the app by its application id. OpenStreetMap sees your IP address, as any server does when your device requests something from it. The map is shown only during place setup and in "edit place"; the app loads no tiles at any other time. - Address search (OpenStreetMap Nominatim): if you type into the address field during place setup, the app sends your search text to
nominatim.openstreetmap.orgafter a short typing pause. The request also carries the map section currently shown as a search preference, a User-Agent header identifying the app by name, version and application id, and an Accept-Language header reflecting the language the app is running in. The User-Agent also contains the developer contact address in section 14, because the Nominatim usage policy asks for a way to reach whoever runs the application; it identifies us, never you. OpenStreetMap sees your IP address here as well. The app sends at most one such request per second and never searches in the background.
What this means in plain terms. The map section is a location. At the zoom the map uses it covers about one square kilometre or less, which Google Play counts as precise location, and the Data safety section of the store listing declares it that way. If you tapped "My position" before searching, the section shown is the area you are standing in, so this location leaves your device while you set up or edit a place, even though no part of the app ever sends your coordinates as such. This is different from the location used for detection, which is evaluated on the device and never leaves it. Both statements are true, and neither replaces the other.
OpenStreetMap may log these requests under its own terms; see the OpenStreetMap Foundation privacy policy.
Beyond those two, data leaves your device only when you decide it should:
- Backups, CSV exports and diagnostics bundles: the app writes the file and hands it to Android's own share or save dialog. Where it goes from there is your choice, and the app or service you pick handles it under its own terms. The backup contains everything listed in section 2. The CSV export contains your visits including your notes. The diagnostics bundle contains the app version, system details and the recent detection events; it identifies places by number rather than by name and contains no notes, no place names and no coordinates. The app shows you the full text of the diagnostics bundle before you share it.
- App rating prompt (Google Play in-app review): once you have used the app for a while, Gym Regular asks Google Play on its own whether a rating dialog may be shown, and requests that dialog if so. No app data is transmitted with this: no locations, no visits, no notes, no identifiers. Whether the dialog appears at all is decided by Google Play; the app is told neither that nor whether you left a rating. The conditions leading up to the request are counted locally on your device, and the prompt is requested at most once per installation.
4. Permissions and why we ask for them
- Location (while using the app and in the background): Gym Regular collects location data to count your visits and send you a notification after your workout, even when the app is closed or not in use. The location is only ever compared, on the device, with the places you configured. Without background location the app cannot count visits by itself; it stays fully usable, and you record visits by hand.
- Precise location: Android lets you grant an approximate location instead. A gym is detected within a radius of around 150 metres, which an approximate location cannot resolve, so reliable automatic detection needs the precise setting.
- Notifications: used to tell you that the app noticed your arrival, that a visit was saved, to ask you about a stay it is not sure of, to point out a problem with automatic detection, and for the optional weekly recap. All of these are produced on your device from data that is already there, and they send nothing anywhere.
- Run at start-up and keep the device awake: used to re-arm the geofences after a restart and to finish a short background check. They carry no data.
- Internet: used only for the two requests described in section 3.
- Battery-optimization exemption (optional): improves background reliability on Android devices that aggressively stop background tasks.
- Share intents: used only when you export or share a file yourself.
5. Legal basis for processing (GDPR / FADP)
Processing the location readings and visit data on your device is necessary to provide the core functionality you asked for when you set up a place and switched on automatic detection (Art. 6(1)(b) GDPR / Art. 31(2)(a) revDSG: contractual necessity). You choose whether to use automatic detection at all; the app works without it.
When you open the map or type into the address search during place setup, the tile requests and the search request are sent to OpenStreetMap on the basis of that action of yours (Art. 6(1)(b) GDPR).
Any notes you write are content you create yourself. They stay on your device, and we process them in no way whatsoever.
6. Data retention
- Data stored on your device remains until you delete it in the app, clear the app's storage in Android Settings, or uninstall the app.
- Deleted visits are not gone at once. A visit you delete, or mark as one you were not there for, stays recoverable for seven days under Settings, section Data, "Recently discarded". After that only a marker remains, which carries neither your note nor the times. The marker is kept on purpose, so that restoring an older backup cannot resurrect a visit you deleted.
- The detection log is capped: the app keeps at most the 500 most recent detection events and drops older ones.
- Map tile and address search requests are sent to OpenStreetMap at the moment you trigger them. The app keeps no search history. Whatever OpenStreetMap logs on its own servers is governed by OpenStreetMap's retention policy.
- Backup, CSV and diagnostics files live wherever you saved or sent them. The app cannot reach them afterwards and cannot delete them for you.
7. Your rights
Under GDPR and the Swiss FADP, you have the right to:
- request access, rectification, or deletion of any personal data we process,
- restrict or object to processing,
- data portability,
- lodge a complaint with the supervisory authority responsible for your location:
- Switzerland: Federal Data Protection and Information Commissioner (FDPIC), edoeb.admin.ch
- EU: your local data protection authority.
Because Gym Regular has no accounts, collects no identifiers, and keeps every visit, note and place on your device, we normally hold no personal data about you at all that we could access, correct or erase. Your right of access is served by the app itself: everything it knows about you is visible in it, and the backup and CSV export give you the whole record in a portable form. If you believe we nevertheless hold personal data about you - for example because you wrote to the support e-mail or sent us a diagnostics bundle - please contact us at the address above.
8. Account deletion and data deletion
Gym Regular does not require an account, so there is no account to delete.
- Delete everything inside the app: Settings, section Data, "Delete all data". The app tells you how many visits and notes this concerns and offers to make a backup first.
- Delete a single visit or note: open the visit and delete it, or clear the note. See section 6 for the seven days during which a deleted visit can still be brought back.
- Delete everything by uninstalling: Android Settings > Apps > Gym Regular > Uninstall. Uninstalling removes the local database. The app also switches off Android's automatic app backup, so no copy of your data is kept in a cloud backup that could outlive the uninstall.
- Address search logs: the app stores no search history. Logs OpenStreetMap may keep on its servers are governed by OpenStreetMap's privacy policy.
9. Children's privacy
Gym Regular is not directed to children under the age of 13 (or 16 in jurisdictions where that is the applicable threshold). The app does not knowingly collect personal data from children.
10. International data transfers
The map tile and address search requests described in section 3 are handled by the OpenStreetMap Foundation's infrastructure, which may be located outside Switzerland and outside the EU/EEA. See the OpenStreetMap Foundation privacy policy for details. No other data leaves your device by itself, so no other transfer takes place.
11. Third-party services
- Google Play Services: required on Android for the geofencing API that detects arrival and departure. Detection runs on the device; entry and exit events are delivered locally by the operating system. Google Play is also used for the rating flow described in section 3, which transmits no app data.
- OpenStreetMap: map tiles during place setup, and the Nominatim address search when you type into the search field. Both are described in section 3.
These providers process data under their own privacy policies. Gym Regular enables no analytics, advertising or crash-reporting SDK.
12. Security
Your data lives in the app's private storage, which Android keeps separate from other apps. The database is a local SQLite file in that private area, and settings are stored in Android's app preferences. The app adds no encryption of its own on top of that, and it stores no passwords, keys or tokens, because it has no account and no server to authenticate against. We rely on the security mechanisms the Android operating system provides for data at rest on your device.
Android's automatic cloud backup is switched off for this app, so your visits are not copied into a Google backup without your knowledge. The consequence is deliberate and worth knowing: if you change phones or uninstall the app, only a backup you created yourself brings your data across.
13. Changes to this policy
We may update this Privacy Policy. The "Last updated" date at the top reflects the most recent revision. Material changes will be announced in the app release notes.
14. Contact
Privacy questions, data subject requests, and any complaints:
E-mail: i.knezevic@gmx.ch
Postal: available on request via e-mail.