Enable teachers to assign activities from your app’s content and to view student progress.


Educational apps provide access to resources like books and videos while reinforcing learning through interactive visualizations, games, and assessments. ClassKit lets you organize educational material so that teachers can assign activities to students and see their progress.

The ClassKit environment consists of a teacher’s iOS device (or devices) and many student iOS devices communicating through iCloud. Each device runs your app (plus other educational apps) along with Apple’s Schoolwork app, with ClassKit acting as a hub on the device. Using Schoolwork, teachers can see what assignable content your app exposes to ClassKit. They can then create assignments based on that content, and monitor progress of all their students. Meanwhile, students use Schoolwork to receive assignments that link directly to content in your app.

Diagram showing how your app connects to the other parts of the virtual classroom.

ClassKit doesn’t replace any existing logic or storage mechanisms in your app, and you don’t use it to generate any new user interfaces. Instead, you use ClassKit to publicize the structure you already have, so that teachers can use Apple’s Schoolwork app to create assignments based on your app’s content and measure their students’ progress through those assignments.



Enabling ClassKit in Your App

Prepare your app and your development environment to adopt ClassKit.

ClassKit Environment Entitlement

The ClassKit development or production environment for an education app that works with the Schoolwork app.

Incorporating ClassKit into an Educational App

Walk through the process of setting up assignments and recording student progress.


A container for all the ClassKit data in your app.


Advertising Your App’s Assignable Content

Assemble a hierarchy of contexts and declare your app’s assignable content.


An area of your app that represents an assignable task, like a quiz or a chapter.


An interface used to tell your ClassKit context provider app extension to update contexts.


Recording Student Progress

Create an activity to record student progress through an assignment.


A representation of user interaction with a context.

Activity Items

Recording Additional Metrics About a Completed Task

Add an activity item to an activity to record additional information about a student’s attempt to complete a task.


Activity information that signifies a score out of a possible maximum.


Activity information that is true or false, pass or fail, yes or no.


Activity information that signifies a quantity.


An abstract base class for gathering information about an activity.



The error domain that ClassKit uses when issuing errors.


Error codes that ClassKit issues.


Keys that appear in the user info dictionary in errors that ClassKit creates.