Dunfey · Hotel WWDC as data, est. 1983
Front desk everything
Years
Topics

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 ↗

Transcript all transcripts

Code shown on screen · 1 snippet

Working with AAC swift · at 3:51 ↗
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