Privacy Policy
Last updated: 11 September 2026
The short version
- OmniDress has no accounts and no server of ours. Your wardrobe — garment images, names, categories, outfits and wear history — lives only on your iPhone.
- To recognise clothes, OmniDress sends the photo you scan and the cropped garment images cut out of it to Google’s Gemini API. That is the one place your images leave your device.
- On the tier of Google’s API we currently use, Google may use what is sent to improve its services, and human reviewers may read it. Please don’t scan anything you would not want a stranger to see.
- We use Amplitude for pseudonymous product analytics and RevenueCat for subscriptions. We do not sell your data, show ads, or track you across other apps or websites.
1. Who we are
OmniDress is an iPhone app published by Mykyta Yankov, an individual developer trading as OmniDress (“OmniDress”, “we”, “us”, “our”). For the purposes of the EU General Data Protection Regulation (GDPR) and the UK GDPR, we are the data controller for the personal data described in this policy.
Email: support.omnidress@gmail.com
Postal address: available on request by email.
This policy covers the OmniDress iPhone app and this website. It does not cover the App Store itself, which is operated by Apple under Apple’s privacy policy.
2. What stays on your device
OmniDress works without an account. You never give us a name, an email address or a password, and we operate no server that holds your wardrobe. The following is written to your iPhone’s app storage and stays there:
- Garment images — the cut-out image of each garment you keep, stored in the app’s local database.
- Garment details — name, category, colours, warmth and whether it handles rain, whether proposed by the app or typed by you.
- Outfits — which garments you combined, how you arranged them on the canvas, and the names you gave them.
- Wear history — which outfits and garments you marked as worn, and when.
- App settings — such as whether you have finished the first-run walkthrough.
We cannot read any of it. If you have iCloud Backup switched on, your iPhone’s backup may include this data as part of the app’s storage; those backups are held by Apple under Apple’s terms, not ours. Because there is no cloud copy on our side, deleting the app deletes your wardrobe permanently, and we cannot restore it.
3. Photos and the AI that reads them
Recognising clothes is the one feature that sends your images off the device. It uses Google’s Gemini models, reached through Google’s Firebase AI Logic service. When you scan a garment — with the camera, from your photo library, or by sharing an image into OmniDress from another app — the following is sent to Google:
- The whole photo, so the model can find every garment in it, return a box around each one, and propose a name, category, colours and warmth for each. This is the primary way garments are found, so in an ordinary scan the full image you captured or chose is uploaded, and the tags come back from this one step.
- The cropped image of a single garment, if the step above finds nothing. OmniDress then separates the garments out on your device and sends each crop on its own, so the model can propose a name, category, colours and warmth for it.
- The same crop again, so the model can redraw it as a clean product-style image, and once more so a second pass can check that the redraw still shows your garment.
- Technical request data, including your IP address and a device-integrity token issued through Apple’s App Attest and Firebase App Check. We use that token only to stop other software from abusing our API quota.
One upload can happen outside a scan. Garments saved before OmniDress started recording how warm a garment is have that field empty, and shortly after the app starts it sends a thumbnail of each of those garments — the garment on its own, never the photo it came from — to Google to fill the field in. It gives up after two failures in a row and tries again on a later start.
Two things about this deserve emphasis, because they are easy to get wrong:
- Google’s free tier is not private. Under Google’s additional terms for the unpaid tier of the Gemini API, Google may use content submitted through it to develop and improve its products, and human reviewers may read that content. Do not scan photos containing anything you would not want reviewed. We will update this policy if and when we move to the paid tier, where Google does not use submitted content this way.
- People can end up in the picture. Nothing forces you to photograph a garment laid flat. If you photograph clothes while they are being worn, the photo — and often the crop taken from it — will show the person wearing them. Only photograph other people with their agreement.
We do not keep a copy of anything sent to Google. Google’s handling of it is governed by the Google Privacy Policy and the Gemini API additional terms.
Separating a garment from its background is done on your device by Apple’s Vision framework, and does not involve a network request.
4. Location and weather
If you allow it, OmniDress checks the local forecast so it can suggest clothes for today’s weather. The app asks for approximate location only — it never requests your precise coordinates — and uses it solely to fetch weather from Apple’s WeatherKit service. Your location is not sent to us, is not stored in your wardrobe, and is not shared with Google or with our analytics provider by the app. Apple’s handling of WeatherKit requests is covered by Apple’s privacy policy.
You can withdraw this permission at any time in iOS Settings › Privacy & Security › Location Services. The app keeps working; it simply stops tailoring suggestions to the weather.
5. Analytics
We use Amplitude to understand how the app is used — which steps people finish, where they get stuck, and whether a feature is worth keeping. Analytics events carry:
- Product interaction — that a scan started and how it ended, how many garments were stored, that an outfit was saved or reopened, that the paywall was shown and what triggered it, that a purchase completed or was cancelled, that a wear was logged, and similar milestones. These record that something happened, together with counts and short labels. They never carry your garment images, garment names or outfit names.
- A device identifier generated at random by Amplitude for this installation. It is not Apple’s advertising identifier, and it is reset when you delete the app.
- Coarse location — country, region and city, which Amplitude derives from the IP address of the request. This happens on their servers; it does not use your device’s location permission.
- Standard device and app details, such as the app version, iOS version and device model.
We do not use this data to identify you, and we do not combine it with data from other companies to build a profile of you. OmniDress performs no tracking in the sense Apple defines it: it shows no ads, shares no data with data brokers, and does not ask for App Tracking Transparency permission because it has nothing to ask for.
6. Feedback you choose to send
Some features that do not exist yet are represented in the app by a “coming soon” card with a short form. If you fill that form in, the options you tapped and the text you typed, exactly as you typed it, are sent to Amplitude as part of an analytics event — carrying the same device identifier as every other event, which makes it linked data. Please don’t type anything into that box you would rather keep private; it is a product suggestion box, not a support channel. For anything sensitive, email us instead.
7. Subscriptions and payments
OmniDress Extra is sold as an auto-renewing subscription through the App Store. Apple takes the payment — we never see your card number, billing address or Apple Account details.
We use RevenueCat to tell the app whether your subscription is active. RevenueCat receives an anonymous user identifier it generates for your installation, together with the purchase and renewal information Apple reports for it. It does not receive your name or email address from us.
8. Who else is involved
We keep this list short on purpose. These are every third party the app exchanges data with:
| Service | What it receives | Why |
|---|---|---|
| Google (Gemini API via Firebase AI Logic) | Scan photos, garment crops, IP address, device-integrity token | Finding, naming and redrawing garments |
| Apple (WeatherKit, App Store, App Attest) | Approximate location for forecasts; purchase processing; device attestation | Weather, payments, abuse prevention |
| Amplitude | Product events, random device ID, IP-derived coarse location, feedback text | Product analytics |
| RevenueCat | Anonymous user ID, purchase and renewal status | Managing subscriptions |
These providers are located in the United States and elsewhere outside Ukraine and the EEA. Where personal data of EEA or UK users is transferred to them, the transfer relies on the European Commission’s Standard Contractual Clauses or an equivalent safeguard offered in that provider’s data processing terms.
We do not sell personal data, and we do not share it for cross-context behavioural advertising — under the California Consumer Privacy Act or any other law.
9. Legal bases (EEA and UK users)
- Performance of a contract — running the app you asked to use, including AI garment recognition and keeping your subscription active.
- Your consent — location for weather, which you grant in the system prompt and can withdraw at any time; and the feedback form, which is entirely optional.
- Our legitimate interests — understanding how the app is used so we can improve it, and preventing abuse of our AI quota. We have weighed these against your interests and limited the data accordingly.
10. How long data is kept
- On your device — until you delete the garment, the outfit, or the app. There is no expiry.
- Analytics events — retained by Amplitude on our behalf for no longer than 12 months, then deleted.
- Subscription records — kept by RevenueCat for as long as your subscription is active and afterwards as needed for tax, accounting and dispute-handling obligations.
- Images sent to Google — kept by Google under its own terms for the Gemini API. We hold no copy.
11. Your rights
Depending on where you live, you may have the right to access the personal data we hold about you, to have it corrected or erased, to restrict or object to how we use it, to receive it in a portable format, and to withdraw consent you have given. Users in the EEA and the UK have these rights under the GDPR; users in Ukraine under the Law of Ukraine “On Personal Data Protection”; users in California under the CCPA/CPRA. We will never charge you or treat you differently for exercising them.
Two practical notes:
- Most of it is already in your hands. Your wardrobe is on your phone. Delete a garment or an outfit in the app to erase it; delete the app to erase all of it at once.
- Analytics data may not be traceable to you. Because we hold no account for you, the events Amplitude stores are tied to a random device identifier we cannot connect to a person. If you ask us to delete them, we will do our best, but we may need you to help us identify the installation, and we may be unable to locate it. We are not required to collect extra information about you purely to make such a request possible.
To exercise a right, email support.omnidress@gmail.com. We aim to reply within 30 days. If you believe we have handled your data badly, you may complain to your local data protection authority — in the EEA, the supervisory authority of the country you live in; in Ukraine, the Ukrainian Parliament Commissioner for Human Rights.
12. Children
OmniDress is not directed to children. It is not intended for anyone under 13, or under 16 in countries of the EEA that set the age of digital consent at 16. We do not knowingly collect personal data from children. If you believe a child has used the app and sent us data, contact us and we will delete what we can identify.
13. Security
Data on your device is protected by iOS and its file-level encryption, tied to your device passcode. Everything the app sends over the network travels over HTTPS. No system is perfectly secure, and we can only speak for the parts we control: we hold no server and no database of users, which removes the most common way personal data is leaked at scale.
14. Changes to this policy
We will update this page when the app’s handling of data changes — most likely when we move to the paid tier of Google’s API, or when wardrobe sync arrives. The date at the top always reflects the current version. If a change materially reduces your privacy, we will make it visible in the app rather than relying on you to re-read this page.
15. Contact
Mykyta Yankov, trading as OmniDress
support.omnidress@gmail.com
Postal address available on request.