Kulora — Privacy Policy
Last updated: 23 October 2026
Your photos and the colours you measure stay on your device, encrypted, and leave it only when you share something yourself. The app's own code makes no network requests, and there is no account and no server of ours. The Android app shows banner ads from the Yandex Advertising Network; the ad software uses the internet and, if you allow it, your device's advertising ID — see Advertising. The web, iPhone, iPad and desktop versions have no ads.
Kulora identifies colours in photos and explains them for choosing colours for a room. This policy explains what the app stores, what it never does, and how to delete everything. It applies to Kulora for Android, iOS, macOS, Windows, Linux and the web version.
What the app stores on your device
All of it stays on the device. None of it is sent anywhere by the app.
| What | Why | How it is protected |
|---|---|---|
| Photos you take or open in the app | So you can come back and measure more colours in them | Encrypted (AES-256-GCM) |
| Colours you measure, with a small preview of the measured area, their labels, and your session titles and notes | Your history | Encrypted database (SQLCipher) |
| Palette files you import | To match your colours against them | Encrypted database (SQLCipher) |
| Settings: language, theme, measuring options, which colour systems to show, and your answer about the advertising ID (Android) | To keep the app as you left it | The operating system's app-private storage |
The encryption keys are random, generated on the device, and kept in the operating system's secure key store (Android Keystore, Apple Keychain, Windows DPAPI, Linux Secret Service). Photos you take in the app are not saved to your photo gallery.
Backups
- Android: the app's data is excluded from cloud backup and from device-to-device transfer. Uninstalling the app or changing phones therefore loses your history.
- iPhone, iPad and Mac: like other apps' data, Kulora's encrypted files can be included in your own device backup (iCloud or a computer), and restored from it. They go only to your own backup.
Network use
The app's own code makes no network requests. Every colour system and explanation ships inside the app, and colour matching works with no connection. There is no server of ours to send anything to. On Android the app holds the internet permission for the advertising SDK only, which is the one part of the app that talks to the internet (see Advertising). The other versions show no ads, and the macOS app has no network entitlement.
Camera and photos
- Camera: when you tap Take photo, the app asks the system camera to take one. On iPhone and iPad this asks for camera permission; on Android the system camera app is used and the app itself holds no camera permission.
- Photo library: the app only reads the image you pick in the system picker. It does not browse or read the rest of your library.
Photos are used only to measure colours in them, on your device.
What leaves your device, and only when you say so
When you tap Share, the app makes text, a spreadsheet (CSV), a Kulora file (JSON) or an image card with the colours you chose — their values, your labels and session title, and their closest matches — never your photo. It hands that to your system's share sheet, saves it where you choose, or copies it to the clipboard. What happens next is up to you and the app you share with.
Palettes you import can never be exported or shared from the app.
Advertising
The app is free, and on Android advertising is how it is paid for. Banner ads appear in exactly two places — at the bottom of the colour library and at the bottom of the history list — and never over a photo, the colour picker, the camera or a colour's explanation, where they would cover what you are measuring. There are no full-screen ads: the ad software's own ad at launch and its ad on returning to the app are both switched off. The web, iPhone, iPad and desktop versions show no ads.
The ads are served by the Yandex Mobile Ads SDK, which is part of the Android app. To do that it uses your device's advertising ID and information about the device and its network connection, such as your IP address, and it sends those to Yandex's servers. That collection is Yandex's, made under Yandex's privacy policy rather than ours. The SDK brings Yandex's analytics library (AppMetrica) with it as a dependency; its location tracking is switched off, and Kulora itself starts no analytics.
Until 23 October 2026 a second ad network's software was in the app. Start.io served both banners until 15 October, then served nothing and stayed compiled in — its SDK in the app and never started. It is out. It also declared three Android permissions that appeared in the app's entry in the stores, none of which Kulora ever used: advertising topics, the Wi-Fi connection state, and permission to be started when the phone boots. Those are gone with it. If you installed a version from before that date, updating removes them.
Both SDKs are part of every Android build, which is why the app declares the permissions listed below whichever network serves it. Each banner uses only one network, and the Details link on the question below opens the policy of the network serving that banner. You are asked once, and your answer applies to both networks.
The app itself starts no analytics and reports nothing about how you use it.
What is never sent to an ad network, or anywhere else: your photos, the colours you measure, your sessions, labels and notes, and the palettes you import. The app's own code has no way of reaching the network, which is checked automatically every time the app is built.
You are asked first. Before the first ad, the app asks whether your advertising ID may be used to choose ads, and asks for no ad until you answer. If you allow it, ads are personalised with it. If you decline, the app stays free and still shows ads — they are simply chosen without your advertising ID, and the ad network is told so before any ad is requested. You can change the answer at any time in Settings → Advertising → Use my advertising ID, and the change takes effect immediately.
If the app cannot tell the ad network about your refusal — which should not happen, but is not something it will guess about — it shows no ads at all rather than asking anyway. The ad slots stay empty and the app stays free. The question you are asked, and the line under the switch in Settings, say which of the two it will be.
You can also reset or delete your advertising ID at any time in Android's own settings, under Privacy → Ads. Colour matching keeps working with no network and no ads.
Analytics, purchases
There are none of our own. The app runs no analytics or crash reporting of its own and has no purchases.
Permissions on Android, and what each is for
| Permission | What it is for |
|---|---|
| Internet and network state | Used only by the advertising SDK to load ads. The app's own code does not use them. |
Advertising ID (AD_ID) | Declared by the advertising SDK so ads can be selected and counted. Reset or delete the ID in Android's settings at any time. |
| Play install referrer | Declared by the advertising SDK and a library it depends on. It reads which campaign an install came from. |
The app holds no camera, storage or location permission: photos are taken with the system camera and chosen with the system photo picker.
Web version
A browser has no secure key store, so the web version keeps its history, photos and palettes unencrypted in the website's private storage in your browser (IndexedDB / Origin Private File System). It is still never sent anywhere. The app says so in Settings. Clearing the site's data in your browser deletes it.
Deleting your data
- Delete a single colour or session from its screen.
- Settings → Delete all history deletes all sessions, photos, colours, imported palettes and the encryption keys.
- Uninstalling the app deletes everything it stored on the device.
We hold no data about you, so there is nothing for us to delete, export or correct on request — but you are welcome to ask. The advertising ID belongs to Android's settings and is reset or deleted there; data the ad SDK sent to Yandex is covered by Yandex's privacy policy (and, for what reached Start.io while it served, before 15 October 2026, Start.io's privacy policy).
Children
The app is not directed at children. Nothing of the app's own is collected from anyone; the advertising SDK on Android works as described under Advertising.
Changes
If this policy changes, the new version appears on this page with a new date at the top. A change that introduced any further data collection would be announced in the app before it took effect.
Contact
Artsiom Maldavanau — amaldavanau@gmail.com.
Kulora — Политика конфиденциальности
Обновлено: 23 октября 2026 года
Ваши фото и измеренные цвета хранятся на устройстве в зашифрованном виде и покидают его, только если вы сами чем-то поделитесь. Собственный код приложения не выполняет сетевых запросов; нет учётных записей и наших серверов. Приложение для Android показывает рекламные баннеры Рекламной сети Яндекса; рекламный модуль пользуется интернетом и, если вы разрешите, рекламным идентификатором устройства — см. раздел «Реклама». В веб-версии, на iPhone, iPad и компьютере рекламы нет.
Kulora определяет цвета на фотографиях и объясняет их, чтобы помочь выбрать цвета для интерьера. Здесь описано, что приложение хранит, чего оно никогда не делает и как всё удалить. Политика относится к Kulora для Android, iOS, macOS, Windows, Linux и к веб-версии.
Что приложение хранит на устройстве
Всё это остаётся на устройстве. Приложение ничего никуда не отправляет.
| Что | Зачем | Как защищено |
|---|---|---|
| Фото, которые вы сняли или открыли в приложении | Чтобы вернуться к ним и измерить другие цвета | Шифрование (AES-256-GCM) |
| Измеренные цвета с небольшим фрагментом измеренной области, их метки, названия сеансов и заметки | Ваша история | Зашифрованная база данных (SQLCipher) |
| Импортированные файлы палитр | Чтобы сравнивать с ними ваши цвета | Зашифрованная база данных (SQLCipher) |
| Настройки: язык, тема, параметры измерения, какие цветовые системы показывать, ваш ответ про рекламный идентификатор (Android) | Чтобы приложение оставалось таким, как вы его настроили | Закрытое хранилище приложения в системе |
Ключи шифрования случайные, создаются на устройстве и хранятся в защищённом хранилище ключей системы (Android Keystore, Apple Keychain, Windows DPAPI, Linux Secret Service). Снимки, сделанные в приложении, не сохраняются в галерею.
Резервные копии
- Android: данные приложения исключены из облачных резервных копий и из переноса на другое устройство. Поэтому при удалении приложения или смене телефона история теряется.
- iPhone, iPad и Mac: как и данные других приложений, зашифрованные файлы Kulora могут попасть в вашу собственную резервную копию устройства (iCloud или компьютер) и восстановиться из неё. Они попадают только в вашу копию.
Работа с сетью
Собственный код приложения не выполняет сетевых запросов. Все цветовые системы и пояснения входят в само приложение, и подбор цвета работает без подключения. Наших серверов, куда можно было бы что-то отправить, не существует. На Android у приложения есть разрешение на доступ в интернет только ради рекламного SDK — это единственная часть приложения, которая обращается к интернету (см. «Реклама»). Остальные версии рекламы не показывают, у приложения для macOS нет сетевых прав.
Камера и фотографии
- Камера: когда вы нажимаете Сделать фото, приложение просит системную камеру сделать снимок. На iPhone и iPad при этом запрашивается доступ к камере; на Android используется системное приложение камеры, а у самого приложения разрешения на камеру нет.
- Фотографии: приложение читает только то изображение, которое вы выбрали в системном окне выбора. Остальную галерею оно не просматривает и не читает.
Фотографии используются только для измерения цветов на вашем устройстве.
Что покидает устройство — только по вашему решению
Когда вы нажимаете Поделиться, приложение создаёт текст, таблицу (CSV), файл Kulora (JSON) или карточку-изображение с выбранными цветами — их значениями, вашими метками, названием сеанса и ближайшими совпадениями — но никогда не с вашим фото. Результат передаётся в системное меню «Поделиться», сохраняется туда, куда вы укажете, или копируется в буфер обмена. Что происходит дальше, решаете вы и приложение, с которым вы делитесь.
Импортированными палитрами нельзя поделиться, и их нельзя экспортировать из приложения.
Реклама
Приложение бесплатное, и на Android его оплачивает реклама. Баннеры появляются ровно в двух местах — внизу библиотеки цветов и внизу списка истории — и никогда поверх фото, пипетки, камеры или объяснения цвета, где они закрывали бы то, что вы измеряете. Полноэкранной рекламы нет: собственная реклама рекламного модуля при запуске и при возвращении в приложение выключена. В веб-версии, на iPhone, iPad и компьютере рекламы нет.
Рекламу показывает Yandex Mobile Ads SDK, входящий в приложение для Android. Для этого он использует рекламный идентификатор вашего устройства и сведения об устройстве и сетевом соединении, например IP-адрес, и передаёт их на серверы Яндекса. Этот сбор ведёт Яндекс на своих условиях, изложенных в его политике конфиденциальности, а не мы. Вместе с SDK в приложение попадает библиотека аналитики Яндекса (AppMetrica); отслеживание местоположения в нём выключено, и сама Kulora никакой аналитики не запускает.
До 23 октября 2026 года в приложении был второй рекламный модуль. Start.io показывал оба баннера до 15 октября, затем не показывал ничего и оставался в сборке — его SDK был в приложении и ни разу не запускался. Теперь его нет. Вместе с ним он объявлял три разрешения Android, которые были видны в карточке приложения в магазинах и которыми Kulora никогда не пользовалась: рекламные тематики, состояние подключения Wi-Fi и право запускаться при включении телефона. Они удалены вместе с ним. Если у вас стоит версия до этой даты, обновление их уберёт.
Оба SDK входят в каждую сборку для Android — поэтому приложение объявляет перечисленные ниже разрешения независимо от того, какая сеть показывает рекламу. Каждый баннер использует только одну сеть, и ссылка «Подробнее» в вопросе ниже открывает политику той сети, которая показывает этот баннер. Вопрос задаётся один раз, и ответ действует для обеих сетей.
Само приложение никакую аналитику не запускает и о том, как вы им пользуетесь, ничего не сообщает.
Что не уходит ни в рекламную сеть, ни куда-либо ещё: ваши фото, измеренные цвета, сеансы, метки и заметки, импортированные палитры. Собственный код приложения вообще не имеет доступа к сети, и это проверяется автоматически при каждой сборке.
Сначала спрашиваем. Перед первой рекламой приложение спрашивает, можно ли использовать ваш рекламный идентификатор для её подбора, и до ответа не запрашивает ни одной рекламы. Если разрешить, реклама подбирается персонально. Если отказать, приложение останется бесплатным и реклама никуда не денется — её просто будут подбирать без рекламного идентификатора, и рекламная сеть узнаёт об этом раньше, чем будет запрошена хоть одна реклама. Ответ можно изменить в любой момент: «Настройки» → «Реклама» → «Использовать рекламный идентификатор», изменение действует сразу.
Если приложение не сможет сообщить рекламной сети о вашем отказе — так быть не должно, но угадывать приложение не станет, — оно вообще не будет показывать рекламу, а не запросит её вопреки отказу. Рекламные места останутся пустыми, приложение — бесплатным. В самом вопросе и в строке под переключателем в настройках написано, что именно произойдёт.
Сам рекламный идентификатор можно в любой момент сбросить или удалить в настройках Android: «Конфиденциальность» → «Реклама». Подбор цвета продолжает работать без сети и без рекламы.
Аналитика, покупки
Собственных нет. Приложение не ведёт своей аналитики и отчётов о сбоях, покупок в нём нет.
Разрешения на Android и зачем они
| Разрешение | Зачем |
|---|---|
| Интернет и состояние сети | Используются только рекламным SDK для загрузки рекламы. Собственный код приложения ими не пользуется. |
Рекламный идентификатор (AD_ID) | Объявлен рекламным SDK, чтобы подбирать и учитывать рекламу. Идентификатор можно в любой момент сбросить или удалить в настройках Android. |
| Источник установки Google Play | Объявлен рекламным SDK и библиотекой, от которой он зависит. Он сообщает, из какой кампании пришла установка. |
Разрешений на камеру, хранилище и местоположение у приложения нет: снимки делает системная камера, изображения выбираются в системном окне выбора фото.
Веб-версия
В браузере нет защищённого хранилища ключей, поэтому веб-версия хранит историю, фото и палитры без шифрования в закрытом хранилище сайта в вашем браузере (IndexedDB / Origin Private File System). Они всё равно никуда не отправляются. Приложение сообщает об этом в настройках. Очистка данных сайта в браузере удаляет их.
Удаление данных
- Отдельный цвет или сеанс удаляется на его экране.
- Настройки → Удалить всю историю удаляет все сеансы, фото, цвета, импортированные палитры и ключи шифрования.
- Удаление приложения стирает всё, что оно хранило на устройстве.
У нас нет никаких данных о вас, поэтому нам нечего удалять, выгружать или исправлять по запросу — но вы всегда можете написать. Рекламный идентификатор живёт в настройках Android и сбрасывается или удаляется там; данные, переданные рекламным SDK в Яндекс, регулируются политикой конфиденциальности Яндекса (а то, что успело уйти в Start.io, пока он показывал рекламу, то есть до 15 октября 2026 года, — политикой конфиденциальности Start.io).
Дети
Приложение не предназначено для детей. Само приложение ни у кого не собирает данных; рекламный SDK на Android работает так, как описано в разделе «Реклама».
Изменения
Если политика изменится, новая версия появится на этой странице с новой датой вверху. Об изменении, которое добавило бы какой-либо другой сбор данных, будет сообщено в приложении заранее.
Контакты
Artsiom Maldavanau — amaldavanau@gmail.com.