Інтеграція Google Fit для доступу до даних здоров'я в Android

Додаток для обліку активності без інтеграції фітнес-платформи — втрата половини сценаріїв. Користувачі очікують автоматичний збір кроків, калорій, пульсу, але без Google Fit або Health Connect дані доводиться вводити вручну. Ми пропонуємо вбудувати Google Fit (і Health Connect як fallback) у ваш And

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція Google Fit для доступу до даних здоров'я в Android
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Додаток для обліку активності без інтеграції фітнес-платформи — втрата половини сценаріїв. Користувачі очікують автоматичний збір кроків, калорій, пульсу, але без Google Fit або Health Connect дані доводиться вводити вручну. Ми пропонуємо вбудувати Google Fit (і Health Connect як fallback) у ваш Android-додаток за 4–14 робочих днів — під ключ, з повною обробкою OAuth, дедуплікацією та підтримкою Wear OS. Наша команда має 5+ років досвіду в Android-розробці та понад 40 успішних проєктів з фітнес-інтеграцією.

Google Fit API існує з 2014 року і сьогодні перебуває в стані «працює, але краще мігрувати на Health Connect». Google офіційно рекомендує переходити на Health Connect для нових проєктів. Тим не менш, Google Fit залишається актуальним для пристроїв на Android 8–13 без підтримки Health Connect, для Wear OS-додатків та для проєктів з існуючою базою користувачів.

Google Fit REST API vs Fitness API

Дві принципово різні точки входу:

Android Fitness API (com.google.android.gms:play-services-fitness) — нативний Java/Kotlin SDK, працює через Google Play Services, потребує OAuth 2.0-акаунт Google.

Google Fit REST API — HTTP API, підходить для серверної сторони та Flutter/React Native, але потребує власного управління OAuth токенами.

Для нативного Android — завжди Fitness API. REST має сенс лише якщо дані потрібні на бекенді без участі мобільного пристрою.

Як ми інтегруємо Google Fit?

Ми використовуємо стек: Kotlin, Jetpack Compose, Hilt для DI, Google Sign-In для OAuth. На першому етапі аналізуємо вимоги до даних: які типи (кроки, пульс, калорії), чи потрібна агрегація за часом, чи потрібна підписка на живі дані. Потім проєктуємо архітектуру з урахуванням дедуплікації та обробки помилок. Реалізуємо читання історичних даних через HistoryClient і підписку через SensorsClient (для переднього плану) або RecordingClient (фоновий трекінг). Всі запити обгорнуті в suspend функції з корутинами для асинхронності.

Чому варто обирати Health Connect для нових проєктів?

Health Connect — це переосмислена платформа Google для обміну даними здоров'я між додатками. На відміну від Google Fit, вона не прив'язана до облікового запису Google, працює локально на пристрої та дає користувачеві більше контролю над тим, які додатки читають конкретні типи даних. Для Android 14+ вона доступна за замовчуванням, для старіших версій — через встановлення окремого APK.

Характеристика Google Fit Health Connect
Залежність від акаунта Google Так Ні
Мінімальна версія Android 8.0 8.0 (з APK) / 14+ (вбудований)
Дедуплікація Часткова Вбудована
Підтримка Wear OS Так Так
Рекомендація Google Fallback Основний стек

Ми гарантуємо сумісність з обома підходами та допомагаємо клієнтам обрати стратегію міграції, оптимальну під їхню аудиторію.

Дозволи та OAuth: головне джерело проблем

Google Fit потребує двох рівнів дозволів:

  1. Android-дозвіл: android.permission.ACTIVITY_RECOGNITION (з Android 10)
  2. OAuth scope: FITNESS_ACTIVITY_READ, FITNESS_BODY_READ, FITNESS_LOCATION_READ тощо.

Якщо запросити Android-дозвіл, але не отримати OAuth scope — Fitness API поверне порожні дані без помилки. Це мовчазний збій, який важко відловити.

val fitnessOptions = FitnessOptions.builder() .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ) .addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ) .build() val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions) if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) { GoogleSignIn.requestPermissions( this, GOOGLE_FIT_REQUEST_CODE, account, fitnessOptions ) } 

Якщо користувач відкликає дозвіл через налаштування Google-акаунта (не через Android Settings), hasPermissions() поверне false при наступному запуску. Це потрібно обробляти — без retry-логіки додаток просто перестане отримувати дані.

Читання даних: HistoryClient та SensorsClient

Історичні дані (кроки, калорії)

val readRequest = DataReadRequest.Builder() .read(DataType.TYPE_STEP_COUNT_DELTA) .aggregate(DataType.AGGREGATE_STEP_COUNT_DELTA) .bucketByTime(1, TimeUnit.DAYS) .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) .build() Fitness.getHistoryClient(context, account) .readData(readRequest) .addOnSuccessListener { response -> response.buckets.forEach { bucket -> val steps = bucket.dataSets .flatMap { it.dataPoints } .sumOf { it.getValue(Field.FIELD_STEPS).asInt() } } } 

bucketByTime — ключовий метод для агрегації. Без нього запит поверне кожен окремий крок від кожного джерела (телефон + годинник + браслет), що може бути кілька тисяч записів за день.

Дані в реальному часі

SensorsClient для підписки на живі дані:

Fitness.getSensorsClient(context, account) .add(SensorRequest.Builder() .setDataType(DataType.TYPE_STEP_COUNT_CUMULATIVE) .setSamplingRate(10, TimeUnit.SECONDS) .build(), onDataPointListener ) 

Цей підписник активний лише поки додаток на передньому плані. Для фонового трекінгу — RecordingClient.subscribe(), який Google Fit акумулює сам.

Дедуплікація даних з кількох джерел

Це реальна біль: у користувача Apple Watch (через Health) + Google Fit на Android телефоні + Samsung Health — кроки подвоюються і потроюються. Google Fit частково вирішує це через DataSet.getDataSources() — у кожної точки даних є джерело (DataSource). Фільтрація за DataSource.DEVICE дозволяє брати дані лише від конкретного пристрою.

Повністю надійної дедуплікації немає — це відома проблема екосистеми. Документуємо клієнту очікувані розбіжності та будуємо UI так, щоб користувач міг обрати пріоритетне джерело.

Міграція на Health Connect

Для нових пристроїв (Android 14+) Google Fit deprecated на рівні рекомендацій. Стратегія: перевіряємо доступність Health Connect, якщо доступний — використовуємо його, fallback на Google Fit для старих пристроїв:

val healthConnectAvailable = HealthConnectClient.getSdkStatus(context) == HealthConnectClient.SDK_AVAILABLE 

Що входить в роботу

  • Архітектурне проєктування: вибір підходу (Fitness API / REST / Health Connect)
  • Реалізація OAuth-аутентифікації та обробка відкликання дозволів
  • Розробка коду читання/запису даних (кроки, калорії, пульс тощо)
  • Підтримка Wear OS за потреби
  • Дедуплікація даних з кількох джерел
  • Тестування на реальних пристроях з різними версіями Android
  • Документація API та налаштувань OAuth
  • Супровід при публікації в сторах (App Store Review Guidelines, Google Play Console)

Терміни

Базова інтеграція Google Fit (кроки, дистанція, калорії) — 4–7 робочих днів. З підтримкою Health Connect, дедуплікацією та Wear OS — 2–4 тижні. Зв'яжіться з нами для оцінки вашого проєкту — ми підберемо оптимальний підхід.

Google Fit API reference