If you’re looking to track your workouts, count your calories, monitor your sleep, or capture your vitals, there’s no shortage of apps on Android that can help you do those things and then some. Android’s robust ecosystem of health, fitness, and wellness apps makes it easy to find the service that best suits your goals, but for some of you, a single app won’t do the trick. Using multiple services can cover the areas where one service falls short, but it can be annoying and confusing to manage them as they each have their own UI, privacy control settings, and way of showing data. Plus, these services often don’t talk to one another, or when they do, the amount of data they share is very limited. That’s why Google made Health Connect.
Health Connect is a platform that makes it easier for health, fitness, and wellness apps to share data with one another. It consists of an API that’s available to developers through an SDK as well as an app for users to control permissions and manage their data. Google announced the Health Connect platform at I/O 2022 earlier this year and made a beta version of the app available for users last month.
While the app is easy to find, doesn’t require much storage space, and is simple to use, Health Connect has racked up less than a million downloads as of this writing. For comparison, many health and fitness apps have racked up tens of millions of downloads, with some achieving over a hundred million downloads. If the users just aren’t there, then there’s little incentive for developers to put in the work to support Health Connect, no matter how sound the platform is. Fortunately, Google wants to have Health Connect preinstalled on Android devices. It’s not a matter of if, but when, though there’s evidence the app could be made part of the OS soon.
In this edition of Android Dessert Bites, I’ll share how Google could bring Health Connect to all devices running Android 14.
How Health Connect reduces fragmentation among health and fitness apps
Before I dive into how Google could bake Health Connect into Android, I wanted to talk a bit about why it was made and what it can do because I think it’s a really neat platform that more people should be aware of. So as I mentioned earlier, health and fitness services often share little to no data with one another. It’s not that many services don’t want to, it’s that it’s costly to build and maintain integrations with other services. Each service has its own API and data schema, so integrations need to be built on a per-service basis. There’s no industry standard way to represent something like step count data in a datastore, so each service does it their own way. Health Connect solves this problem by acting as an intermediary between services, so developers need to build only one, not many, integrations.
The Health Connect platform supports over 50 data types across 6 categories, which include an “activity” category for things like running and swimming, a “body measurement” category for things like height and weight, a “cycle tracking” category for menstruation data, “nutrition” for things related to food and hydration, “sleep”, and “vitals”. While it might not encompass every data type yet, it covers most of the basics, plus it can be updated to add support for more data types down the road.
Data contributed to Health Connect is stored in an encrypted, on-device data store that isn’t shared with Google (the app doesn’t even request the Internet permission). Given the sensitivity of health and fitness data, only apps that fall under an approved use case and comply with strict privacy and security requirements are eligible to launch on Google Play with Health Connect integration. This reduces the risk of bad actors getting access to your health and fitness data. Only apps vetted by Google can be granted access (unless you sideload, of course).
The Health Connect app does more than provide a centralized, secure data store for health and fitness apps, though. As you can see from the above screenshot, it also offers granular user permission controls. Apps have to request permission for every single data type they want to read or write. The user can revoke these permissions one-by-one or all at once at any time through the Health Connect app’s UI. Plus, only apps that are running in the foreground can read data in the first place, so you can be confident that apps are not only accessing data they have permission to but also have a need to access.
The request and revocation flows for permissions provided by the Health Connect app. Source: “Introduction to Health Connect” on YouTube.
That’s not all it does. The Health Connect app also offers centralized privacy and on-device data management controls. Through the app, users can see all the data that’s been contributed to the data store, broken down by category, data type, and which app submitted the entry. The user can choose to delete individual entries, entire categories of data, data of a single type, all data from a single app, or all data in Health Connect. They can also schedule Health Connect to automatically clear data after 3 or 18 months, export data, and choose which app’s data to prioritize when multiple apps are writing the same type of data.
While you can see a lot of data in the app itself, you aren’t actually supposed to use it for health and fitness tracking. It doesn’t provide any useful insights like graphs or provide goals; it’s mostly meant to be a centralized place for users to easily manage permissions and on-device data.
Reading and writing data to Health Connect. Source: “Introduction to Health Connect” on YouTube.
Apps that integrate with Health Connect can give users more holistic health insights by sharing or importing data. An app that specializes in calorie counting can import data from an app that tracks workouts, for example. Integrating also makes it easier for users to switch or try new services instead of trapping them within a single one.
There are clearly plenty of benefits for both developers and users to get on board with the platform, but without users, there won’t be developer interest and vice versa. Google has already gotten over a dozen major health and fitness apps to integrate Health Connect, and even some smaller apps have added support, so developer interest is clearly there. Google’s encouraging developers to inform users about Health Connect in their apps, and if the user doesn’t have it installed already, the user will be shown a dialog to install the app from Google Play. Once more apps roll out and advertise support for Health Connect, the number of users who have downloaded the app will increase. If Google ships Health Connect as a preloaded app in the next release, though, that number will skyrocket.
Health Connect: Coming soon to an Android 14 device near you?
The news that Google wants to preinstall Health Connect on Android devices shouldn’t be surprising, considering they’ve announced their intentions on two separate occasions already. The first was at Google I/O, where Android Developer Advocate Sara Hamilton said the following: “So Health Connect provides an SDK that apps can use to integrate with the API. It also provides an app for users, which is available via Play Store in beta and will come preinstalled on some Android devices later this year.”
Earlier this week, Google shipped the first beta version of Android 13 QPR2 for Pixels, and it included a Health Connect stub package. It’s unclear if other devices will preload Health Connect this way, but it is clear that the Pixels won’t be the only ones to preload it. John Feig, Systems Engineering Manager at Android, said that “the long-term goal is to have Health Connect preinstalled” but that developers currently “must check if Health Connect is available and installed.” This guidance wouldn’t make sense if only Pixel phones preload the app, so I thought about how Google might go about mandating its inclusion on other Android devices.
One option is to bake Health Connect into Google Play Services, which already delivers dozens of other features and services to users and which is available on all GMS Android devices. That wouldn’t work, though, because Health Connect’s data is supposed to be kept offline, and Play Services can access the Internet. Another option is to add Health Connect to GMS as a mandatory preload, but this would mean the platform would continue to exclude AOSP devices without GMS (it already only works with GMS Android devices running Android 9 or higher). The best solution is to create a new modular system component, ie. a Project Mainline module, so that GMS Android devices can get a prebuilt Health Connect package from Google that’s updatable through Google Play System Updates while all other devices can get the app through AOSP.
Now, Google hasn’t published the source code for Health Connect in AOSP (or anywhere else as far as I can tell) yet, nor have they created a new repo for a Health Connect module. However, a few code changes submitted to the AOSP Gerrit hint that Health Connect will be made a system service and packaged into an APEX module (which is the key format used by Project Mainline). The package name of this APEX module seems to be “com.android.healthconnect”, but it’s not clear if this APEX will simply include the existing Health Connect app or a different build, one with a different package name than “com.google.android.apps.healthdata”. A few code changes suggest the Health Connect implementation in Android 14 is different somehow from the current implementation, and that there will be some kind of path for migration.
None of this evidence is conclusive on its own but given the earlier statements, it’s fair to say that Google wants to preinstall Health Connect on more devices than just Pixels. After all, the whole Health Connect platform is made up of just two things: a client app that links the SDK and the Health Connect APK itself. What exactly would a new Health Connect APEX module do if not hold the Health Connect APK?
Thanks for reading another Android Dessert Bites post! If you want to learn more about what goes on under the hood in the Android platform, check out some of the other posts in my Android Dessert Bites series on the Esper blog.