The Saga of your life

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

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.

Saga screenshot

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.

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph platform.

Advertisements

Bringing hackathon innovation into RunKeeper product

We’re very excited to have our new RunKeeper (@runkeeper) release out on Android now and iPhone soon!

Not only is RunKeeper now available in seven languages (English, Spanish, French, German, Italian, Brazilian Portuguese, and Japanese), but we’re also shipping our first internal hackathon-derived feature, personal fitness Insights for Elite users.

Here are some screenshots of Insights and other parts of the app in the various languages:
RunKeeper start screen in EnglishRunKeeper Me tab in FrenchRunKeeper Insights in JapaneseRunKeeper Goals in GermanRunKeeper Personal Records in PortugueseRunKeeper Activities tab in ItalianRunKeeper Settings in Spanish

Power tip: When you try out Insights, be sure and click on the different parts of the pie chart to change “focus” in the pace and distance charts. You can also change the time period and/or activity type under consideration via the settings icon at the top right.

I am particularly proud of how fast our team took Insights from hack to product-quality feature. This team never ceases to amaze me!

Enjoy and please let us know what you think!

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph.


RunKeeper hackathon recap

What happens when you give the RunKeeper crew two days to let imaginations run wild? A whole lot of awesome, I tell ya!

Our product team is always five steps ahead in terms of planning awesome updates to the app, but in the process, it seems each developer has some sort of other dream RunKeeper project they’d love work on if given the time. We decided to set two work days aside for engineers (and others throughout the company) to try to bring those to reality.

The community had lots of interesting ideas on what would make it into our first-ever hackathon, and many of the resulting hacks lined up with your hopes! There was a simple start widget for the home and lock screens on Android, much-improved data visualizations for your fitness reports, refreshed technology for GPS tracking, in-app strength training tracking, a pretty new website, and some ridiculously fun and motivating audio cues. And a few other things that are internal and top secret—for now :).

We’re cranking hard to turn some of these hacks into actual RunKeeper updates and features, so stay tuned! And in the meantime, the pictures and videos below are definitely worth (more than a) thousand words.

Kicking off some collaboration

image

Jacked Jim gears up for his commercial debut in the RoidKeeper strength training promotional video

image

This team gave a whole new meaning to the term long hours. (And garnished some awesome prizes in the process)

image

Makers of the aforementioned awesome audio cues hack demo their goods

image

A little hack to get some more real-time insights into our community

image

Working to build the perfect GPS algorithm

image

And this video really speaks to the need for that widget hack

One of our many rocking trophies

image

Cross-posted from the RunKeeper blog.


Health Graph Hacking 101 updated

I’ve updated our Health Graph platform (@healthgraphapi) overview slides for recent developments and new resources.

The latest slides are available on Slideshare:

Health Graph Hacking 101 from Bill Day

Changes to the slide deck include:

  • Updated Health Graph platform stats for growth in users, partners, and data
  • Added links to set-based APIs (after removing links to now-deprecated corresponding discrete measurements)
  • Asked all developers to please read through and follow the Health Graph Best Practices as they develop and prepare to deploy their integrated apps, services, and devices

Health Graph Best Practices include exposing RunKeeper as part of your in-app experience

Please take a few minutes to review the slides and let us know if you have any questions. Thanks and happy hacking!

Bill Day (@billday) is Platform Evangelist for RunKeeper where he helps developers learn about and use the Health Graph.


Launch RunKeeper on Android

In my last post, I showed you how to launch RunKeeper from your iOS mobile app using some Objective-C URI magic.

I also promised a similar capability when we released our next update to RunKeeper for Android. And now the time has come, RunKeeper is ready on Google Play, and away you can go a’launching it from your own Android apps!

To launch the RunKeeper app on Android:

  1. Present the user with a button in your app that they can click to launch RunKeeper.
  2. When the user clicks that RunKeeper button, start the RunKeeper activity using the Intent com.fitnesskeeper.runkeeper.intent.action.MAIN
  3. If the user has an up to date RunKeeper release installed, the RunKeeper app should launch and they can begin tracking immediately.
  4. 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 Google Play and then they can begin tracking after installation.

