پلتفرم 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 به طور خودکار گامها، کالریها و مسافت را در حالت minimized بدون کار مداوم پردازنده جمعآوری میکند.
به گزارش 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 اصلی برای کار با دادهها. این 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 استفاده میشود که حتی زمانی که برنامه minimized است به طور خودکار دادهها را جمعآوری میکند. 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 از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید