iOS
Swift
CareKit

CareKitをシンプルに動作させてみるサンプル

More than 3 years have passed since last update.


CareKit とは?

Introducing CareKit 日本語訳

GitHub

CareKit Framework Programming Guide


CareKit を取得する

git clone --recurse-submodules https://github.com/carekit-apple/carekit.git


開発環境の準備をする


  1. Xcode -> File -> New -> Project -> Single View Application で新しいプロジェクト(名前はCareKitSampleとしておく)を作成する

  2. 余計なものを削除する


    1. ViewController.swift を削除する

    2. Main.storyboard を削除する

    3. Info.plist -> Main storyboard file base name をエントリーごと削除する



  3. File -> Add Files to "CareKitSample" -> clone した CareKit.xcodeproj を追加する

  4. CareKitSampleのProjectを選択 -> TARGETS -> CareKitSample -> General -> Embedded Binaries の + ボタンから CareKit.framework を追加する


実装する


  1. AppDelegate.swift を下記のように書き換える


AppDelegate.swift

import UIKit

import CareKit

extension OCKCareCardViewController {
class func create() -> OCKCareCardViewController? {
let fileManager = NSFileManager.defaultManager()
guard let documentDirectory = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last else { return nil }
let storeURL = documentDirectory.URLByAppendingPathComponent("MyCareKitStore")
guard let storePath = storeURL.path else { return nil }
if !fileManager.fileExistsAtPath(storePath) {
do { try fileManager.createDirectoryAtURL(storeURL, withIntermediateDirectories: true, attributes: nil) }
catch { return nil }
}
let carePlanStore = OCKCarePlanStore(persistenceDirectoryURL: storeURL)
return OCKCareCardViewController(carePlanStore: carePlanStore)
}
}

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

lazy var window: UIWindow? = UIWindow(frame: UIScreen.mainScreen().bounds)
lazy var careCardViewController: OCKCareCardViewController? = OCKCareCardViewController.create()
lazy var navigationController: UINavigationController? = self.careCardViewController.map(UINavigationController.init)

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window?.rootViewController = navigationController
window?.makeKeyAndVisible()

return true
}
}


今回はCareCardだけを動かしてみました。他のモジュールはドキュメントに書いてある・・・かと