We’d love to hear from you and see examples of how you will use this capability, on Android and/or iOS. Please contact us in the comments if you’re doing so.

We might even feature you in an upcoming blog post or our new Health Graph (@healthgraphapi) “Best Practices” guide. And we’d love to hear your feedback on that guide, too!

Bill Day (@billday) is Platform Evangelist for RunKeeper where he helps developers learn about and use the Health Graph.


Launch RunKeeper from your own iOS app

Are you a Health Graph (@healthgraphapi) partner with an iOS app of your own? And do you encourage your users to track their fitness activities using the RunKeeper (@runkeeper) app?

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):

  1. Present the user with a button in your app that they can click to launch RunKeeper.
  2. When the user clicks that RunKeeper button, attempt to open RunKeeper using the following Objective-C code:
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"RunKeeperPro://"]];
              
  3. If the user has an up to date RunKeeper release installed, the RunKeeper app should launch and they can begin tracking immediately.
  4. 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.

Here’s an example of how you might implement this, taken from our partner GymPact (@gympact; learn more about GymPact from this previous partner profile).

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.

Bill Day (@billday) is Platform Evangelist for RunKeeper where he helps developers learn about and use the Health Graph.


RunKeeper at Quantified Self

While this post is targeted at attendees of the September 2012 Quantified Self conference in Palo Alto, even if you’re not attending you still might find some useful Health Graph information and development tips.

Welcome Quantified Self attendees and hackers! You’re in for a great weekend of learning and networking. And hopefully plenty of fun!

This post will walk you through RunKeeper and Health Graph platform related Quantified Self sessions, then provide key information and procedures you need to use the Health Graph.

Here are the sessions where I’ll be representing RunKeeper:

  • “Hacking APIs” breakout session, Saturday 10:30AM – Beau Gunderson (@beaugunderson) of Singly and I will be discussing APIs for self quantification and hackery. We hope to have a lively discussion with you and each other, examining APIs for QS from every angle.
  • RunKeeper & Health Graph office hour, Saturday 1:30PM – I’ll be available to discuss Health Graph development and answer any questions you may have.

I will also be attending as many of our partners’ sessions as I can, while hopefully having lots of time to share ideas and make new connections. Please contact me (@billday) if you’d like to get together at the conference.

To prepare for the conference, or begin using the Health Graph directly on your own, you should start by watching this high level overview of the Health Graph platform:

For a quick primer on developing with the Health Graph API, click through the more technical presentation below:

Health Graph Hacking 101

View more presentations from Bill Day

All Health Graph partners are required to follow the Health Graph API Policies.

You can access more technical details on the RESTful Health Graph API by clicking here. Experiment and prototype with the API using the Health Graph Developer’s Console (click here to load the console).

When you’re ready to start your app in earnest, visit the RunKeeper Partner page and click “Connect To Our API“. From there you can fill out the form to register your new Health Graph integrated app, service, or device.

Click here to learn about authorization removal callbacks before providing your callback URL on the form. If you will be reading data out of the Health Graph for accounts other than your own app registering account, you should also request Read permission on the form, being sure you give a detailed explanation of what you will do with that data once you’ve accessed it. Likewise, if you would like to ask users for permission to retain their Health Graph data across deauthorizations and/or edit health information for authorizing users, please request permission(s) on the form.

Need some inspiration to get your developer juices flowing? Check out some of the applications built and deployed using the Health Graph API, available from the RunKeeper Apps page (click here). You can also access an archive of third party libraries, wrappers, and bindings which might make your Health Graph API-based development easier by clicking here. And there’s more information on how app and library partners are taking advantage of the Health Graph via our Health Graph partner profiles series on the blog.

When you encounter issues, you can ask questions and join in the developer conversation by visiting the Health Graph discussion group. You can also reach our team on Twitter, Facebook, and Google+.

One more tip: Click here to learn how to export your own user data from the Health Graph; useful for programmable self hacks as well as backups and parsing your data to re-upload into a test account via the Health Graph API.

Now that you know how to use the Health Graph, go build something great!

Bill Day (@billday) is Platform Evangelist for RunKeeper where he helps developers learn about and use the Health Graph.