1. Summary (Plain Language)
CalorieLogger is designed to be local-first and private by default:
- Your food diary, weight history, water log, supplement log, profile details, and goals are stored only on your own device, in a local database. We do not operate a server or cloud database, and we never see this information.
- The app shows ads and offers an optional one-time "Remove Ads" purchase, both of which involve standard Google services (see Section 5).
- If you use the optional barcode scanner, only the scanned barcode number is sent to a public nutrition database to look up product information — nothing else about you is sent with it.
- We do not sell your data, and we do not share your health or food-logging data with advertisers or any other third party.
2. Information We Collect
2.1 Information You Provide Directly
When you set up your profile and goals, you may enter:
- Name, height, weight, age, and sex
- A profile photo (stored locally at filesDir/profile_photo.jpg on your device, downscaled before storage)
- Weight goal, target weight, weekly rate, activity level, and goal type
- Nutrition targets (calorie and macronutrient goals)
- Workout goal (workouts per week, minutes per workout)
All of the above is stored exclusively in local storage on your device (Android Room/SQLite database and Jetpack DataStore Preferences). It is never transmitted to us or to any server, because no such server exists for this data.
2.2 Health & Fitness Data You Log
As you use the app, it stores, again locally only:
- Food diary entries (food/meal logged, quantity, calories, and macronutrients)
- Custom foods and custom meal slots you create
- Weight entries over time
- Water intake entries
- Supplement entries (name, quantity, notes) — tracked for adherence only and never used in any calorie calculation
- Milestones reached (e.g. weight or streak achievements)
This is the most sensitive data the app handles, and it is the category we are most deliberate about: it never leaves your device automatically, and there is no export or backup feature. The only way any of it leaves is if you choose to share a milestone celebration card — tapping "share" on a weight or streak milestone renders an image containing that progress information and hands it to whichever app you pick from Android's share sheet (e.g. WhatsApp, Photos). We never see or receive that image.
2.3 Barcode Scan Data
If you use the barcode scanner to look up a packaged food item, the app first checks its own local food database. If the item isn't already known locally, the app sends only the scanned barcode number (not your name, profile, or any other identifying information) to the public Open Food Facts database, along with a generic app identifier in the request header, to retrieve that product's nutrition facts. The returned nutrition data is then cached locally on your device so future scans of the same product work offline.
Scanning uses your device's camera to read the barcode. The app does not capture, store, or transmit any photo or video from the camera — only the decoded barcode digits are used, as described above.
2.4 Advertising & Analytics Identifiers
CalorieLogger displays ads through Google's AdMob (Google Mobile Ads SDK). To do this, Google Play services makes your device's Advertising ID and certain standard technical information (such as device type, general region, and app interaction events relevant to ad delivery and measurement) available to Google for the purpose of serving and measuring ads. This is standard behavior for any app using AdMob and is declared honestly in this app's Play Store "Data Safety" section as Device or other IDs — shared with the ad provider.
We do not receive, store, or have access to this advertising data ourselves — it is processed by Google according to Google's own Privacy Policy and, where applicable, Google's Ad Privacy settings.
2.5 Purchase Information
If you purchase the one-time "Remove Ads" upgrade, the transaction is handled entirely by Google Play Billing. We receive only a confirmation that your purchase was completed (so the app can unlock the ad-free state on your device) — we never see or store your payment method, card details, or billing address. Google's handling of payment information is governed by Google Play's Terms of Service and Google's own Privacy Policy.
2.6 Notifications
If you enable meal-logging or weekly weigh-in reminders, the app requests notification permission (and, so reminders survive a device restart, permission to run at boot) in order to schedule these entirely on your device via Android's AlarmManager/WorkManager. These reminders are scheduled and delivered locally — no reminder content, schedule, or usage data is ever sent to us or to any server.
2.7 Information We Do NOT Collect
To be explicit about what this app does not do:
- No account creation, no login, no email/phone collection by us
- No cloud sync or backup of your food, weight, or health data
- No location tracking
- No contacts or microphone access. Camera access is used only to read a barcode's digits (Section 2.3) or to let you pick/take a single profile photo when you choose to — no photo or video is captured, stored, or transmitted beyond those two explicit actions.
- No selling or renting of any personal data to third parties, ever
3. How We Use Information
Data you enter is used solely to power the app's own features on your device: calculating your calorie/macro targets, showing your diary and progress, generating meal suggestions from your own recent logs, and tracking milestones. Because this data lives only on your device, "how we use it" is limited to what the app itself does locally — we do not separately process, analyze, or aggregate your data on any server, because there isn't one.
The Advertising ID and barcode number described above are used only for the specific, narrow purposes stated in Sections 2.4 and 2.3 respectively.
4. Data Storage and Security
- Structured data (food catalog, diary entries, weight, water, supplements, milestones) is stored in a local SQLite database via Android's Room persistence library.
- Profile fields, goals, and app preferences are stored via Android Jetpack DataStore Preferences.
- Your profile photo is stored as a local file in the app's private app-specific storage directory.
- None of the above is encrypted with a separate key beyond standard Android app-sandboxing (each app's private storage is inaccessible to other apps without root access or your explicit OS-level backup/restore action).
- Because there is no server, there is no remote database of user data that could be breached externally. The realistic security consideration is the security of your own device (e.g. using a device lock screen), since anyone with unlocked access to your phone could open the app the same way you do.
5. Third-Party Services Used by This App
| Service | Purpose | Data Involved |
|---|---|---|
| Google Mobile Ads (AdMob) + User Messaging Platform (UMP) | Displays banner and interstitial ads; UMP handles consent (EEA/UK) before ads load | Advertising ID, general device/technical info (per Google's practices) |
| Google Play Billing | Processes the one-time "Remove Ads" purchase | Purchase confirmation only; payment details handled entirely by Google |
| Google Play Services | Underlying platform services (e.g. the on-device barcode scanner UI, Play Integrity where applicable) | Standard Play Services device interaction, per Google's practices |
| Open Food Facts | Public, open nutrition database used for barcode lookups | Scanned barcode number only (see Section 2.3) |
Each of these operates under its own privacy policy:
- Google: policies.google.com/privacy
- Open Food Facts: world.openfoodfacts.org/privacy
6. Data Sharing and Disclosure
We do not sell, rent, or trade any user data. We do not share your food logs, weight history, health goals, or profile information with any third party, advertiser, or data broker — this data never reaches us in the first place, since it is stored only on your device.
The only data that is shared with a third party at all is: (a) the Advertising ID and standard ad-serving technical data shared with Google for showing ads (Section 2.4), and (b) the barcode number sent to Open Food Facts when you use the scanner (Section 2.3). Neither of these is linked to your name, your food diary contents, or any other identifying profile information by us.
We may disclose information if required to do so by law, but given we do not hold your health/food data on any server, there is generally nothing for us to disclose in response to such a request beyond confirming the app's data-collection design described here.
7. Advertising Consent (EEA / UK Users)
For users in the European Economic Area and the United Kingdom, the app uses Google's User Messaging Platform (UMP) to obtain your consent for personalized advertising before any ad request is made, in line with applicable consent frameworks. You can change your ad consent choices at any time via the in-app consent management option (if shown) or by resetting ad preferences through your device's Google Settings.
Users everywhere can also limit ad personalization at the device level via Settings → Google → Ads → Delete advertising ID / Opt out of Ads Personalization on Android, independent of this app.
8. Children's Privacy
CalorieLogger is not directed at children and is not intended for use by children under the age of 13 (or the applicable minimum age in your jurisdiction). We do not knowingly collect personal information from children. Because the app has no account system and no data leaves the device (aside from the narrow exceptions above), there is no mechanism by which we would knowingly receive a child's personal data directly. If you believe a child has provided information through this app in a way that concerns you, please contact us at sgkslabs@gmail.com.
9. Your Rights and Choices
Because your data is stored locally:
- Access & correction: You can view and edit any profile field, goal, or logged entry directly within the app at any time.
- Deletion: You can delete individual entries, custom foods/supplements, or your entire local dataset by uninstalling the app (which removes its local storage per standard Android behavior) or by clearing the app's storage via Android Settings.
- Ad personalization: Manage or opt out via your device's Google Ads settings (Section 7).
- Purchase restoration: Use the in-app "Restore Purchases" option, which re-queries Google Play Billing directly — no separate request to us is needed.
- Data-subject requests (GDPR/CCPA and similar): Because we do not hold a copy of your personal data on any server, most access/deletion requests are already satisfied by the local controls above. If you have a request beyond what these controls cover, email sgkslabs@gmail.com and we will respond within a reasonable time.
10. Data Retention
Locally stored data persists on your device for as long as the app remains installed, or until you delete specific entries yourself. Uninstalling the app removes its locally stored data per standard Android app-storage behavior. We do not separately retain any copy of this data, since none is ever sent to us.
11. International Users
This app is available globally via Google Play. Where third-party services described in Section 5 (Google, Open Food Facts) process the limited data described above, that processing may occur on servers located outside your own country, under those providers' own privacy and security practices.
12. Changes to This Policy
We may update this Privacy Policy if the app's features or data practices change. The "Last updated" date at the top will reflect the most recent revision. Material changes affecting how your data is handled will be reflected here before or at the time the corresponding feature ships. We encourage checking this page periodically.
13. Contact Us
Questions, concerns, or data-related requests about this Privacy Policy or the app:
- Email: sgkslabs@gmail.com