Приложение «Здоровье» в iOS собирает различные типы данных, как напрямую, так и через сторонние приложения. Если у вас есть Apple Watch, данные приложения «Здоровье», вероятно, содержат больше информации. Данные приложения «Здоровье» можно переносить между устройствами iOS, и вы можете их экспортировать. При экспорте данных из приложения «Здоровье» они экспортируются в два XML-файла. Приложение упаковывает их в архив и позволяет вам выбрать способ сохранения. До этого момента всё было очень просто. Однако после распаковки архива разобраться в XML-файлах внутри сложно. Зачастую вы можете не знать, какое приложение может читать XML-файл и как интерпретировать содержащиеся в нём данные. Мы объясним вам всё подробно.
Экспорт данных приложения «Здоровье»
Откройте приложение «Здоровье» и нажмите на значок своего профиля в правом верхнем углу. Прокрутите экран профиля вниз и нажмите кнопку «Экспортировать данные о здоровье». Приложение создаст архив и спросит, как его сохранить. Вы можете отправить его себе по электронной почте или сохранить в облачном хранилище.

Чтение данных приложения «Здоровье»
Предполагая, что архив находится на вашем рабочем столе, распакуйте его. В распакованной папке будут два файла: export.xml и export_cda.xml.
Ваши данные находятся в файле export.xml. Чтобы открыть его, вам понадобится приложение, способное читать XML-формат и корректно отображать его. Я рекомендую MS Excel. Именно его я буду использовать, чтобы показать вам, как интерпретировать данные.

Откройте Excel и откройте этот файл командой «Открыть». При открытии файла Excel предложит вам три варианта: выберите «Как книгу, доступную только для чтения».

Когда файл открыт и вы хотите редактировать его без каких-либо ограничений, просто скопируйте и вставьте всё содержимое в новый файл. Вот как выглядят данные при открытии в Excel.

Анализ данных приложений для здоровья
Вы заметите, что во многих ячейках XML-файла снова и снова повторяется одно и то же значение. Это справедливо для первых нескольких столбцов, которые вы видите. По мере прокрутки вправо и чтения столбцов, а затем и строк, данные начнут меняться. Вот разбивка содержимого каждой ячейки:
/@locale: Здесь показано, где, согласно данным App Store, были сохранены ваши данные. Это значение никогда не изменится и будет повторяться для каждой строки.
/ExportDate/@value: Здесь отображаются дата и время экспорта данных. Это значение никогда не изменится и будет повторяться для каждой строки.
/Me/@HKCharacteristicTypeIdentifierBiologicalSex: Ваш биологический пол, указанный в приложении «Здоровье». Он останется неизменным для всех записей.
/Me/@HKCharacteristicTypeIdentifierBloodType: Это ваша группа крови, и в этом столбце снова будет повторяться одно и то же значение. Чтобы прочитать его, посмотрите на фрагмент после «HKBloodType». Там указана ваша сохранённая группа крови, например, HKBloodType BPositive .
/Me/@HKCharacteristicTypeIdentifierDateOfBirth: Это ваша дата рождения.
/Me/@HKCharacteristicTypeIdentifierFitzpatrickSkinType: Это ваш тип кожи по Фицпатрику. Он измеряет чувствительность вашей кожи к солнцу и вводится вами вручную в приложении «Здоровье». В этом столбце будет указано то же значение. Если вы не выбирали тип кожи, все ячейки в столбце будут иметь значение «HKFitzpatrickSkinTypeNotSet».
/Record/#id: Это порядковый номер точки данных. Он начинается с 1 и продолжается для каждой строки заполненных данных.
/Record/@creationDate: Дата создания записи, т.е. точки данных. Когда вы позже попытаетесь узнать, сколько шагов вы сделали, например, в октябре 2016 года, вы сможете использовать этот столбец для уточнения даты.
/Record/@device: Этот параметр идентифицирует ваше устройство и не имеет особого значения, если только вы не хотите разделять данные, собранные iPhone, и данные, собранные вашими Apple Watch. Данные в этом столбце показывают, какое устройство сохранило данные и какая версия iOS на нём работала. Обратите внимание, что данные о модели iPhone неточны. Пример значений в этом столбце приведен ниже. Эти данные получены с iPhone 6.
имя: iPhone, производитель: Apple, модель: iPhone, оборудование: iPhone 7,2, программное обеспечение: 9.3
/Record/@endDate: Конечная дата записи точки данных. Она включает в себя как дату, так и время.
/Record/@sourceName: Здесь отображается источник собранных данных. Первые две ячейки будут содержать значение «Здоровье». Это означает, что данные были вручную добавлены пользователем в приложение «Здоровье». В столбце будет указано «[Ваше имя] iPhone» для данных, собранных вашим iPhone напрямую, будет отображаться название приложения, если данные были добавлены через приложение, и «Часы» для данных о вашем сне, собранных через приложение «Часы».
/Record/@sourceVersion: В этом столбце будет показана версия iOS, на которой работало ваше устройство, когда была записана конкретная точка данных.
/Record/@startDate: Дата и время начала активности. Эта дата отличается от даты создания, поскольку вы могли не добавить некоторые активности в приложение «Здоровье» или не сохранить данные об активности.
/Record/@type: Это большой и важный столбец. Он разделяет типы зарегистрированных действий. Вверху вы увидите несколько пустых ячеек для вручную добавленных точек данных, но вскоре после этого вы увидите такие действия, как:
HKQuantityTypeIdentifierStepCount – Количество пройденных вами шагов
HKQuantityTypeIdentifierDistanceWalkingRunning – Какую дистанцию вы прошли или пробежали
/Record/@unit: Здесь отображаются единицы измерения, в которых записаны данные. Пустые ячейки соответствуют таким данным, как пол и группа крови, для которых единицы измерения отсутствуют. Для количества пройденных шагов отображается значение «count», а для пройденного расстояния — «km». В этом столбце часто повторяются значения.
/Record/@value: Это золотая жила на конце радуги; здесь хранятся отдельные значения собранных данных. Например, если вы хотите узнать, сколько шагов вы сделали в октябре 2016 года, это столбец, в котором вы будете суммировать шаги. Мы покажем вам, как это легко сделать.
/Record/MetadataEntry/@key: представляет данные, добавленные вручную в приложение «Здоровье» или через другие нативные приложения iOS. Это данные, введённые в разделы «Репродуктивное здоровье», «Артериальное давление» или собранные через приложение «Часы».
/Record/MetadataEntry/@value: Значение данных, введенных вами вручную в приложении «Здоровье».
Сортировка данных
Теперь, когда вы знаете, какие данные содержатся в каждом столбце, пора отсортировать их и осмыслить. В Excel выберите строку с заголовками столбцов. Выберите «Данные» > «Фильтр» на ленте.

