Dredfit не собирает никаких данных. Вообще. Ни аккаунтов, ни аналитики, ни рекламы, ни каких-либо сетевых запросов.
Вся история тренировок — записи, вариация и доза каждого движения, корректировки — хранится локально на твоем устройстве. У Dredfit нет серверов, и он никуда ее не передает. При удалении приложения эти данные удаляются вместе с ним — с двумя исключениями: тренировки, уже записанные в «Здоровье» или в «Здоровье и спорт», останутся там, пока ты их там не удалишь, а данные, уже попавшие в резервную копию телефона (о ней ниже), остаются в ней, пока существует она сама.
На iPhone стандартные резервные копии iOS (iCloud или локальные) могут включать данные приложения как часть копии устройства — на условиях конфиденциальности Apple.
На Android Dredfit участвует в штатном резервном копировании Android. Если на телефоне включено резервное копирование, Android примерно раз в сутки копирует данные приложения — историю и настройки, включая вес тела, — в твой аккаунт Google и восстанавливает их всякий раз, когда Dredfit снова устанавливается на телефон с этим аккаунтом: после переустановки или на новом телефоне. Google хранит эту копию в резервных копиях твоего аккаунта — на Android 9 и новее, если на телефоне есть блокировка экрана, со сквозным шифрованием его PIN-кодом, графическим ключом или паролем — на условиях политики конфиденциальности Google; прочитать ее мы не можем. Резервное копирование можно выключить в настройках телефона.
В любой момент можно выгрузить из настроек полную резервную копию в обычный JSON-файл. В копии — история тренировок вместе с настройками (в том числе дни отдыха, время напоминания, звуки, переключатель турника, вес тела вместе с отметкой о том, что его поставляет «Здоровье» или «Здоровье и спорт», — отметкой, которая при восстановлении копии не действует: откуда взято число, отвечает только хранилище данных о здоровье этого телефона, — и служебные отметки о том, какие тренировки туда уже записаны). Этот файл уходит туда, куда ты его отправишь, — через меню «Поделиться» на iPhone, через системный диалог сохранения в выбранное тобой место на Android, — мы его не видим. Такую копию можно и импортировать обратно, на любой из двух платформ: импорт лишь читает выбранный тобой файл и ничего никуда не передает.
После вехи — и на вкладке «Прогресс» — Dredfit предлагает поделиться карточкой: небольшим изображением с числом тренировок и суммой ступеней (или самой вехой), кривой прогресса и датой — а на круглой вехе (10-я, 25-я и каждая 50-я тренировка) еще и «Тогда … — Сейчас …» с тем, сколько прошло с начала, — которое целиком создается на твоем устройстве. Как и резервная копия, карточка уходит только туда, куда ты отправишь ее через меню «Поделиться», — и больше никуда.
Dredfit ничего не отправляет по сети, поэтому защищать при передаче нечего. На телефоне его данные лежат в закрытом хранилище приложения, куда iOS и Android не пускают другие приложения; «Здоровье» и «Здоровье и спорт» дают ему только то, на что есть твое разрешение, и только пока оно действует.
Dredfit может записывать завершенные тренировки в «Здоровье» — и читает оттуда короткий, поименный список значений, чтобы каждая тренировка несла с собой оценку того, чего она стоила. Все это по умолчанию выключено и начинает работать только после того, как ты включишь переключатель в настройках и дашь разрешение.
Когда запись включена, каждая завершенная тренировка попадает в «Здоровье» одной записью типа «Функциональный силовой тренинг», содержащей время начала, время окончания и длительность и тот идентификатор, который есть у этой тренировки в собственной истории Dredfit (ее номер в этой истории и момент, когда она закончилась), плюс стандартную отметку об устройстве, которую iOS добавляет к любой записи (модель устройства и версия ОС). Там, где оценку удается посчитать, запись несет еще и расчетную активную энергию — с пометкой, какая ревизия расчета ее выдала, и с тем же идентификатором. Ни пульса, ни параметров тела, ни состава упражнений. Оценку не угадывают, а опускают: в частности, когда веса, на который ее множить, нет, когда на самом деле ничего не сделано или когда ту же сессию записало другое приложение.
Разрешение не только на запись. Dredfit просит еще и читать шесть вещей — и читает их, чтобы посчитать эту оценку на твоем телефоне. Твой вес — та величина, на которую множится все число; твои рост, дата рождения и пол уточняют только ту долю покоя, которая из этого числа вычитается; энергия покоя, которую твое устройство уже записало, покрывает те же самые минуты; а твои тренировки читаются затем, чтобы сессия, записанная в те же минуты другим приложением, не засчиталась дважды. Последнее разрешение — не узкое: «Здоровье» выдает доступ ко всем тренировкам разом. Для этой проверки Dredfit читает из них те, что пересекаются с промежутком от начала самой ранней тренировки, которую он еще не записал, до момента записи. Обычно это лишь минуты только что законченной сессии, а при первой выгрузке прошлых тренировок — все тренировки начиная с самой ранней из них. Тренировки читаются и еще для одного: перед записью Dredfit ищет свою тренировку, записанную раньше под тем же идентификатором, за любую дату, — чтобы тренировка, уже попавшая в «Здоровье», не записалась второй раз. Этот поиск видит только собственные записи Dredfit. То, что Dredfit читает из «Здоровья», используется на твоем телефоне, и мы этого никогда не получаем; единственное значение, которое он сохраняет, — твой вес вместе с датой, когда «Здоровье» его записало, — хранится вместе с собственными данными приложения, поэтому входит в любую резервную копию, которую ты экспортируешь.
В любом из шести можно отказать по отдельности. Откажешь в весе — калории не запишутся, если только вес уже не хранится в приложении: введенный вручную, восстановленный из резервной копии или оставшийся от прежнего чтения — последующий отказ его не стирает; очистить его можно в настройках. Откажешь в росте, дате рождения или поле — оценка станет только грубее. С тренировками иначе: «Здоровье» никогда не говорит приложению, было ли чтение разрешено, поэтому Dredfit не отличает ничего не нашлось от не разрешено, и проверка на двойной счет молча перестает работать. Именно поэтому в настройках есть переключатель, названный по действию, — «Не записывать калории»: включи его, если те же тренировки пишет Apple Watch — иначе тренировка засчитается дважды — или если оценка тебе просто не нужна.
Отозвать доступ можно в любой момент: Настройки → Здоровье → Доступ к данным и устройства → Dredfit, либо выключив переключатель в приложении. Уже записанные тренировки останутся в «Здоровье», пока ты не удалишь их там.
На Android Dredfit может записывать завершенные тренировки в сервис «Здоровье и спорт» (Health Connect) — хранилище данных о здоровье и физической активности на твоем телефоне — и читает оттуда короткий, поименный список значений, чтобы каждая тренировка несла с собой оценку того, чего она стоила. На iPhone ту же работу делает «Здоровье». Все это по умолчанию выключено и начинает работать только после того, как ты включишь в настройках «Записывать тренировки в „Здоровье и спорт“» и дашь разрешение на экране разрешений самого сервиса. С Android 14 сервис «Здоровье и спорт» встроен в систему; на Android 10–13 это отдельное приложение Google, установить которое предлагают настройки Dredfit.
Dredfit просит пять разрешений, и в каждом можно отказать по отдельности. Два из них — на запись. Тренировки: каждая завершенная тренировка записывается одной сессией калистеники (упражнений с собственным весом) — с временем начала и окончания (и часовым поясом каждого), тем идентификатором, который есть у этой тренировки в собственной истории Dredfit (ее номер в этой истории и момент, когда она закончилась), и устройством, на котором она записана (телефон, его производитель и модель). Активные калории: там, где оценку удается посчитать, — расчетная активная энергия за те же минуты, с пометкой, какая ревизия расчета ее выдала, и с тем же идентификатором; откажешь в этом разрешении — тренировка запишется без нее. Ни пульса, ни параметров тела, ни состава упражнений. Оценку не угадывают, а опускают: в частности, когда веса, на который ее множить, нет, когда на самом деле ничего не сделано или когда ту же сессию записало другое приложение. Тренировка, записанная повторно под тем же идентификатором, заменяет уже записанную, поэтому дважды она там не окажется.
Три — на чтение, и читаются они только затем, чтобы посчитать эту оценку на твоем телефоне. Вес: самое свежее значение веса — та величина, на которую множится все число. Базовый метаболизм: из этого числа вычитается энергия покоя за минуты самой тренировки — и читается она только там, где скорость обмена в покое действительно записана, а не цифра, которую сервис подставляет сам. Тренировки: сессии упражнений других приложений — чтобы сессия, записанная в те же минуты другим приложением, не засчиталась дважды. Для этой проверки Dredfit читает сессии, начавшиеся в промежутке от суток до начала самой ранней тренировки, которую он еще не записал, до момента записи, — обычно это лишь последние сутки с небольшим, а при первой выгрузке прошлых тренировок — все сессии начиная с суток до самой ранней из них, — и берет из них только то, какое приложение записало каждую и когда она шла. Рост, дату рождения и пол на Android Dredfit не читает. Записи других приложений сервис отдает только начиная с 30 дней до первого выданного разрешения, и большего Dredfit не просит.
То, что Dredfit читает из сервиса «Здоровье и спорт», используется на твоем телефоне, и мы этого никогда не получаем; единственное значение, которое он сохраняет, — твой вес вместе с датой, когда его записали в сервис, — хранится вместе с собственными данными приложения, поэтому входит в любую резервную копию, которую ты экспортируешь, и в резервную копию телефона. Откажешь в весе — калории не запишутся, если только вес уже не хранится в приложении: введенный вручную, восстановленный из резервной копии или оставшийся от прежнего чтения — последующий отказ его не стирает; очистить его можно в настройках. Откажешь в базовом метаболизме — оценка станет только грубее. Откажешь в тренировках — Dredfit не увидит запись той же сессии другим приложением; поэтому, если твои тренировки уже записывают часы или другое приложение, включи в настройках «Не записывать калории» — тот же переключатель пригодится, если оценка тебе просто не нужна.
Отозвать любое из этих разрешений можно в любой момент в самом сервисе «Здоровье и спорт» — в настройках телефона на Android 14 и новее, в одноименном приложении на Android 10–13, — либо выключив переключатель в приложении. Уже записанные тренировки останутся в «Здоровье и спорт», пока ты не удалишь их там; сервис умеет удалить все, что записало одно приложение. Другие приложения, которым ты разрешишь читать из сервиса, увидят тренировки, записанные Dredfit, — на условиях своих политик. Google описывает «Здоровье и спорт» как базу данных, которая хранится на устройстве.
Если ты включишь напоминание, Dredfit запланирует локальное уведомление на тренировочные дни. Оно создается и доставляется на твоем устройстве — сервера пуш-уведомлений нет, ничего никуда не передается. При включении напоминания телефон спросит разрешение показывать уведомления. Android забывает запланированные будильники при перезагрузке, поэтому на Android Dredfit узнает о включении телефона, о смене времени или часового пояса и об обновлении приложения — и ставит их заново.
Во время тренировки на Android Dredfit показывает постоянное уведомление — упражнение или то, к чему ведет отдых, подход и обратный отсчет — в шторке и на заблокированном экране, как Live Activity на iPhone. Его держит активная служба (foreground service) того типа, который Android отводит фитнес-приложениям («health»): она не дает отсчету и его «3-2-1» замолчать, когда экран выключен или поверх открыто другое приложение (на нуле отсчет ждет, пока ты вернешься), и заканчивается вместе с тренировкой. На Android 13 и новее первая тренировка, которая показывает это уведомление, спрашивает разрешение на уведомления, если его еще не спросило напоминание; отказ скрывает уведомление и больше ничего не меняет. Этот тип службы требует одного разрешения из короткого списка: Dredfit держит то, которое Android выдает без вопроса, — «датчики с высокой частотой опроса» — только по этой причине и не читает никаких датчиков.
Мы не получаем данных приложения — значит, нам нечего передавать, продавать или обрабатывать, и никакой обработки на серверах не происходит. В Dredfit нет аналитики и рекламы, и он не делает никаких сетевых запросов; у приложения для Android нет даже разрешения Android на доступ в интернет.
В приложении для iPhone нет сторонних SDK. Приложение для Android собрано на стандартных библиотеках платформы — AndroidX от Google, включая клиент сервиса «Здоровье и спорт», и библиотеках Kotlin от JetBrains — и несет ровно один SDK сверх них: Play In-App Review от Google (вместе с ним приходят две библиотеки сервисов Google Play), только для окна с просьбой оценить приложение, о котором ниже.
После некоторых вех Dredfit может попросить магазин приложений показать окно, где приложение можно оценить, — App Store на iPhone, Google Play на Android. Это окно показывает и отправляет магазин, а не Dredfit: Dredfit никогда не узнает, появилось ли оно, сколько в нем звезд и что в отзыве. То, что ты отправишь, уходит к Apple или Google на их условиях; по словам Google, оценка и отзыв нужны, чтобы опубликовать отзыв в Google Play, а для версии приложения в закрытом тестировании передаются только разработчику, без публикации. Так что отзыв — единственное, что ты пишешь и что может дойти до нас: публично, как его читает любой, или из закрытого тестирования — лично.
Кроме тебя и тех приложений, которым ты разрешишь читать данные в «Здоровье» или в «Здоровье и спорт», твои данные могут дойти только до Apple и Google, и только через системные механизмы, которыми управляешь ты. На iPhone — тренировки, которые ты разрешаешь записывать в «Здоровье», и данные приложения в стандартной резервной копии iCloud или локальной копии устройства, на условиях конфиденциальности Apple. На Android — данные приложения в резервной копии телефона в твоем аккаунте Google, на условиях политики конфиденциальности Google. Мы их не видим ни в одном из этих случаев.
Мы ничего не храним, поэтому срока хранения с нашей стороны нет: данные живут на твоем устройстве, пока ты не удалишь приложение, а их копии у нас никогда не бывает. Законы о персональных данных, такие как GDPR и CCPA, дают тебе права на доступ, удаление и переносимость — в Dredfit все они реализуются прямо на устройстве: JSON-экспорт — твоя полная переносимая копия истории и настроек, а удаление приложения — и есть стирание, с исключениями, описанными выше: тренировки, уже записанные в «Здоровье» или в «Здоровье и спорт», остаются там, пока ты их там не удалишь, а данные в резервной копии телефона остаются в ней, пока существует она сама. Запрашивать у нас нечего — нам нечего было бы выдать; вопросы тем не менее всегда можно задать по адресу ниже.
На Android стирать все приходится в трех местах: в самом Dredfit (удали приложение или очисти его хранилище в настройках телефона), в сервисе «Здоровье и спорт» (удали то, что туда записал Dredfit) и в резервной копии телефона в твоем аккаунте Google — она хранит копию, пока резервное копирование включено, и восстанавливает данные всякий раз, когда Dredfit устанавливается снова; управлять ею можно в аккаунте Google.
Dredfit — инструмент общей физической подготовки для широкой аудитории. Он не собирает данные ни о ком, включая детей, — потому что не собирает данные вообще.
Если политика когда-нибудь изменится, вместе с ней изменится дата вступления в силу выше, а обновленная версия будет опубликована на этой странице.
Dredfit разрабатывает и публикует Дмитрий Новиков, независимый разработчик, — он и отвечает за эту политику.
Вопросы по политике: dredfort.42@gmail.com