---
title: ClassKit
framework: ClassKit
role: collection
role_heading: Framework
platforms: [iOS 11.4+, iPadOS 11.4+, Mac Catalyst 14.0+, macOS 11.0+, visionOS 1.0+]
path: classkit
---

# ClassKit

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

## Overview

Overview 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 device (or devices) and many student 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.

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. For student-facing submission functionality, use the ClassKit UI framework, which provides views that enable students to submit assigned documents and track submission status directly within your app. note: ClassKit is designed for educational organizations that use Apple School Manager and Managed Apple IDs. Consider adopting ClassKit if education is your intended market.

## Topics

### Essentials

- [Enabling ClassKit in your app](classkit/enabling-classkit-in-your-app.md)
- [ClassKit Environment Entitlement](bundleresources/entitlements/com.apple.developer.classkit-environment.md)
- [Incorporating ClassKit into an Educational App](classkit/incorporating-classkit-into-an-educational-app.md)
- [ClassKit UI](classkitui.md)
- [CLSDataStore](classkit/clsdatastore.md)

### Contexts

- [Advertising your app’s assignable content](classkit/advertising-your-app-s-assignable-content.md)
- [CLSContext](classkit/clscontext.md)
- [CLSContextProvider](classkit/clscontextprovider.md)

### Activities

- [Recording student progress](classkit/recording-student-progress.md)
- [CLSActivity](classkit/clsactivity.md)

### Activity items

- [Recording additional metrics about a completed task](classkit/recording-additional-metrics-about-a-completed-task.md)
- [CLSScoreItem](classkit/clsscoreitem.md)
- [CLSBinaryItem](classkit/clsbinaryitem.md)
- [CLSQuantityItem](classkit/clsquantityitem.md)
- [CLSActivityItem](classkit/clsactivityitem.md)

### Errors

- [CLSError](classkit/clserror.md)
- [CLSErrorCodeDomain](classkit/clserrorcodedomain.md)
- [CLSError.Code](classkit/clserror/code.md)
- [CLSErrorUserInfoKey](classkit/clserroruserinfokey.md)
