25 Sep 2019
New in Exist for iOS: More Apple Health attributes and calendar syncing
Josh recently added support for a set of new attributes in Exist. A few of the attributes were able to be supported by integrations we already have, such as Garmin and Fitbit. A few more were requested by users who wanted to be able to write their own custom integrations. And then there were some that I wanted to support from Apple Health, which are all covered in this update.
My latest update to Exist for iOS includes support for syncing the following attributes from Apple Health (on top of all the ones we already supported, of course):
- Active energy burned
- Lean mass
- Max heart rate
- Resting heart rate
- Menstrual flow
- Sexual activity
I also made a change to the app's Apple Health settings screen, so that any group of attributes where you haven't turned on everything has a button to let you turn on any outstanding attributes.
Unfortunately, just as I complained about when adding support for sleep data from Apple Health, there are no guidelines or rules in place for how apps sync data into Apple Health. Apple Health has a type of menstrual flow called "unspecified", which most apps (including the built-in menstrual flow tracking in iOS 13) use for days they predict you have your period if you don't actively track any menstrual flow. Exist ignores these values, and will only sync data that's light, medium, heavy, or spotting.
However, Clue, which is a popular app for menstrual tracking, automatically syncs a "medium" value for days it predicts you have your period. So if you don't bother—or forget—to track your actual flow on days Clue thinks you're menstruating, it will tell Apple Health that you had a medium flow, which could be completely wrong. And if you do track a value in Clue on a day it predicts you're menstruating, instead of overwriting the previous value in Apple Health (which, again, is what most apps, including the built-in app in iOS 13, do), it will add a duplicate value. And then if your flow changes throughout the day or you just change your mind and want to adjust your flow for that day in Clue to a different value, it will add another value to Apple Health.
Now if Exist tries to sync your data for that day, there will be multiple values, and no way to know which one you actually want to be synced to Exist.
Although we spoke to the team at Clue, they haven't made any changes, so we can't ensure that this data is accurate, so Exist will ignore any menstrual flow data in Apple Health that was tracked with Clue. If the way Clue handles syncing to Apple Health changes in future, I'll happily remove this restriction.
And now onto some more good news: I also added syncing for events from your phone's calendars in this release. We already support syncing events to Exist by pasting a publicly accessible link to your calendar into your Exist account settings, but there are a couple of downsides to this approach:
- Handling recurring events is very difficult this way, because we have to calculate from the original event and its rule of recurring whether it would show up on your calendar today or not, which could mean going back years in your calendars to find events that recur today. For that reason, we don't support recurring events when syncing this way.
- After we added support for events syncing, Apple stopped allowing iCal calendar users from creating publicly accessible links to their calendars. Anyone with an existing link could still use it, but you couldn't create a new one, so many new users are unable to use this feature due to a restriction on Apple's part.
For iOS users, syncing events directly from the calendars on your phone includes recurring events because the calculations are done for me before I get your data, so it's no extra effort to support them. It also means you can sync events from calendars that you can't create links for.
And finally, a few smaller changes in this update:
- The location card on the Progress tab now shows a map of your general location
- When logging in, there's now a summary at the end of the onboarding process to show you what data syncing you successfully turned on during that process
- When first turning on a new attribute, Exist will sync the past 60 days, instead of 30
- Calculation of average heart rate now accounts for heart rate monitors that save huge amounts of values into Apple Health and could previously skew the average
- Example tags for users who don't have their own custom tags yet will no longer show rename and delete options, since they're not real tags, but just suggestions to get you started
- If your Exist account timezone and your device timezone differ, Exist will let you know on the settings screen
- I added a new custom URL scheme for opening today's mood rating dialog (instead of just the Review tab):
The next update is currently in beta testing and includes some exciting changes to the Trends tab, including the correlation picker you might have seen on the web, which lets you select any two attributes to see if there's a correlation between them.