Привет! Меня зовут Виктор, я разрабатываю веб-приложение 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

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

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

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

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

image

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

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

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

Вес


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

Питание


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

image

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

Сон


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

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

Выводы


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

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

Комментарии (11)


  1. vase
    29.11.2019 22:15

    Спасибо за статью, давно было подозрение, что все эти трекеры полный отстой.
    За сайт спасибо, графики порадовали. Из пожеланий — можно ли сделать, чтобы фон убирался на нейтральный — типа серый или еще какой-то без картинок.
    Второй момент — был открыт вес за год в виде графика, положил ноут в спящий режим — после пробуждения хром висит наглухо. Вкладку не закрыть и не переключиться.


    1. Torkins Автор
      29.11.2019 22:43

      Они не отстой, просто как обычно на любом рынке: общих регуляторов или стандартов нет, и каждый мнит себя главным гигантом-экспертом. Потому между собой они дружат не очень.
      Про фон: блин, так и было-серо и обычно. Показалось скучным). Вообще, конечно, дизайнер нужен))
      Про спящий режим — странно. Приложение настолько же легкое, насколько автономное. Но спасибо за фидбек, попробую устроить стресс-тест через спячку.


  1. aamonster
    29.11.2019 22:43

    У вас он ещё неплохо работает. У меня веселее было: gf получает данные от mi fit, показывает минуты активности и heart points. А потом решает – да ну нафиг, сбросим в 0 (или около 0). При этом в журнале активности это всё есть – просто из активности за день убрали. И в конце недели говорит – чувак, может, снизишь планку?


    Короче, снёс.


    ЗЫ: Есть подозрение, что жёстко клинить его начинает, когда есть более одного источника данных. У меня это mi fit и приложения для отжиманий/подтягиваний/приседаний/пресса.


    1. Torkins Автор
      29.11.2019 22:48

      В том-то и проблема, что даже если исключить второй трекер, то сам телефон — это тот же шагомер. Так что этих источников в любом случае будет много. Те же программные трекеры типа стравы/рункипера. Самая частая бага: это когда в течение дня ты проходил с браслетом и телефоном 10К шагов, а до этого утром намотал еще 5000 на эллипсе, но только с браслетом. Как правило — эти 5000 тупо не учитываются. Или к общим 10000 добавляется, например, 1000. Как, откуда — хз. А следующая неделя — в порядке. И так — произвольно бесконечно (


  1. questor
    30.11.2019 01:22

    Насколько я понимаю, то фазы трекеры меряют плюс-минус километр: http://vsevolodustinov.ru/blog/all/opyt-obrascheniya-k-somnologu/ типа нужны медицинские приборы, а не весь этот ширпотреб.


    1. Torkins Автор
      30.11.2019 18:06

      Да браслет мне иногда и продолжительность сна записывает по 14 часов день, если я забываю его утром надеть и пошевелить…


  1. AssaNix
    30.11.2019 06:58

    Тоже столкнулся с такой проблемой при попытке перевести все в GF из Mi Fit. Очень кривая синхронизация, полностью оторванная от реальности + изменения задним числом. Мой перфекционист не выдержал и снес эту фигню. Причем динамики к улучшении нет, к сожалению. Пару лет назад предпринималась похожая попытка.

    Это ведь реально проблема, что нет общего хаба, куда можно было бы агрегировать данные с разных носимых устройств и качественно анализировать.


    1. Torkins Автор
      30.11.2019 18:07

      Google Fit, насколько я понимаю, в своей идее и бы тот самый «хаб»…


      1. AssaNix
        01.12.2019 09:16

        Именно, что в своей «идее», но реализацию не получила, к сожалению. Даже непонятно, когда-нибудь соберутся всерьез заняться или нет. В том случае, если кому-то не из гигантов вздумается пилить свой хороший продукт, то этот дамоклов меч всегда будет стоять над душой. Поэтому этот рынок из-за GF, в том числе, очень слабо двигается.


  1. user_man
    30.11.2019 16:18
    -1

    Зачем люди сами создают себе проблемы? Потому что гуглы им сказали «надо»?

    Что такое учёт активности? Это в первую очередь самостоятельное планирование. Не ожидание счастья от гуглов или китайцев, это самостоятельная работа. Да, работа, которую многие делать просто не хотят. Но стоит заметить, что подумать у вас займёт ну максимум пол-часа, а потом просто выполняете придуманный план и тратите на это суммарно в день минут 10, ну ладно, пусть 15. И вот это вот вам делать лень? Нужен какой-то гугл, что бы вас за задницу постоянно брал и подталкивал? Тогда очевидно — не надо вам никакого фитнеса и прочего, потому что это самообман. То есть вы надеетесь, что кто-то за вас сделает вам красиво, без вашего минимального напряжения (10-15 минут в день). Ну да, без напряжения, да сразу в рай. И вы в это верите. Ну молодцы, что сказать.

    Про шаги. Считать их почти всегда — бессмысленно. Есть карты, на них есть линейки, померить расстояние до работы — 5 минут затрат, но зато потом все годы вашего хождения на работу вы всегда будете знать, сколько километров вы прошли. И вот потратить 5 минут один раз в несколько лет — кого-то напрягает…

    Про «я много бегаю по делам». Здесь примерно то же самое. Вы просто фиксируете время вне офиса. И всё. Ваш средний темп ходьбы практически никогда не меняется, поэтому время вам даёт очень точную оценку затрат калорий на ту же ходьбу. Вам неохота каждый раз разглядывать часы и запоминать время выхода из офиса? Так ничего страшного не случится, если вы будете это делать хотя бы раз на 10 выходов из офиса. Потому что важна активность в среднем, а не лишний километр в конкретный день. И вот среднюю цифру вы получите легко, даже забывая её замерять 9 раз из 10. Ну а далее — тривиально, вот она, вся ваша активность, выраженная средним количеством времени вне офиса. Точнее никакие гуглы и мега-супер-убер-девайсы вам не скажут. Обычно наоборот — точность девайсов просто никакая.

    Про всякий фитнес. Вам лень считать количество отжиманий? Ну ужас же! Вам не хочется почитать, что такое программа тренировок? Вам лень скачать готовую примерную программу? Вам в лом самостоятельно учитывать минимальный набор простейших показателей? Ну зачем вам тогда фитнес? Что бы гугл сказал, «ты молодец»? Он вам обязательно это скажет, для этого фитнес совершенно не нужен. Это бизнес по продаже эмоций, так что они вам обязательно улыбнутся, лишь бы платили.

    Про бег. Один раз померили расстояние по карте и далее всего лишь смотрите на показания пульсометра. Но даже пульсометр становится ненужным, когда привыкаете к определённому темпу. В итоге пульсометр лишь иногда таскаете для контроля, выявления улучшений/ухудшений. Вот и всё. Или вы мировой рекорд собрались ставить? С помощью гуглов что ли? Ну смешно же.

    В общем — куда ни плюнь, везде всё очень просто, и никакие подсказки от столь любимых некоторыми гуглов не нужны. Либо вы сами определяете свою жизнь, либо вы бегаете как дурак по указанию каких-то дятлов из гугла, которые на самом деле самые обычные люди, которым лень делать много качественных продуктов, которые воюют со своими начальниками за безделье и много денег, ну а продукт (и тем более — вы) для них где-то на 48-м месте по важности. И вот этим людям вы доверяете своё здоровье. Ну поздравляю, вы на правильном пути!


    1. DmitryKolpo
      30.11.2019 20:25

      Автоматизация — это отличная позитивная вещь.
      Хорошо автоматизировать то, что можно автоматизировать. Сбор, хранение и обработка информации, в данном случае шаги, вес, питание, сон, это то, с чем компьютеры справляются лучше людей на сегодняшний день.

      Google fit предоставляет апи для всего этого и создаётся ощущение, что можно очень интересных вещей вокруг него построить. Но когда начинаешь разбираться детальнее, то натыкаешься на большое количество подводных камней, и оказывается все не так прекрасно.

      Я услышал в статье именно про эти камни и про личный опыт автора.