Skip to main content

UI Kit and custom interfaces

Integration choices​

ChoiceHost ownsSDK owns
Official UI KitBusiness login, entry configuration, page presentation/dismissal and host permissionsClassroom layout, controls, subscriptions, state display and internal cleanup
Headless custom UIViews, subscriptions, video/whiteboard mounting and lifecycle cleanupClassroom state, permission policy, entry/exit and provider orchestration

Web uses Vue 3, Android uses Compose, iOS uses SwiftUI/UIKit and Qt uses Qt Widgets. Electron reuses Web UI. See Client SDK overview for installation and entry points.

Web controller​

ClassroomController from @eduskit/ui/core supports non-Vue views. entry uses Web classroom Options; render is your view-update function:

import { ClassroomController } from '@eduskit/ui/core';

const controller = ClassroomController.create(entry);
const unsubscribe = controller.subscribe((snapshot) => {
render(snapshot);
});
await controller.initialize();
// On route unmount:
unsubscribe();
controller.destroy();

Read classroom state and permissions from snapshot; the SDK handles IM deduplication. With Headless, use the client APIs to subscribe and read state.

Theme and language​

Web Options support themeMode: 'system' | 'light' | 'dark', locale and messages. Update them with controller setThemeMode and setLocale. Built-in locales are zh-CN and en-US.

Android and iOS use EduThemeMode and localeTag. Follow each platform's constructors and enums instead of passing Web configuration objects to native SDKs.

Operations and state​

A successful mute/unmute command means the request was accepted. Display actual device state from stream callbacks. Re-read interaction policies after permissions, stage membership or classroom state change.

getClassroomInteractionPolicy() returns available and reason. Explain disabled permissions explicitly, and explain waiting, ended-class or unavailable-capability restrictions according to the current state. Keep an action available to close devices that are already open.