The Saga (@GetSaga) lifelogging app brings RunKeeper (@runkeeper) activities into a user’s location-based view of their life’s activities. Jeremy Bensley (@jbensley) walks us through how A.R.O., Inc. (@arodotcom), makers of Saga, use the Health Graph platform (@healthgraphapi) to show the saga of your life.
Bill Day: Please tell us about yourself and your work.
Jeremy Bensley: I’m the Director of Server Development at A.R.O., Inc. Running the platform development team means I’m involved with many tasks on a daily basis, but at my core I’m a data guy, and specifically I love tracking my movements, my activities, and my habits. My background is in machine learning, natural language processing, and making sense of lots and lots of (often noisy) output from sensors. Aside from managerial duties my primary tasks for Saga are the time segmentation of the LifeLog and integration with external APIs such as RunKeeper’s Health Graph API.
A.R.O. is a great place to work. We think the sensors in your smartphone can be used to power a wide range of awesome app experiences. Everything from contextually-aware systems like Google Now to virtual personal assistants like Siri, and we’ve only begun to scratch the surface on this potential.
BD: What is the “elevator pitch” for why someone should use Saga?
JB: Saga is a location lifelog. It creates a diary of your life based on where you go. The beauty of Saga is that it does this without requiring much attention from the user. Different people will like different aspects of Saga: Perhaps you will use it to figure out how to optimize your commute to work, or how you run your errands. Or as a beautiful way to tell the story of your amazing weekend.
BD: How did you get started using the Health Graph API?
JB: We wanted to include health details as part of the Saga lifelog. A first step is including information such as the details of your run from RunKeeper. For many runners, running is a part of your life, more than just the numbers of the run (distance, time, pace, etc). It’s about getting out to a unique location, having an amazing run or race, meeting up with fellow runners at the pub afterward, and basically just having a wonderful weekend.
And Health Graph users aren’t tracking just runs or other forms of exercise. Right now we’re focusing on run information, but soon we will incorporate other measurements available in Health Graph platform such as body measurements and food intake.
BD: How will the Health Graph platform benefit your business?
JB: People who use the Health Graph through a number of tools have already established a form of lifelogging practice, just very focused. We think they will be familiar with lifelogging in general, and appreciate the additional context that Saga will provide to their existing logging practice.
BD: Which portions of the Health Graph API do you use, and why?
JB: For our initial integration we are pulling the FitnessActivityFeed and associated FitnessActivities to display a summary of a user’s workout in their lifelog. We have plans in our roadmap for expanding upon this to include other activity feeds and eventually allow people to post into some of these feeds using data from Saga.
BD: What do you like about the Health Graph API? What would you like to see changed?
JB: It’s an amazingly comprehensive platform for tracking all of the health-related aspects of your life, and it’s fantastic that RunKeeper places such a strong emphasis and dedication to making this the best API for health tracking. My only complaint as a developer would be the lack of API versioning, or if it exists documentation on its usage. [Editor’s note: Please monitor “revisions” via this blog for updates and modifications to the Health Graph API and platform.]
BD: If you could request any new feature from the Health Graph platform, what would it be? How would you use it?
JB: I believe the Health Graph platform provides an amazingly comprehensive health tracking API. Nonetheless I’d like to see extra data to allow for timestamp normalization, by including either a UTC timestamp or the user’s timezone in the activity data.
BD: Can you share any future plans for Saga? What’s coming next that people will be excited about? Does the Health Graph platform play a role in that, and if so, how?
JB: In the future, Saga will incorporate more logging services (for example, a service to track mood, menstrual cycle, music listening) to include in the lifelog. The Health Graph platform will certainly be a part of that, as right now we have a very small subset of it included.
If you do and you want a way to ease their transition from your experience into RunKeeper tracking, we’ve got just the ticket!
We’ve added support for launching RunKeeper on-device from your app. To launch the RunKeeper app on iPhone (or iPad, if a user rolls that way):
- Present the user with a button in your app that they can click to launch RunKeeper.
- When the user clicks that RunKeeper button, attempt to open RunKeeper using the following Objective-C code:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"RunKeeperPro://"]];
- If the user has an up to date RunKeeper release installed, the RunKeeper app should launch and they can begin tracking immediately.
- If the user has an older copy of RunKeeper, or hasn’t installed the RunKeeper app yet, prompt them to install the latest RunKeeper release from iTunes and then they can begin tracking after installation.
First up, notice how GymPact places a prominent RunKeeper button on their app launch screen once a user connects their GymPact account to a RunKeeper account (connection is a one time only operation per user).
Once the user clicks that button, GymPact loads this RunKeeper screen to provide additional context before starting the RunKeeper app.
Clicking on the “Connected – Get Running!” button on the screen above tells the user they’re about to open the RunKeeper app if they have it, or that they need to install the RunKeeper app if they don’t already have it installed.
From here they can grab RunKeeper from the App Store if need be and then away they go!
We hope this will be useful for many of our iOS app partners. Please give it a try and let us know what feedback and requests you have.
And Android partners, fear not, we have you covered too: Similar support is coming in our next Android app release. This will be supported via Android Intents. More details once that release is available in the Google Play store.