Skip to content
Health Framework to make using HealthKit simpler
Swift Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

MBHealthTracker

CI Status Version License Platform

Goals

  • Make using HealthKit to a project easy.
  • Enable easy integration for health data.
  • Provide an Open Source project for the iOS open source community.
  • Help others learn about HealthKit.

Installation

MBHealthTracker is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'MBHealthTracker'

Getting Started

Configuration for HealthKit

Add health kit in capabilities through project in "Capabilities"

Add below code to your info.plist

<key>NSHealthShareUsageDescription</key>
<string>Health want to read your health data</string>
<key>NSHealthUpdateUsageDescription</key>
<string>Health wants to write your progress to health store</string>

Guide

The main driver that contains all the business logic is MBHealthTracker which can be injected into your services with MBHealthTrackerProtocol

The MBHealthTracker contains all the services below

let tracker = MBHealthTracker()
let configuration = tracker.configuration

Alternatively is you just need a single service you could just inject the protocol needed

let configuration = ConfigurationService()
MyService -> init(configuration: ConfigurationServiceProtocol)
let myService = MyService(configuration: configuration)

Configuration

  • requestingAuthorization
  • presenting healthKit app

var configuration: ConfigurationServiceProtocol

Sleep

  • getting sleep
  • saving sleep item

var sleep: SleepServiceProtocol

Mindfulness

  • getting mindful sessions
  • saving mindful item

var mindful: MindfulnessServiceProtocol

Characteristics

  • biologicalSex
  • bloodType
  • dateOfBirth
  • skinType
  • isWheelChairUser

var characteristics: CharacteristicServiceProtocol

ActivityManager

The ActivityManager contains all the services below and can be injected into your services with ActivityManagerProtocol if you just need this service

let activityManager = ActivityManager()
let activeEnergy = activityManager.activeEnergy

or using MBHealthTracker

let tracker = MBHealthTracker()
let activeEnergy = tracker.activityManager.activeEnergy

ActiveEnergy

Split into sections to gather data based on timeIntervals

  • today, thisWeek, betweenTime

var activeEnergy: ActiveEnergyServiceProtocol

Steps

Split into sections to gather data based on timeIntervals

  • last hour, today, thisWeek, betweenTime

var steps: StepsServiceProtocol

Workouts

  • saveWorkoutItem
  • getWorkouts
  • today, thisWeek, all

var workout: WorkoutManagerProtocol

Body

  • bodyMass
  • bodyMassIndex
  • bodyFatPercentage
  • leanBodyMass
  • height
  • waistCircumference

var body: BodyServiceProtocol

Nutrition

  • macronutrients
  • minerals
  • ultratrace minerals
  • vitamins
  • hydration
  • caffeine

var nutritionService: NutritionServiceProtocol

HeartRate

Split into sections to gather data based on timeIntervals

  • today, thisWeek, all

var heartRate: HeartRateServiceProtocol

Reproductive health

  • basalBodyTemperature
  • cervicalMucusQuality
  • menstrualFlow
  • ovulation
  • sexualActivity
  • spotting

var reproductive: ReproductiveServiceProtocol

Contact

Have a question or an issue about MBHealthTracker? Create an issue!

Interested in contributing to MBHealthTracker? Branch off and create a PR

Apps using this library

Add your app to the list of apps using this library and make a pull request.

License

MBHealthTracker is available under the MIT license.

You can’t perform that action at this time.