Skip to content

CareKit 2.0.0

Compare
Choose a tag to compare
@erik-apple erik-apple released this 05 Dec 01:07
· 87 commits to master since this release
16e8eab

CareKit 2.0 Release Notes

CareKit 2.0 supports iOS and requires Xcode 11.0 or later. The minimum supported Base SDK is 13.0.
CareKit 2.0 includes the following new features and enhancements by Apple Inc. (https://github.com/carekit-apple)

  • New Architecture

CareKit 2.0 has been rewritten from the ground up entirely in Swift 5. The new architecture has been reconstructed to allow for maximum customization and modularity. Splitting the framework out into various layers now enables users to tailor-make their care apps to the desired look and feel for their users.

  • CareKitUI

Now a whole new separate project inside the CareKit repository, CareKitUI can be compiled and imported as a stand-alone framework without any dependencies on CareKit or the CareKitStore. CareKitUI consists of prepackaged views that developers can easily embed anywhere within their apps and populate it with personalized content.

  • CareKitStore

Just like CareKitUI, the CareKitStore too can be imported in as a stand-alone framework without any dependencies. Built as a wrapper on top of CoreData, the CareKitStore offers an on-device datastore that is exclusive to your app. It comes with a predefined schema that facilitates persistence of Care Plans and associated Tasks. Developers can choose to update and modify the schema depending on their individual use cases.

  • CareKit

CareKit, the framework, imports CareKitUI and CareKitStore under the hood. CareKit is all about providing complete synchronization between the UI and the underlying database and this synchronization is powered by the all new Combine feature available in Swift 5. Another key highlight of CareKit is its modularity. This modularity gives developers the freedom to utilize the CareKitStore or plug-in their own custom store that conforms to the OCKStore protocol in order to leverage the synchronization functionality for free. Additionally, developers can now use custom views or inject custom views that conform to our protocols to get the synchronization functionality at no cost.

  • Tasks

The two entities previously know as Assessments and Interventions have been collapsed into a single Task entity. Tasks can be displayed in cards using any of a number of styles. Task card styles exist for a number of common use cases, simple tasks that only need to be performed once, tasks that should be performed several times, and tasks that can be performed any number of times.

  • Charts

CareKit offers views and view controllers that display charts. The views can be styled and filled with custom data, and support multiple data series. The view controllers fetch and display data in the view, and update the view when the data changes. CareKit currently supports line, scatter, and bar charts.

  • Contacts

CareKit offers views and view controllers that display contacts. The views can be styled and filled with custom data. The view controllers fetch and display data in the view, and update the view when the data changes. CareKit currently supports a simple and detailed contact view.

  • List View Controllers

CareKit provides higher order view controllers that easily fetch and display data in a store. The first is a view controller that displays tasks and completion for a given day in the week. The second is a list of contacts.

  • Styling

All CareKit views can be easily styled for a custom user interface by injecting a list of style constants. Views inherit the style of their parent, making it easy to quickly style or brand an app.

  • Updated Database Schema

The database schema has been updated to handle new care-centric data types. The store now models Patients, Care Plans, Contacts, Tasks, Schedules, Outcomes, Outcome Values, and Notes. The store has been reinvented as an append only versioned database, and now allows you to keep a fully versioned history of key records.

  • Scheduling

Task scheduling has been greatly improved in CareKit 2.0. It is now possible to create arbitrarily complex and precise schedules.

  • Sample App

The Sample App (OCKSample project in CareKit's workspace) serves as a template application that combines different modules from the CareKit framework. It's a great starting point for your own CareKit apps.

  • Catalog App

The Catalog App (OCKCatalog project in CareKit's workspace) showcases the views and controllers available in CareKit. It's an excellent reference for the visual building blocks available in CareKit, and is useful for designers and engineers who want to know what building blocks are available to them.