In short
Your camera feed is never recorded, stored, or uploaded to any server. Motion detection runs entirely on your iPhone. Your profile and workout history are kept on this device only; we operate no server, no accounts, and no user database. The app reaches the internet for four things: ads (Google AdMob), subscription purchases (Apple In-App Purchase), a connection check before a round starts, and app updates (section 8). An internet connection is required to start a round. The first time ads are set up, iOS asks whether you allow tracking; you can decline and every feature still works.
1. Who and what this policy covers
This policy covers Luvimo for iOS, a mobile application developed and published by Yaşar Burcu Açan and distributed through the Apple App Store (bundle identifier com.luvimo.app). By downloading and using the app you accept the practices described here.
Luvimo is an exergaming app: it uses your iPhone's camera to detect body movements — push-ups, squats, arm raises and similar — and turns them into game controls.
Data controller and contact
Yaşar Burcu Açan
Email: support@batvirgen.com
Web: batvirgen.com
Owner/Developer: Yaşar Burcu Açan (individual developer)
App: Luvimo (iOS) · Bundle ID: com.luvimo.app
2. Camera and motion detection
The app requires camera permission to work. How the camera is used is the most important section of this policy:
- The camera runs only while a game screen is open. It is off on the home screen, in statistics, in settings, and whenever the app is in the background.
- Camera frames are processed in the device's memory. An on-device pose detection model extracts the coordinates of your body joints from each frame, and those coordinates control the game.
- Frames are never written to disk, never saved as photos or video, never added to your Photos library, and never sent to any server. Each frame is discarded from memory immediately after it is processed.
- The extracted skeleton and joint coordinates are not stored either; they are used for the current frame and then discarded.
- No face recognition, identification, biometric matching, or person recognition is performed.
- Motion detection itself needs no network: nothing about your movements is sent anywhere. Starting a round does require an internet connection, for the reasons given in section 8.
You can revoke camera permission at any time in Settings → Privacy & Security → Camera. Without it the games cannot be played, but the rest of the app still opens.
3. Data stored on your device
The following data is kept in the app's private sandbox storage, which other apps cannot read. None of it is sent to us or to any third party.
| Data | Contents | Why |
|---|---|---|
| Profile | The nickname you enter, chosen avatar, body weight (kg), daily goal (minutes), profile creation date | Calorie estimation and daily goal tracking |
| Workout history | Per session: game, start time, duration, detected rep count, estimated calories, best score, number of rounds | Statistics, streaks and badges |
| Play credits | Remaining daily plays and the last refill day | Daily play allowance |
| Preferences | Language, sound effect level, notification preference | Remembering your settings |
| Subscription state | Whether Luvimo+ is active, which product, expiry date, whether it auto-renews, last verification time | Recognising your subscription as soon as the app opens, before the App Store has confirmed it |
Storage does not grow without limit: only the most recent 1,000 workout sessions are kept; older ones are removed automatically.
Health data note: Rep counts and calorie figures are estimates, not medical measurements. They are not shared with Apple Health (HealthKit) or any other health platform, and never leave your device. The app does not request HealthKit access.
4. Advertising (Google AdMob)
The free version shows ads. Ads are served by Google AdMob, which is the main third party the app shares data with.
- To serve ads, Google's advertising infrastructure processes certain device information: IP address, device model and iOS version, approximate (IP-based) location, ad interactions such as impressions, clicks, and whether a rewarded ad was watched, and technical diagnostics of the ad library (for example, whether an ad failed to load).
- Tracking permission (App Tracking Transparency): the first time the ad layer starts, iOS shows the system prompt "Allow Luvimo to track your activity across other companies' apps and websites?". If you allow, your device's advertising identifier (IDFA) is shared with Google AdMob so that ads can be personalised to your interests and their performance measured across apps. If you decline, the identifier is not made available, ads are chosen by context only, and nothing about you is linked across apps. The app works identically either way. You can change your choice at any time in Settings → Privacy & Security → Tracking.
- Regardless of your choice, ad attribution also uses Apple's privacy-preserving SKAdNetwork framework, which lets advertisers learn that a campaign led to an install without identifying you.
- This data is collected by Google and is governed by Google's own policies. We do not access, store, or use it for our own purposes.
- Ads are filtered for adult content (maximum content rating: Teen).
- Ads never interrupt gameplay. They appear only when leaving a game after a round has been played, or at your request (rewarded ads for extra plays or to continue where you left off).
The advertising layer starts the first time you reach the home screen after the introduction (not during it). At that moment the app contacts Google's consent service (User Messaging Platform, UMP) to find out whether a consent form is required in your region; this is part of the advertising layer and is skipped entirely for Luvimo+ subscribers. Users in the EEA, UK and Switzerland: the app then asks for your consent through that form. If you decline personalised ads, non-personalised ads are shown instead. You can change your consent choice later from the same form.
You can withdraw tracking permission for Luvimo in Settings → Privacy & Security → Tracking, and limit Apple's own ad personalisation in Settings → Privacy & Security → Apple Advertising.
Google's data practices: How Google uses information from sites or apps that use our services · Google Privacy Policy.
If you subscribe to Luvimo+, the advertising layer is never initialised — the ad SDK is not started, no consent form is shown, and no ad request is made.
5. Subscriptions and purchases (Apple In-App Purchase)
Luvimo+ is an optional auto-renewing subscription that removes ads. It is sold through Apple In-App Purchase.
- Payment is handled entirely by Apple. Card details, billing address, and payment instrument data are never entered into the app and are never seen or stored by us.
- The app only asks the App Store whether an active Luvimo+ subscription exists on this device. The only things stored on the device from that answer are: subscription status, product identifier, expiry date, auto-renewal flag, and last verification time.
- Your purchase history, refunds, and cancellations are tied to your Apple Account and are managed by Apple, not by the app. You can view, change or cancel the subscription in Settings → [your name] → Subscriptions, and request a refund at reportaproblem.apple.com.
- No server of ours is used to verify subscriptions; no identity or account information is sent to us. We never receive your name, email address, or payment details from Apple.
How Apple handles payment data: Apple Privacy Policy. The subscription is governed by Apple's standard Licensed Application End User License Agreement.
6. Notifications
The app can send a streak reminder as a local notification. "Local" means it is scheduled and fired by your iPhone itself: there is no push server, no device push token is created, and nothing is sent anywhere.
- Notifications are off by default. You are asked once after your first workout; if you decline, you are not asked again.
- At most one reminder is scheduled at a time, so you never receive more than one notification per day.
- You can turn them off at any time from the app's settings screen or in Settings → Notifications → Luvimo.
7. Permissions requested
The app asks for three permissions, all through the standard iOS prompt:
| Permission | Used for | Are you asked? |
|---|---|---|
| Camera | Motion detection (footage is never stored or uploaded) | Yes — required for the games |
| Notifications | Streak reminder | Yes — optional, off by default |
| Tracking | Personalised ads and ad measurement via Google AdMob (section 4) | Yes — optional; declining keeps every feature |
Permissions never requested: The app does not ask for microphone, location, contacts, calendars, Photos, Bluetooth, HealthKit, or any other permission. The microphone usage description is deliberately absent from the app, so iOS will never grant it: recording audio is technically impossible.
8. Sharing and selling of data
We do not sell or rent your personal data, and we share it for no purpose other than serving ads. The only third parties the app communicates with are:
- Google AdMob — ad serving and measurement (section 4); receives your advertising identifier only if you allowed tracking.
- Apple In-App Purchase — subscription transactions (section 5).
- Google (connection check) — see below.
- Expo (app updates) — see below.
Connection check
An internet connection is required to start a round; this applies to Luvimo+ subscribers as well. To find out whether the device is online, the app sends a small, empty request to a Google address (www.google.com/generate_204) when the app opens, when it returns to the foreground, and when a game is opened. The request contains no identifier and no personal data. As with any internet request, the receiving server sees your IP address. The date in the reply is used only to decide when the daily play allowance is renewed, so that changing the clock on the device has no effect. Nothing from this check is stored except the day of the last renewal (section 3).
App updates
Small fixes can be delivered without a new App Store release. For this, each time the app starts it asks the update service operated by Expo (650 Industries, Inc., u.expo.dev) whether a newer version of the app's own code is available. The request contains technical information only: the app's version, the platform, the identifier of the update currently installed, and a random installation identifier generated by the update library. That identifier is not your advertising identifier, is not linked to your name or to any account, and is not used for advertising or tracking. As with any internet request, the server sees your IP address. How Expo handles this data: Expo Privacy Policy.
The app contains no analytics or crash-reporting tools and no third-party SDK that tracks usage behaviour. There is no social login, friend list, leaderboard, or cloud sync: the app does not use CloudKit or iCloud Drive. Like any app's data, its local data may be included in the device backups you control (iCloud Backup or a computer backup); we have no access to those.
Should a legal request arrive, we hold no user database to disclose.
9. International data transfers
Data kept on your device never leaves your country. However, Google, Apple and Expo operate on global infrastructure, so the data described in sections 4, 5 and 8 may be processed on servers outside your country. Those transfers are subject to each company's own contractual safeguards.
10. Retention and deletion
Data on your device stays there until you delete it. There are two ways to remove it completely:
- In the app: Settings → Reset All Data. Your profile, workout history and statistics are permanently deleted, and your play credits go back to the daily allowance. Your language, sound and reminder preferences are kept, and an active Luvimo+ subscription is deliberately unaffected, so paying users are not penalised.
- By deleting the app: Removing the app from your iPhone makes iOS delete all of its local data.
Both actions are irreversible, and since we hold no copy, the data cannot be recovered.
11. Your rights (GDPR / KVKK)
Because we hold no central copy of your personal data, you exercise your rights of access, rectification and erasure directly on your device: you can view your data in the app, edit your profile in settings, and erase everything with "Reset All Data".
Data generated by advertising (section 4) is processed by Google, so access and deletion requests concerning it must be directed to Google; you can withdraw tracking permission at any time in Settings → Privacy & Security → Tracking. Subscription records are held by Apple (section 5); requests about them go to Apple. In the EEA and UK you can withdraw your personalised-ads consent at any time (section 4).
For any question, request or complaint about this policy: support@batvirgen.com. Requests are answered within 30 days at the latest.
12. Children's privacy
Luvimo is not directed to children; its target audience is 13 and older. We do not knowingly collect personal data from children under 13 — the app sends no user data to any server at all. If you are a parent or guardian of a child under 13 and have a concern, please write to the address above.
Although ads are filtered for adult content, ad serving is not configured as a child-directed service. Users under 13 should not use the app without parental supervision.
13. Security
Data is stored in the app's sandbox, protected by iOS and by your device passcode, and cannot be read by other apps. Because this data is not transmitted over a network, there is no interception risk; the few requests the app does make (sections 4, 5 and 8) use encrypted connections. That said, no app's data is fully safe on a jailbroken or compromised device; keep your iPhone updated and passcode-locked.
14. Changes to this policy
This policy may be updated as new features are added. When it is, the effective date at the top of this page changes. Continuing to use the app after a change means you accept the updated policy.
15. Contact
Yaşar Burcu Açan
Email: support@batvirgen.com
Web: batvirgen.com
Owner/Developer: Yaşar Burcu Açan
App: Luvimo (iOS) · Bundle ID: com.luvimo.app