К каждому столбцу будет добавлен фильтр.

Теперь ради этого примера я собираюсь отсортировать количество шагов, которые я сделал в октябре 2016 года. Мне нужно отфильтровать данные по следующим столбцам: / Record/@type, /Record/@value и /Record/@startDate .
Щёлкните стрелку раскрывающегося списка фильтра в столбце /Record/@type и посмотрите на различные типы активности, содержащиеся в данных. Поскольку я хочу узнать количество сделанных шагов, я отменю выбор всех типов и выберу только «HKQuantityTypeIdentifierStepCount». Мне не нужно ничего делать со столбцом /Record/@value, поскольку сужение типа в столбце /Record/@type также отфильтрует нерелевантные данные из столбца /Record/@value .

Теперь нужно всего лишь отсортировать данные по дате. Перейдите в столбец /Record/@startDate и сузьте выборку. Щёлкните по стрелке раскрывающегося списка фильтра и используйте строку поиска, чтобы указать даты, которые нужно включить. Например, для октября 2016 года я ввёл 2016-10, и система автоматически нашла и выбрала все даты этого месяца. Не нажимайте кнопку «Добавить текущую выборку в фильтр». Нажмите «ОК», и данные будут отфильтрованы.
Создание графиков
То, что вы сейчас видите в книге Excel, — это данные о количестве шагов за октябрь 2016 года. Давайте построим график. Вам, безусловно, потребуется немного уточнить данные, прежде чем строить график. Например, вы можете просуммировать все значения данных за один день в одно значение. Если вы хотите построить график количества шагов, сделанных вами в октябре 2016 года, вам нужно будет суммировать все шаги, сделанные 1 октября, 2 октября и т. д., чтобы в итоге у вас осталось всего 30 значений данных для построения графика. Это займёт немного времени, но вот мои данные за первые семь дней октября 2016 года. Используйте формулу «Сумма», чтобы подсчитать количество шагов, а затем выберите график для их построения.
