Хабрахабр

[Из песочницы] Снова Google Fit. Работает ли он?

Привет! Меня зовут Виктор, я разрабатываю веб-приложение catisfit.com для анализа данных Google Fit.

Ожидания

imageБольшая часть мобильных телефонов давно научилась считать шаги. Многие носят фитнес-браслеты и часы, пользуются спортивными трекерами типа Strava, становятся по утрам на умные весы, пытаются контролировать сон и ведут дневники питания. Некоторые даже используют смарт-тонометры и ботинки.

Общее у них одно — они все, как правило умеют синхронизироваться с приложением Google Fit и через него обмениваться данными друг с другом. Все связанные с этими гаджетами приложения работают внутри себя, показывают графики, подсказывают, как надо есть, как двигаться и как легче достичь цели. А Google Fit все это любезно собирает, хранит, подсчитывает и отдает. Милтрекер берет ваши шаги из приложения-браслета и пересчитывает калории с учетом активности, браслет берет вес и меняет цели.

Это я так думал, когда решил использовать его API чтобы создать сайт, где пользователь мог бы видеть все и сразу, в разрезе аналитики и сравнения.
Под катом — суровая реальность.

Реальность

image

Итак, “испытательное снаряжение”: 2 мобильника Samsung, трекеры MiBand3 и Misfit Shine, носимые вместе и по очереди, весы Mi Scale, милтрекер MyFitnessPal

Активность

Шаги. Казалось бы, все просто: есть 3 источника истины (мобильник+2 трекера). Надо считать общее количество шагов в день. Есть у GF специальные “агрегированные” запросы на этот случай.
Теперь про разницу показаний. Это разница значений MiBand (оранжевая линия) и приложения Google Fit (зеленая):

image

Какая уж тут статистика с аналитикой?..
Я писал в GF (без ответа, само собой), писал в глобальный саппорт Xiaomi ( посоветовали по-особому жестко переустановить приложение и если что, менять трекер). Разница показаний может достигать 50-100%!

Далее я понял, что все еще хуже.

Т.е. Оказывается, гигантской разницы могут достигать показания в мобильном приложении Google Fit и в его же Google Fit API. Народ робко вопрошает на StackOverflow и единственный совет от GF — изменить запрос (в принципе, иногда помогает если разница в значениях 1-5%, т. GF криво синхронизируется со своими же серверами. данные агрегируются по-разному). к.

Они как бы “сглаживаются”. Кстати, со временем (спустя 4-8 недель) с этими “внутренними” расхождениями происходит магия. На этом графике включен “проблемный” период с ссылки выше: Другими словами, статистика за август этого года будет сильно “правдивее” ноября.

image

Плохо лишь то, что “сглаживаются” они по совершенно непонятному закону и почти всегда в меньшую от показаний браслетов сторону. Так вот сейчас показания Android-приложения и Rest для этого периода идентичны, хотя когда я задавал вопрос, разница также была колоссальной (до 100%).

Если запариваться — каждый вечер запускать одновременно приложения браслетов и Google Fit, ждать, чтобы они друг с другом побыли наедине в памяти и в IU — расхождений и пропусков сильно меньше.

Вне зависимости от количества смарт-побрякушек и показаний на них, GF “обнуляет” целые недели. Когда телефон в международном роуминге (в нем я отключаю мобильные данные и пользуюсь только wifi в отелях/хотспотах) — беда. Дни катания на лодке по России при временном (не более суток) отсутствии связи и Интернета тоже часто бывают обнулены. Причем иногда — еще несколько дней после прилета домой.

Вес

Это единственное, с чем нет проблем. По крайней мере, если вставать на весы один раз утром. ) Нет ни пропусков, ни неточностей. Наверное, потому, что днем и вечером никто обычно не взвешивается и несколько разных весов дома не держит.

Питание

Здесь вопрос синхронизации с GF еще острее, чем с активностью. Т.е. если каждый вечер заполнять дневник питания в мобильном приложении, или на сайте, но синхронизировать с приложением — все ок. Если вы решите заполнить дневник за 3-4 прошедших дня — будьте готовы к тому, что в Google останутся только последние два:

image

По факту, MyFitnessPal заполнен за весь период без пропусков. Вот такие “ломаные” периоды c пропущеными днями.

Сон

В данных о сне, приходящих с браслета, как правило больше интересно качество, а не количество: фазы сна, продолжительность глубокого сна и пр. К сожалению, GF не различает разные фазы сна, под одним и тем же “activityType”: 72 приходят “Глубокий Сон” и “Неглубокий сон”. Разница только литеральная, значит для носителя каждого отдельного языка — своя. Т.е. на данный момент из API возможно оценить только общую продолжительность.

Остается добавить, что внутри смартфона обмен этими данными между приложениями также довольно выборочный, специфический и главное — нестабильный. Вот собственно и вся картина на сегодня.

Выводы

В целом проект GF на данный момент больше похож на непрофильную поделку китайского производителя гаджетов, работающую на “отстань, маркетолог”. Но не компании, которая прямо сейчас покупает Fitbit и по местным слухам хочет стать глобальным оператором медицинских данных.

Остается надеяться, что с этими изменениями у GF появятся более конкретные цели, проекту начнут уделять больше внимания, и точность данных хотя бы примерно будет соответствовать действительности.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть