Платформа Google Fit — екосистем Google за прикупљање, складиштење и анализу података о физичкој активности и здрављу Android корисника. Према Google Developers, 2025, платформа обједињује Fitness API, Sensors API и Sessions API у јединствену архитектуру која се синхронизује са Google Cloud-ом и доступна је преко REST захтева. Јединствени профил здравља омогућава корисницима да контролишу које апликације имају приступ њиховим подацима о фитнесу и здрављу.
Главно
Google Fit је платформа за управљање здрављем коју је Google лансирао 2014. године на I/O конференцији. Платформа пружа јединствени API за читање и писање података о физичкој активности, омогућавајући апликацијама размену информација путем централног складишта у Google облаку.
За разлику од власничких решења, Google Fit ради на Android оперативном систему и iOS-у преко REST API-ја. Корисник може да поведе фитнес наруквице, паметне сатове и апликације за праћење активности, а Google Fit агрегира све податке у јединствени профил здравља у Google Cloud-у.
Према Google I/O 2024, платформа се користи у преко 5000 апликација широм света, а број активних корисника премашује 100 милиона. Платформа је интегрисана са Wear OS-ом и подржава све популарне фитнес тракере преко апликација трећих страна.
Архитектура Google Fit-а изграђена је на три нивоа: клијентски SDK, облачно складиште Google Fitness Store и REST API за серверску интеграцију. Клијентски SDK је доступан за Android (Kotlin, Java) и iOS (Swift, Objective-C), а постоји и веб клијент преко JavaScript-а.
Подаци су организовани у облику извора (DataSource) и тачака података (DataPoint). Сваки извор представља уређај или апликацију, а свака тачка података представља једно мерење са временском ознаком. Групе тачака података се обједињују у сесије — непрекидне периоде активности са типом и трајањем.
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 користи модел синхронизације преко Google Cloud-а са подршком за онлајн и офлајн режиме. Апликација пише податке локално, а Google Fit SDK их аутоматски синхронизује са облачним складиштем када постоји интернет веза. Конфликти се решавају по принципу последњег записа.
Сваки тип података има стандардизовани формат: кораци — TYPE_STEP_COUNT_DELTA, калорије — TYPE_CALORIES_EXPENDED, пулс — TYPE_HEART_RATE_BPM, удаљеност — TYPE_DISTANCE_DELTA. За прилагођене типове могу се креирати сопствени DataType-ови преко Google APIs конзоле са јединственим именским простором.
Платформа подржава два режима писања: активни — апликација експлицитно позива HistoryClient.insertData(), и пасивни — преко RecordingClient-а који се претплаћује на прикупљање података у позадини. Пасивни режим је погодан за фитнес апликације: корисник покреће апликацију једном, а Google Fit аутоматски прикупља кораке, калорије и удаљеност када је апликација сведена, без сталног рада процесора.
Према Google-у, платформа дневно обрађује преко 2 милијарде тачака података. Просечно кашњење синхронизације износи 5–10 секунди при активној вези, а у позадинском режиму синхронизација се одвија сваких 30 минута ради уштеде батерије.
Google Fit користи OAuth 2.0 за ауторизацију са доменима приступа fitness.activity.read, fitness.activity.write, fitness.body.read и fitness.body.write. Апликација захтева само неопходне домене, а корисник потврђује приступ преко стандардног Google Sign-In дијалога са избором налога.
Корисник може у било ком тренутку опозвати приступ преко Google Account Permissions или Google Fit апликације. Google строго забрањује пренос података о здрављу трећим странама без изричите сагласности, као и коришћење података у рекламне сврхе у складу са политиком Restricted Scopes.
Google Fit пружа три главна API-ја: Fitness API за читање и писање историјских података, Sensors API за стриминг података са сензора у реалном времену и Sessions API за управљање сесијама активности. Сваки API је доступан како преко Android SDK-а, тако и преко REST захтева.
Fitness API — главни API за рад са подацима. Подржава групне операције: писање до 1000 тачака података у једном позиву, читање са филтрирањем по временском опсегу, типу података и извору. За агрегацију података користи се DataSet са груписањем по изабраним метрикама.
Sensors API омогућава претплату на податке сензора у реалном времену — кораци, пулс, убрзање. Подаци се достављају преко SensorEventListener-а са учесталошћу коју одређују тип сензора и подешавања апликације.
Поред три главна API-ја, Google Fit нуди Recording API за аутоматско прикупљање података без потребе да апликација остане активна. Овај API је посебно драгоцен за Wear OS: паметни сатови могу прикупљати податке о пулсу и активности, а апликација на телефону се синхронизује са њима при повезивању. Recording API користи Google Fit Background Services, који су оптимизовани за минималну потрошњу енергије — до 2% батерије дневно при пасивном прикупљању корака.
REST API Google Fit-а је доступан преко endpoint-а fitness.googleapis.com. REST API омогућава серверским апликацијама да читају и пишу податке у име корисника након OAuth ауторизације. Ово је корисно за веб аналитичке панеле, корпоративне фитнес програме и медицинске системе где је потребно централизовано складиштење података о здрављу запослених или пацијената.
val recordingClient = Fitness
.getRecordingClient(activity, googleSignInAccount)
recordingClient.subscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener {
println("Претплата је активна")
}
// Добијање историјских података
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("Кораци данас: $total")
}
Интеграција Google Fit-а почиње додавањем зависности Google Fit SDK-а преко build.gradle: com.google.android.gms:play-services-fitness. Након тога потребно је конфигурисати Google APIs конзолу — креирати пројекат, активирати Fitness API и додати OAuth 2.0 акредитиве са исправним SHA-1 отисцима.
Процес интеграције укључује: иницијализацију GoogleSignIn-а са потребним доменима, креирање FitnessClient-а преко Fitness.getClient(), захтевање ауторизације од корисника и извођење операција читања или писања података. За позадинско писање користи се RecordingClient, који аутоматски прикупља податке чак и када је апликација сведена. Google Fit аутоматски управља учесталошћу прикупљања података у зависности од нивоа батерије и активности корисника.
Према Google-у, апликације са интеграцијом Google Fit-а показују 35% виши ниво задржавања корисника. Кључне категорије апликација — фитнес тракери, апликације за трчање, бициклизам, јогу и контролу тежине.
Важно је узети у обзир захтеве приватности: Google Fit користи Restricted Scopes — посебне домене приступа који захтевају засебну верификацију апликације кроз OAuth Verification. Програмер мора описати који се подаци прикупљају, како се користе и колико дуго се чувају. Google такође захтева постојање политике приватности и усклађеност са програмом API Services Terms of Service.
За писање података креира се DataSource са навођењем типа, уређаја и апликације. Затим се формира DataPoint са временском ознаком и вредностима. Више DataPoint-ова се обједињује у DataSet, који се прослеђује 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("Подаци сачувани")
}
Често постављана питања
Google Fit подржава преко 50 типова података, укључујући кораке, калорије, пулс, удаљеност, брзину, сан, тежину, висину, крвни притисак, ниво глукозе и телесну температуру. Комплетна листа доступна је у документацији DataType за Android и REST API.
Да, за рад са Google Fit-ом потребан је Google налог. Корисник се ауторизује преко Google Sign-In-а, након чега апликација добија приступ Fitness API-ју са наведеним доменима. Без Google налога платформа није доступна, јер се сви подаци чувају у Google Cloud-у.
Да, подаци Google Fit-а могу се извести преко Google Takeout-а — услуга омогућава преузимање свих података платформе у JSON и CSV форматима. Програмери могу програмски извозити податке преко REST API-ја са одговарајућим доменом приступа.
Google Fit је вишеплатформска облачна платформа која ради на Android-у, iOS-у и преко REST API-ја, док је HealthKit везан за Apple iOS екосистем и чува податке локално на уређају. Google Fit користи OAuth 2.0 за ауторизацију, а HealthKit — системске дозволе iOS-а.
Google Fit API има следећа ограничења: 1000 захтева на 100 секунди по пројекту, 1000 тачака података по једном захтеву за писање, максимални временски опсег читања — 365 дана по захтеву. За повећање ограничења потребно је затражити квоту преко Google Cloud Console-е.
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође