Как мы реализовали сбор данных из сервисов здоровья, расчёт метрик и интеграцию с веб-версией

Кейс Skillfolio показывает, как встроить данные из сервисов здоровья в продуктовый сценарий. Мы разработали мобильное приложение, которое получает данные пользователя из Apple Health и Health Connect, обрабатывает их на сервере, рассчитывает метрики состояния и на их основе формирует персональные рекомендации.
Skillfolio — платформа с обучающими курсами и практиками: пользователь проходит материалы, развивает навыки и отслеживает состояние.
Мы разработали мобильное приложение, которое анализирует физические показатели пользователя и предлагает подходящие практики. Оно получает данные из Apple Health и Google Health, рассчитывает показатели состояния (стресс, выгорание, спокойствие) и направляет к релевантным материалам.
Продукт построен вокруг сценария: пользователь передаёт данные, приложение рассчитывает метрики и рекомендует практики и обучение.


Идея проекта — связать физические показатели пользователя с рекомендациями внутри платформы.
Для этого нужно было:
Приложение анализирует физические показатели пользователя и на их основе рассчитывает метрики состояния — уровень стресса, выгорания и спокойствия. После анализа система рекомендует пользователю практики и обучающие курсы.
Под капотом решения — интеграция с Apple Health и Google Health, обработка данных из разных устройств и серверная логика расчёта метрик, разработанных и верифицированных врачами.
Архитектура приложения построена на Kotlin Multiplatform: общая бизнес-логика используется в версиях для iOS и Android, а интерфейс реализован нативно для каждой платформы.


Основным источником данных стали сервисы Apple Health и Google Health (Health Connect). Через них приложение получает данные из разных устройств, включая фитнес-браслеты и трекеры активности.
Мы отказались от прямой интеграции с устройствами: из-за различий в прошивках и API это усложнило бы разработку. Вместо этого использовали Apple Health и Health Connect как агрегаторы: большинство фитнес-браслетов и трекеров синхронизируются с ними по умолчанию, поэтому данные попадают в приложение независимо от устройства пользователя.
В процессе интеграции проработали сценарии получения и обработки данных, включая ситуации, когда данные отсутствуют или приходят в разных форматах.
На основе физических данных система рассчитывает показатели состояния: уровень стресса, выгорания, спокойствия и витальную энергию.
Расчёты выполняются на сервере по формулам, разработанным врачами и основанным на эмпирических данных.
Приложение сохраняет историю показателей, поэтому пользователь может отслеживать динамику состояния по дням.



После анализа состояния приложение предлагает практики и обучающие материалы с веб-платформы Skillfolio.
Чтобы не дублировать существующий функционал, мы встроили веб-платформу в приложение через WebView. Это позволило использовать уже готовые курсы и практики без повторной реализации, а также сократить бюджет и время разработки.


Технологии и особенности

Skillfolio — пример продукта, где основная сложность находится в работе с данными. Чтобы приложение могло анализировать состояние пользователя, нужно было собрать данные из разных источников, корректно обработать их и реализовать логику расчёта метрик на основе медицинских методик.
Проект показал, как можно сочетать несколько технологических подходов: использовать Kotlin Multiplatform для общей логики приложения, нативный UI для интерфейса и WebView для интеграции существующей веб-платформы.
Приложение объединяет анализ физических данных пользователя и образовательную платформу с практиками и помогает лучше понимать своё состояние.
