4 min read

CareKit, the value of the correct questions

Care doesn’t only happen at the doctor’s office.
CareKit, the value of the correct questions

On March 21 Apple introduced CareKit, a new software framework designed to enable developers to create apps that help individuals monitor their health and medical conditions. One month later on April 28 the source code was released under BSD license on GitHub.

The following writing contains my first technical approach and how this process inadvertently taught me about creating more human apps.

Structure

CareKit consists basically on 45 classes written on Objective-C localised to 39 languages. The project contains some unit tests concentrated on two concepts called Activities and Schedules. It does not include functionality for integrating with a remote server but has a local data base (named Care Data Store being under the hood a simple Core Data object graph of type SQLite).

Care Data Store is encrypted using the standard file system encryption.

CareKit Class diagram.

Organization

The CareKit framework is organised into six modules, with several additional data types

Four modules provide the user interface (CareKit Scenes)

  • Care Card, manages tasks that a user needs to perform as part of a treatment. For example, taking a medication, changing a wound dressing, or meditating.
  • Symptom and Measurement Tracker, manages tasks that evaluate the effectiveness of a treatment plan. These include subjective assessment of symptoms (such as pain scales) and objective measurements (such as blood pressure).
  • Insights, displays charts that are intended to provide insight to a user by showing the relationship between treatment and progress. An insight can also be a text that provides a tip or alert to help someone stay on track with their health goals.
  • Connect, helps a user communicate their health status and Insights data with care teams and friends/family members.

Two modules manage data

  • Care Plan Store, is a database that stores the data displayed by the Care Card and Progress Card modules. Anytime you update the Store, the user interface updates automatically.
  • Document Exporter, packages the graphs and other information shown by the Insights module. That in turn allows a user to share data easily.
Relationship of items in the CareKit framework” schemes

CareKit vs ResearchKit

ResearchKit and CareKit are closely related frameworks. If not quite siblings, they are at least cousins. Both frameworks focus on simplifying the app creation process. In general, CareKit does not try to duplicate features that can already be found in ResearchKit. Instead, you can incorporate those ResearchKit features directly in your CareKit app.

For example, you can use ResearchKit surveys and active tasks to create the user interface for CareKit’s assessment tasks. You can also use ResearchKit charts within a CareKit dashboard.

Basic differences extracted from the description:

  • ResearchKit: A software framework for apps that let medical researchers gather robust and meaningful data and make easier to enroll participants and conduct studies
  • CareKit: A software framework for apps that let you better understand and manage your medical conditions.

There are a fair amount of apps in the Health & Fitness section of the App Store and all of them seem to share a common set of problems even in the most basic features. The lack of balance between engagement and usability concerns reveals that probably all this apps had to confront at some point one of this common issues:

  • Establish a way to change the routine of the user in a permanent way (personal behaviour)
  • Convert the process of following a therapy (or goal) less daunting (simplify the required steps to accomplish a therapy)
  • Measure the subjective (user feelings)
  • Recognise the correct progress related to the expected therapy results (crossing subjective and objective data)
  • General data representation (detail vs focus)
  • General user motivation (rewards)
  • Social behaviour (avoid the user isolation)

This concerns dictates the common functionality and difficult to find its one of this apps that its not crowded of “set goals”, “social challenges”, “reminders”, “dashboards” and “semi-human” accomplishment messages. Apps that barely exceed the simple combination of feature islands with a touch of nifty UI.

CareKit takes all this problems (and more) and encapsulates them inside of four basic questions:

  • How you can be motivated to follow a helpful (but maybe painful) routine ?
  • How do you feel ?
  • Can you try to be objective about the progress of you disease ?
  • What the people that care of you can do to help ?

Immediately can be noticed that under the technical simplicity described in the documentation, there’s a deep abstraction of the supposedly obvious of taking care of somebody (or yourself).

Design, constructing something tailored for humans, with the solely purpose of aiding them, requires to treat health as a whole, a mostly simple rule of sets that can connect the concept of being healthy and the features and hardware related to your app. No doubt that the lack of conceptual connectivity between devices, ui and frameworks works against the purpose.

Focus on health instead illness, treat the human not only working with the independent symptoms but also crossing this data quickly and deeper to find patterns and reevaluate the user emotions.

Crowd sourced data through ResearchKit it’s also a mix that have the potential of trigger change in the Healthcare. A change where the real utility of our systems surpass the marketing, and the kind of doctor hired by a businessman working in a private clinic built in a shopping mall.

Sounds like the start of the community of Indie Doctors, maybe a throw back to the personal doctor office but without the condescendence and definitely more affordable.

This is the kind of apps that are supposed to be constructed on top of CareKit (or at least with the same mentality).


After thoughts

This is not my work, this are not my ideas, I’m trying to simply translate the implicit manifest behind CareKit.

Also I’m still figuring out how the accessibility plays some role on this, and how this it's going to evolve to be even more inclusive.

Amazing how uncommon its the common sense.

-Human