CareKit とは?
Introducing CareKit 日本語訳
GitHub
CareKit Framework Programming Guide
CareKit を取得する
git clone --recurse-submodules https://github.com/carekit-apple/carekit.git
開発環境の準備をする
- Xcode -> File -> New -> Project -> Single View Application で新しいプロジェクト(名前はCareKitSampleとしておく)を作成する
- 余計なものを削除する
- ViewController.swift を削除する
- Main.storyboard を削除する
- Info.plist -> Main storyboard file base name をエントリーごと削除する
- File -> Add Files to "CareKitSample" -> clone した CareKit.xcodeproj を追加する
- CareKitSampleのProjectを選択 -> TARGETS -> CareKitSample -> General -> Embedded Binaries の + ボタンから CareKit.framework を追加する
実装する
- 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だけを動かしてみました。他のモジュールはドキュメントに書いてある・・・かと