I looked into the Google Fit API (from the Android side) and came away impressed with the API if not the terms and conditions.
As you mentioned, data types are highly flexible and extensible. Apps are allowed to keep their own data isolated from other apps, but are asked to share data if they use data from the shared pool. I went so far as to query for activity data and look at the return format. I considered an integration with Tap Log, but decided synchronizing the two datasources wasn’t worth the effort. If I wanted to integrate with the API it would be all or nothing. Google’s ‘Fit’ app is truly a gem, and I imagine most apps that choose to integrate with Google Fit API will be variations on that one (with different charts, notifications, and data input mechanisms).
The terms and conditions threw me for a loop(https://developers.google.com/fit/overview). Specifically the statement “Do not use Google Fit APIs for non-fitness purposes, such as storing medical or biometric data …” but isn’t storing biometric data the whole point? Where is the line between EKG readings and a periodic measurement of a heart rate? Apple has made explicit overtures to consumers and the medical community to make HealthKit a repository of biometric and medical data, but Google Fit forbids it explicitly. It’s like Google has created a superhighway for health data, but allows bicycles only.
The lawyers probably made them add those terms because Google Fit isn’t HIPAA-compliant, and it doesn’t look like they plan to be (been there done that with Google Health)?
I’m using the Google Fit REST API to support retrieval of data from apps that don’t provide their own API, e.g. Runtastic, Polar or the Azumio Heart Rate app. This works great, except that there are frequent sync issues between the mobile device and Google’s servers, and many apps don’t bother creating the proper data streams.
Not sure how data from a general-purpose app like Tap Log would “fit” into Google Fit. I suppose you could create a stream for each “category”? Reading data back could be a bit trickier, but that’s optional…
Syncing seems to happen once an hour or so, when on WiFi, and less often otherwise. But sometimes things get plugged up and won’t sync properly until I can get hold of a plumber at Google
What’s new is that this data is now shown in the “Fit” app; the API has supported distances etc from the beginning.
Not sure Google Fit is very useful yet for storing sleep data: You’ll only get the begin and end times (in UTC). I’m curious if Basis creates custom data streams in Google Fit to store additional data; if you create a bucket for your google-activities data on zenobase.com, I can let you know…