Platforma Google Fit to ekosystem Google do zbierania, przechowywania i analizowania danych o aktywności fizycznej i zdrowiu użytkowników Androida. Według Google Developers, 2025, platforma łączy Fitness API, Sensors API i Sessions API w jedną architekturę, która synchronizuje się z Google Cloud i jest dostępna przez zapytania REST. Jednolity profil zdrowia pozwala użytkownikom kontrolować, które aplikacje mają dostęp do ich danych o kondycji i samopoczuciu.
Najważniejsze
Google Fit to platforma zarządzania zdrowiem uruchomiona przez Google w 2014 roku na konferencji I/O. Platforma zapewnia jednolite API do odczytu i zapisu danych o aktywności fizycznej, umożliwiając aplikacjom wymianę informacji poprzez centralne repozytorium w chmurze Google.
W przeciwieństwie do rozwiązań proprietalnych, Google Fit działa na systemie operacyjnym Android i iOS przez REST API. Użytkownik może podłączyć opaski fitness, smartwatche i aplikacje do śledzenia aktywności, a Google Fit agreguje wszystkie dane w jeden profil zdrowia w Google Cloud.
Według Google I/O 2024, platforma jest używana w ponad 5000 aplikacjach na całym świecie, a liczba aktywnych użytkowników przekracza 100 milionów. Platforma jest zintegrowana z Wear OS i obsługuje wszystkie popularne trackery fitness poprzez aplikacje firm trzecich.
Architektura Google Fit opiera się na trzech poziomach: SDK klienckie, magazyn w chmurze Google Fitness Store i REST API do integracji serwerowej. SDK klienckie jest dostępne dla Androida (Kotlin, Java) i iOS (Swift, Objective-C), a także istnieje klient internetowy przez JavaScript.
Dane są zorganizowane w postaci źródeł (DataSource) i punktów danych (DataPoint). Każde źródło reprezentuje urządzenie lub aplikację, a każdy punkt danych to pojedynczy pomiar ze znacznikiem czasu. Grupy punktów danych są łączone w sesje — ciągłe okresy aktywności z typem i czasem trwania.
val fitnessClient = Fitness.getClient(activity, GoogleSignIn
.getAccountForExtension(activity, fitnessOptions))
val stepType = DataType.TYPE_STEP_COUNT_DELTA
val request = DataReadRequest.Builder()
.read(stepType)
.setTimeRange(
startTime, endTime, TimeUnit.MILLISECONDS
)
.build()
fitnessClient.readData(request)
.addOnSuccessListener { response ->
for (bucket in response.buckets) {
println(bucket.dataSets)
}
}
Google Fit wykorzystuje model synchronizacji przez Google Cloud z obsługą zarówno trybu online, jak i offline. Aplikacja zapisuje dane lokalnie, a Google Fit SDK automatycznie synchronizuje je z magazynem w chmurze przy połączeniu internetowym. Konflikty są rozwiązywane według zasady ostatniego zapisu.
Każdy typ danych ma standardowy format: kroki — TYPE_STEP_COUNT_DELTA, kalorie — TYPE_CALORIES_EXPENDED, puls — TYPE_HEART_RATE_BPM, dystans — TYPE_DISTANCE_DELTA. Dla typów niestandardowych można tworzyć własne DataType poprzez konsolę Google APIs z unikalną przestrzenią nazw.
Platforma obsługuje dwa tryby zapisu: aktywny — aplikacja jawnie wywołuje HistoryClient.insertData(), oraz pasywny — poprzez RecordingClient, który subskrybuje zbieranie danych w tle. Tryb pasywny jest wygodny dla aplikacji fitness: użytkownik uruchamia aplikację raz, a Google Fit automatycznie zbiera kroki, kalorie i dystans przy zminimalizowanej aplikacji bez ciągłej pracy procesora.
Według Google, platforma przetwarza ponad 2 miliardy punktów danych dziennie. Średnie opóźnienie synchronizacji wynosi 5–10 sekund przy aktywnym połączeniu, a w trybie tła synchronizacja odbywa się co 30 minut w celu oszczędzania baterii.
Google Fit wykorzystuje OAuth 2.0 do autoryzacji z zakresami dostępu fitness.activity.read, fitness.activity.write, fitness.body.read i fitness.body.write. Aplikacja żąda tylko niezbędnych zakresów, a użytkownik potwierdza dostęp poprzez standardowe okno Google Sign-In z wyborem konta.
Użytkownik może w każdej chwili cofnąć dostęp poprzez Google Account Permissions lub aplikację Google Fit. Google surowo zabrania przekazywania danych o zdrowiu stronom trzecim bez wyraźnej zgody, a także wykorzystywania danych do celów reklamowych zgodnie z polityką Restricted Scopes.
Google Fit udostępnia trzy główne API: Fitness API do odczytu i zapisu danych historycznych, Sensors API do strumieniowego przesyłania danych z czujników w czasie rzeczywistym oraz Sessions API do zarządzania sesjami aktywności. Każde API jest dostępne zarówno przez Android SDK, jak i przez zapytania REST.
Fitness API — główne API do pracy z danymi. Obsługuje operacje wsadowe: zapis do 1000 punktów danych w jednym wywołaniu, odczyt z filtrowaniem według zakresu czasowego, typu danych i źródła. Do agregacji danych używany jest DataSet z grupowaniem według wybranych metryk.
Sensors API umożliwia subskrypcję danych z czujników w czasie rzeczywistym — kroki, puls, przyspieszenie. Dane są dostarczane przez SensorEventListener z częstotliwością określoną przez typ czujnika i ustawienia aplikacji.
Oprócz trzech głównych API, Google Fit udostępnia Recording API do automatycznego zbierania danych bez konieczności utrzymywania aplikacji aktywnej. To API jest szczególnie cenne dla Wear OS: smartwatche mogą zbierać dane o pulsie i aktywności, a aplikacja na telefonie synchronizuje się z nimi przy połączeniu. Recording API wykorzystuje Google Fit Background Services, które są zoptymalizowane pod kątem minimalnego zużycia energii — do 2% baterii dziennie przy pasywnym zbieraniu kroków.
REST API Google Fit jest dostępne przez endpoint fitness.googleapis.com. REST API pozwala aplikacjom serwerowym odczytywać i zapisywać dane w imieniu użytkownika po autoryzacji OAuth. Jest to przydatne dla paneli analitycznych online, korporacyjnych programów fitness i systemów medycznych, gdzie wymagane jest centralne przechowywanie danych o zdrowiu pracowników lub pacjentów.
val recordingClient = Fitness
.getRecordingClient(activity, googleSignInAccount)
recordingClient.subscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener {
println("Subskrypcja aktywna")
}
// Pobieranie danych historii
val historyClient = Fitness
.getHistoryClient(activity, googleSignInAccount)
val endTime = Calendar.getInstance().timeInMillis
val startTime = endTime - TimeUnit
.DAYS.toMillis(7)
historyClient.readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener { total ->
println("Kroki dzisiaj: $total")
}
Integracja Google Fit rozpoczyna się od dodania zależności Google Fit SDK przez build.gradle: com.google.android.gms:play-services-fitness. Następnie należy skonfigurować konsolę Google APIs — utworzyć projekt, włączyć Fitness API i dodać dane uwierzytelniające OAuth 2.0 z prawidłowymi odciskami SHA-1.
Proces integracji obejmuje: inicjalizację GoogleSignIn z wymaganymi zakresami, utworzenie FitnessClient przez Fitness.getClient(), żądanie autoryzacji od użytkownika i wykonywanie operacji odczytu lub zapisu danych. Do zapisu w tle używany jest RecordingClient, który automatycznie zbiera dane nawet gdy aplikacja jest zminimalizowana. Google Fit automatycznie zarządza częstotliwością zbierania danych w zależności od poziomu baterii i aktywności użytkownika.
Według Google, aplikacje z integracją Google Fit wykazują o 35% wyższy poziom utrzymania użytkowników. Kluczowe kategorie aplikacji — trackery fitness, aplikacje do biegania, kolarstwa, jogi i kontroli wagi.
Ważne jest uwzględnienie wymogów prywatności: Google Fit wykorzystuje Restricted Scopes — specjalne zakresy dostępu wymagające osobnej weryfikacji aplikacji przez OAuth Verification. Deweloper musi opisać, jakie dane są zbierane, jak są wykorzystywane i jak długo przechowywane. Google wymaga również posiadania polityki prywatności i zgodności z programem API Services Terms of Service.
Do zapisu danych tworzy się DataSource z określeniem typu, urządzenia i aplikacji. Następnie formułuje się DataPoint ze znacznikiem czasu i wartościami. Wiele DataPoint jest łączonych w DataSet, który jest przekazywany do HistoryClient.write().
val dataSource = DataSource.Builder()
.setAppPackageName(activity)
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setType(DataSource.TYPE_RAW)
.build()
val stepCount = DataPoint.builder(dataSource)
.setTimestamp(now, TimeUnit.MILLISECONDS)
.setField(Field.FIELD_STEPS, 500)
.build()
val dataSet = DataSet.builder(dataSource)
.add(stepCount)
.build()
historyClient.insertData(dataSet)
.addOnSuccessListener {
println("Dane zapisane")
}
Często zadawane pytania
Google Fit obsługuje ponad 50 typów danych, w tym kroki, kalorie, puls, dystans, prędkość, sen, wagę, wzrost, ciśnienie tętnicze, poziom glukozy i temperaturę ciała. Pełna lista jest dostępna w dokumentacji DataType dla Androida i REST API.
Tak, do pracy z Google Fit wymagane jest konto Google. Użytkownik autoryzuje się przez Google Sign-In, po czym aplikacja uzyskuje dostęp do Fitness API z określonymi zakresami. Bez konta Google platforma jest niedostępna, ponieważ wszystkie dane są przechowywane w Google Cloud.
Tak, dane Google Fit można wyeksportować przez Google Takeout — usługa umożliwia pobranie wszystkich danych platformy w formatach JSON i CSV. Deweloperzy mogą programowo eksportować dane przez REST API z odpowiednim zakresem dostępu.
Google Fit to wieloplatformowa chmurowa platforma działająca na Androidzie, iOS i przez REST API, podczas gdy HealthKit jest powiązany z ekosystemem Apple iOS i przechowuje dane lokalnie na urządzeniu. Google Fit wykorzystuje OAuth 2.0 do autoryzacji, a HealthKit — systemowe uprawnienia iOS.
Google Fit API ma następujące limity: 1000 zapytań na 100 sekund na projekt, 1000 punktów danych w jednym żądaniu zapisu, maksymalny zakres czasowy odczytu — 365 dni w jednym żądaniu. Aby zwiększyć limity, należy wnioskować o przydział przez Google Cloud Console.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również