Приватность как архитектура: что на самом деле покидает устройство в MeteoHealth
Разбор устройства приложения: почему собирать данные попросту некуда — нет сервера, нет аккаунта, три исходящих адреса — и что из этого ещё не сделано.
Текст о приватности обычно описывает намерения: что компания обещает делать с данными или обещает не делать. Здесь описание другого рода. Это рассказ о том, как устроено приложение, — сверенный с его собственным исходным кодом, — и о том, что эта конструкция делает возможным, а что нет. Это не обещание и не манифест. Обещание можно изменить следующим обновлением политики; архитектура — это описание того, что код делает прямо сейчас, и весь текст ниже держится именно на этом уровне.
Это и не медицинский совет: ничего дальше не говорит о том, что значит тот или иной симптом или паттерн для вашего здоровья, — только о том, куда уходят и не уходят данные о нём. Если вы читаете это, потому что решаете, доверить ли приложению записи о своём самочувствии, — вопрос вполне уместный, и его стоит закрыть до того, как вы впишете туда хоть слово. Это более узкий вопрос, чем «хорошее ли это приложение», и на него текст ниже тоже не отвечает.
Дальше — по порядку: где данным вообще негде оказаться, что стоит внутри самого приложения, что всё же уходит наружу и куда, где хранятся ваши записи, и что из всего этого следует, а что нет.
Данные о других приложениях проверены 28 июля 2026.
Цены и состав функций указаны для App Store США на эту дату — в вашем регионе они могут отличаться.
Собирать некуда
Самый простой вопрос к любому приложению, которое касается здоровья: если бы кто-то захотел собрать ваши данные, куда бы они попали? Для MeteoHealth ответ такой: адреса для этого просто нет. У приложения нет собственного сервера — ни спящего, ни резервного, никакого вообще. Нет ни одной точки под нашим контролем, которая принимала бы то, что вы записываете.
Это другое утверждение, чем «мы решили не собирать данные», и разница здесь существенна. Компания, у которой есть сервер и которая решила не логировать запросы, — в одном изменении политики от того, чтобы начать их логировать. У приложения без сервера нет такого переключателя, потому что нет и машины на другом конце, ожидающей соединения. Это не настройка — это форма самой вещи.
Та же логика применима к аккаунтам. Нет регистрации, нет входа, нет аккаунта в принципе — а значит, некуда прикрепить имя, адрес почты или постоянный идентификатор к вашим записям, даже если бы кто-то захотел. Ничто из записанного не привязано к личности, потому что в приложении нет самой системы идентификации. Записи никак не связаны и друг с другом между разными людьми: нет общего пространства, где записи одного человека соседствовали бы с записями другого, — только отдельные устройства, каждое само по себе.
Если сложить эти два факта, у вопроса, который естественно возникает к любому приложению о здоровье — «что будет с моими данными, если компанию взломают, продадут или закроют», — здесь необычно короткий ответ. Взламывать, передавать или закрывать попросту нечего: не существует единого хранилища, где накапливались бы записи разных людей, потому что такого места не было никогда. Всё, что есть, существует только на отдельных устройствах и в личных iCloud-аккаунтах отдельных людей — не в чём-то, что принадлежит нам.
Что действительно внутри
Утверждение «нет сервера» значит ровно столько, сколько значит и то, что работает на самом устройстве. В приложение, которое попадает на телефон, не линкуется ни одна сторонняя библиотека. В проекте есть ровно одна внешняя зависимость: библиотека для снапшот-тестов, которую используют в разработке. Она подключена только к тестовому таргету — то есть участвует в проверке приложения перед релизом, но никогда не попадает в сборку, которая устанавливается на устройство.
Помимо этой единственной тестовой зависимости, нет ни пакета аналитики, ни SDK для отчётов о сбоях, звонящего наружу, ни рекламной библиотеки — ни в приложении для iPhone, ни в приложении для часов, ни в виджетах. Рекламный идентификатор нигде не читается, и ничто в приложении не обращается к системным API отслеживания. Это не настройка, которую можно выключить в меню, — этого просто нет ни в одном таргете, который выходит в релиз. Речь именно обо всех таргетах сразу, потому что перечисление «нет аналитики в приложении» само по себе ничего не говорит про виджет или про отдельную сборку для часов — каждая из них могла бы нести свой собственный набор зависимостей, и ни одна не несёт.
Стоит проговорить, что именно убирает это отсутствие, потому что «нет аналитики» звучит как небольшая техническая деталь, хотя это не так. Библиотеки аналитики обычно существуют для того, чтобы отвечать на вопросы вроде «какие экраны вы открываете», «сколько времени проводите», «на что нажимаете перед тем, как выйти», — и такой поведенческий след за достаточное число сеансов способен сказать о человеке почти столько же, сколько и то, что он вписал напрямую. В этом приложении нет кода, который строил бы такой след, ни в одном из таргетов, в которых оно выходит. Не логировать его — не то же самое, что обезличить или агрегировать перед хранением: механизма, который бы его собирал, попросту нет нигде в коде.
Что всё-таки уходит наружу
Всё это не означает, что приложение молчит в сети — это не так. Наружу приложение обращается ровно к трём адресам, и по каждому из них с запросом уходит конкретный, ограниченный набор сведений.
В сервис погоды уходят ваши координаты, ключ доступа и язык, на который настроен интерфейс. Больше с этим запросом ничего не идёт. Координаты уходят полной точности, без округления до города или региона — сейчас в этом месте нет шага, который бы их огрублял. Прогноз погоды привязан к конкретной точке, и получить его, не сообщив, где вы находитесь, невозможно. Это единственные сведения о вас, которые обязаны покинуть устройство, чтобы эта функция вообще работала.
В службу космической погоды NOAA уходит обычный запрос вообще без параметров — с ним не уезжает ничего о вас. Обратно приходит одно общее число — планетарный индекс Kp, одинаковое для всех, кто его запрашивает. Здесь просто нечего пересылать в личном смысле ни в одну сторону.
В открытую базу продуктов питания уходит штрихкод того, что вы отсканировали, плюс адрес нашей поддержки в заголовке запроса — вежливость по отношению к тем, кто поддерживает эту базу, чтобы они знали, кто обращается, а не сведения о вас как о человеке. Ваши поиски продуктов не связаны ни с чем ещё, что вы записываете, — штрихкод уходит сам по себе, без привязки к тому, что вы отметили в дневнике симптомов в тот же день.
Три адреса, три разные причины, и в каждом случае — конкретный, ограниченный набор сведений: не ничего, но и не всё подряд.
Где на самом деле лежат ваши записи
Записи, которые вы делаете, — симптомы, заметки, всё, что вы отслеживаете, — по умолчанию лежат на устройстве. Если они куда-то синхронизируются, то только в ваш личный аккаунт iCloud, приватное пространство, привязанное к вашему Apple ID, а не в общую базу и не туда, куда мог бы заглянуть кто-то ещё. Никакого промежуточного хранилища на этом пути нет.
Записи цикла обработаны ещё уже: они вообще не покидают устройство, даже в iCloud. Единственное исключение — Apple Health, и туда пишется только поток менструации, и только если вы явно дали на это разрешение. Больше ничего о цикле в Health не попадает, и ничто не попадает без вашего согласия. Это более узкий путь, чем у остальных записей: обычный журнал симптомов может синхронизироваться в личный iCloud, а записи цикла остаются на устройстве, и наружу из них уходит только поток менструации — только в Health и только по разрешению.
Связь между погодой и самочувствием — то, что приложение действительно считает, — вычисляется прямо на устройстве. Это число никуда не отправляется, чтобы быть посчитанным, — оно строится локально из данных, которые уже локальны: погодные значения приходят с сервиса погоды, записи о самочувствии уже лежат в приложении, а само сопоставление одного с другим происходит на телефоне, а не где-то ещё. А на карточке App Privacy в App Store для этого приложения указана самая строгая из возможных категорий: Data Not Collected.
Что из этого следует, а что нет
Стоит быть точным насчёт того, что подобная архитектура доказывает, а что нет, — потому что эти две вещи легко смешать. То, что данные некуда отправлять, не превращает трекер самочувствия в медицинский прибор — это утверждение о том, куда движется информация, а не о том, для чего приложение и как им пользоваться. Связь, которую приложение показывает между погодой и самочувствием, остаётся именно связью, выведенной из ваших собственных записей, — не диагнозом и не тем, на основании чего стоит действовать без собственного суждения.
Стоит удержаться и от другого, соблазнительного хода мысли: ничто из сказанного выше не делает саму связь более достоверной. Приложение без сервера и без аналитики вполне может показать паттерн, который на самом деле хрупкий, случайный или построен на слишком малом числе записей, чтобы что-то значить, — отсутствие сбора данных ничего не говорит о качестве того, что приложение выводит из данных, которые вы всё же ввели. Приватность, другими словами, — это свойство того, куда уходит информация. Это не свойство того, насколько хороши выводы приложения. Это два разных вопроса, и хороший ответ на один не отвечает на другой. Устройство, при котором собирать данные негде, ничего не меняет в том, как устроена сама статистика внутри: несколько недель записей — по-прежнему несколько недель записей, с теми же ограничениями, что и у любых личных наблюдений за собой.
Держать эти два вопроса рядом и есть смысл описывать подобную архитектуру вообще. Знание о том, что записи остаются на вашем устройстве и в вашем личном iCloud, отвечает на вопрос о доступности — кто вообще мог бы это увидеть и при каких обстоятельствах, и ответ здесь близок к «почти никто, почти ни при каких». Оно ничего не говорит о том, отражает ли конкретная связь, которую показывает приложение, что-то реальное про ваше тело и погоду, или это совпадение, собранное из короткого ряда записей. Важны оба вопроса. Не путать их и не подменять один другим — вот что делает ответ на каждый из них хоть чего-то стоящим.
Фигура выше сопоставляет каждый из трёх адресов с тем, что именно к нему уходит, — и последняя строка на ней важна отдельно: она называет то, что остаётся и никуда не уходит вовсе.
Чего мы ещё не сделали
Точность координат. Сейчас в сервис погоды уходят координаты полной точности, хотя для прогноза хватило бы точности примерно до километра. Округление запланировано, но пока не выпущено — значит, не сделано.
Формулировка разрешения на геолокацию. Системная строка, которую видит пользователь, когда приложение запрашивает геолокацию, сейчас сформулирована шире, чем нужно. Она переписывается на более узкую и точную.
Одна фраза в интерфейсе о синхронизации. Формулировка в настройках приложения сейчас описывает синхронизацию сильнее, чем она есть на самом деле. Она переписывается. Здесь нечего добавить сверх того, что это найдено и исправляется.
Проверка декларации App Privacy. Раз координаты уходят стороннему сервису погоды, декларацию в App Store стоит перепроверить на точность формулировки. Вопрос задан. Ответа пока нет.
Этот список — не что-то отдельное от всего сказанного выше, а та же архитектура, честно описанная в той части, где она пока не закончена. Ни один из этих четырёх пунктов не меняет того, что написано в разделах выше: сервера как не было, так и нет, аналитики как не было, так и нет, а незавершённые пункты касаются только точности координат, формулировок и одной проверки декларации. Статья о приватности, которая делает вид, что закрыто всё, стоит дешевле, чем список того, что ещё нет.
Вот так устроено приложение на дату вверху этой страницы. Чтобы проверить нечто подобное у любого приложения, включая это, для этого есть чек-лист чтения собственной страницы приложения в App Store перед установкой. А о том, что именно делает связь, которую приложение считает прямо на устройстве, рассказывает страница функции корреляций с погодой. А поскольку архитектура сама по себе ничего не говорит о том, подходит ли вам именно это приложение, рядом стоит построчное чтение трёх страниц в App Store — включая случаи, где это чтение выводит на чужое приложение, а не на наше.
- MeteoHealth: Symptom Tracker — App Store (US storefront), 2026.
- About privacy information on the App Store and the choices you have to control your data — Apple Support, 2026.