2020 Privacy & SecurityBusiness & Education
WWDC20 · 13 min · Privacy & Security / Business & Education
What’s new in assessment
It’s now easier than ever to deliver academic tests on the Mac. Learn how education developers can leverage the Automatic Assessment Configuration framework for iPhone, iPad, and Mac to deliver tests and assess students across all devices. And discover how developers can enable restricted features within tests and exams on iOS to accommodate student needs or suit the test content.
Watch at developer.apple.com ↗Code shown on screen · 1 snippet
Working with AAC
import AutomaticAssessmentConfiguration
class AssessmentManager: NSObject {
private var assessmentSession: AEAssessmentSession?
func beginAssessmentMode() {
let config = AEAssessmentConfiguration() // Configure AAC behavior
let session = AEAssessmentSession(configuration: config) // Construct your session
session.delegate = self // Receive lifecycle events via delegation
assessmentSession = session // Retain the session
// Present assessment mode bringup transition UI
// ...
session.begin()
}
func endAssessmentMode() {
guard let session = assessmentSession else {
return
}
// Present assessment mode teardown transition UI
// ...
session.end()
}
}
extension AssessmentManager: AEAssessmentSessionDelegate {
func assessmentSessionDidBegin(_ session: AEAssessmentSession) {
// Stop showing assessment mode bringup transition UI
// ...
// Present sensitive testing content
// ...
}
func assessmentSession(_ session: AEAssessmentSession, failedToBeginWithError error: Error) {
// Stop showing assessment mode bringup transition UI
// ...
// Present some kind of error UI
// ...
// Release your reference to the AEAssessmentSession
assessmentSession = nil
}
func assessmentSessionDidEnd(_ session: AEAssessmentSession) {
// Stop showing assessment mode teardown transition UI
// ...
// Present your post-test UI
// (maybe a result, a confirmation, or just the initial view)
// ...
// Release your reference to the AEAssessmentSession
assessmentSession = nil
}
func assessmentSession(_ session: AEAssessmentSession, wasInterruptedWithError error: Error) {
// Hide all sensitive UI
// ...
// Present some kind of error UI
// ...
session.end()
}
} Resources
Related sessions
-
11 min