FitBuddy Privacy Policy
FitBuddy ("we", "our", or "the App") is a personal fitness and nutrition tracking iOS application. This Privacy Policy explains what data we collect, how it is used, and the choices you have.
By using FitBuddy, you agree to the practices described below.
1. Data Controller
This app is developed and operated by an individual developer:
- Developer: Kyrylo Holovchenko
- Contact email: kyrylo.holovchenko@gmail.com
2. Data We Process
2.1 Data stored on your device
FitBuddy stores the following locally using Apple's SwiftData framework:
- User profile: name, age, sex, height, weight, activity level, fitness goals
- Workouts, exercises, sets and reps
- Meal entries, hydration log, body metrics (weight, body fat)
- AI chat history with the in-app assistant
This data stays on your device except for iCloud sync, which is on by default (see §2.3), and the parts of it that are sent for AI processing when you use the AI assistant or food photo scan (see §2.4).
2.2 Apple Health (HealthKit) data
With your permission, FitBuddy reads the following HealthKit data to personalize recommendations:
- Body measurements: weight, body fat percentage, lean body mass, height
- Biological sex and date of birth
- Activity: active and basal energy, step count, exercise time, stand time, walking/running distance, swimming distance
- Heart and fitness: resting heart rate, heart rate variability (HRV), VO2 max
- Sleep analysis
FitBuddy may also write to Apple Health: workouts, active energy, dietary energy, protein, fat, carbohydrates, fiber, water, body mass, body fat percentage, lean body mass and swimming distance.
HealthKit data is read and processed on your device. HealthKit measurements are kept in a separate on-device store that is not synced to iCloud, and they are not used for advertising or sold. When AI features run (see §2.4), some Apple Health values are included in the request: height, weight, body fat, age and sex (they are also part of your profile) and active energy; in the assistant chat also today's steps, last night's sleep, resting heart rate, activity rings, basal energy (as part of your calorie burn), VO2 max and heart rate variability (HRV); Pro smart reminders (§2.6) use active energy only. Workouts recorded in Apple Health are not part of that request. You can revoke HealthKit access at any time in iOS Settings → Privacy & Security → Health.
2.3 iCloud synchronization
FitBuddy uses Apple CloudKit to back up and sync your data across your devices signed in to the same Apple ID. Sync is on by default. The following is synced:
- Profile and goals
- Workouts, exercises, sets and reps
- Meal entries and saved foods, hydration log, body metrics you enter yourself
- AI chat history
- Achievements and in-app notifications
HealthKit body measurements are stored in a separate on-device store and are not synced. Values that end up in your profile (including those prefilled from Apple Health during onboarding: weight, body fat, height, age, sex) are part of the profile and sync with iCloud when sync is on.
This data is stored in your personal iCloud account. We have no access to it. You can turn sync off with the "iCloud sync" switch in Profile (takes effect after restarting the app) and delete the iCloud copy with the "Delete my iCloud data" button.
2.4 AI assistant (Google Gemini)
FitBuddy's AI features are powered by Google Gemini. The app sends the request to a relay service run by the developer (a Cloudflare Worker at fitbuddy-backend.fitbuddy.workers.dev), which forwards it to Google Gemini. If the relay service cannot be reached, the app may instead send the same request directly to Google's Gemini API (see §3). A request is sent when you message the assistant, scan a food photo or describe a meal, or generate a workout with AI, and also automatically in the background for Pro features: smart reminders and the daily insight on the Home screen.
Every AI request contains your message text (and the conversation so far in the assistant), plus a photo if you attach one or scan food. Beyond that, what is sent depends on the feature:
- Profile context (assistant, daily insight, meal text parsing and food photo scan): name, age, sex, height, weight, body fat and target body fat, activity level, RMR, active energy from Apple Health if you granted access, calorie, macro and water targets, experience level, cooking level and household context; health conditions, injuries and allergies you entered; home and gym equipment, favorite and disliked foods and pantry items
- Workout generator: a smaller profile (age, height, weight, experience level, injuries, health conditions, home and gym equipment) and the list of exercise names in the app, but not your name
- Assistant chat only: in addition, a summary of today and recent history (today's meals and totals, 7-day averages, hydration, body weight and body fat, your workouts from the last 7 days with exercise details), Apple Health values if you granted access (steps, last night's sleep, resting heart rate, activity rings, VO2 max, heart rate variability (HRV), TDEE), and, if you tapped "Discuss with AI" on a meal, that meal (description, calories, macros, time)
- Daily insight: the profile context above plus a summary of the day (today's meals and totals, targets, hydration, the last 7 days of workouts by type and date, latest weight)
- Meal text parsing and food photo scan: the profile context above plus the text or photo you submit
Automatic Pro smart reminder requests contain a smaller set of data:
- Smart reminders: your calorie, protein and water targets, RMR and calorie deficit; today's meals with descriptions, calories and protein; water intake; number of workouts; a 7-day summary (meal count and times, calories, water, workouts); and active energy from Apple Health if you granted access
Smart reminders can be turned off in the app. The Pro daily insight on the Home screen is also sent automatically when you open that screen (see above).
The request also carries an anonymous device identifier (a random ID generated by the app on first launch), which the relay service uses to apply usage limits. Google processes the data under its own terms: Gemini API Terms and Google Privacy Policy. AI conversations are also stored on your device and, if iCloud sync is on, in your personal iCloud account.
2.5 Camera and photos
With your permission, FitBuddy may access the camera or photo library to analyze food photos or smart scale screenshots. Photos you select are processed on your device and/or sent to the AI assistant as described in §2.4.
2.6 Notifications
FitBuddy schedules local notifications on your device (workout reminders, hydration, etc.). The text of Pro smart reminders is generated by AI: the app sends the data described in §2.4 and schedules the resulting notifications locally. No remote push notifications are sent by us, and we do not collect device tokens.
2.7 Food search, barcodes and exercise videos
- Barcode lookup and text search query the Open Food Facts database. The app contacts it directly from your device and sends the barcode or search text.
- Food search also queries the USDA FoodData Central database, and non-English search text may be translated to English with Gemini. Both go through the relay service from §2.4, together with the anonymous device identifier.
- Exercise videos are loaded from the relay service and cached on your device.
Open Food Facts, USDA and Google process these requests under their own terms.
2.8 Subscriptions (RevenueCat)
To manage Pro subscriptions the app uses the RevenueCat SDK. RevenueCat receives purchase data and App Store receipts, plus an anonymous app user ID, to determine whether your subscription is active. Apple processes payments; we never see your payment card details. RevenueCat processes this data under its own privacy policy.
3. Data We Do NOT Collect
- We do not collect analytics, crash logs (beyond what Apple provides via opt-in), advertising identifiers, or location data.
- We do not sell or rent any data.
- We do not use third-party trackers or advertising SDKs. The only third-party SDK used for subscriptions is RevenueCat (see §2.8). AI requests normally go through our relay service (§2.4). The app also bundles the Google Generative AI client library: if the relay service cannot be reached, the app may attempt the same request directly to Google's Gemini API. Release builds contain no Gemini API key, so Google rejects such a request, but its content (the prompt, profile context and any image) is still transmitted to Google.
4. Data Retention
Your personal data lives on your device and (optionally) in your iCloud account; the parts sent for AI processing and food search are described in §2.4 and §2.7. When you delete the app, local data is removed by iOS. iCloud-synced data can be deleted in the app with the "Delete my iCloud data" button in Profile, or through Settings → Apple ID → iCloud → Manage Account Storage → FitBuddy.
Google Gemini retains prompts according to its own retention policy.
5. Your Rights
Because data is stored on your device and in your iCloud, you have full control:
- Access / export: view your data directly in the app
- Delete: remove entries in-app, or delete the app and iCloud data
- Withdraw permissions: revoke HealthKit, Camera, Photos, or Notifications access in iOS Settings at any time
If you are in the EU, UK, or a jurisdiction granting additional rights (GDPR, UK-GDPR, CCPA), you may contact us at the email above to exercise those rights.
6. Children
FitBuddy is not directed to children under 13. If we learn we have processed data from a child under 13 without parental consent, we will take steps to delete it.
7. Security
Data is protected by iOS sandboxing and Apple's standard on-device encryption when your device is locked. Requests from the app to the relay service and to Open Food Facts use HTTPS.
8. Changes to This Policy
We may update this Privacy Policy from time to time. The "Last updated" date above reflects the current version. Material changes will be communicated in-app.
9. Contact
Questions or requests: kyrylo.holovchenko@gmail.com