A learner-first iOS and Android app for the people companies actually train — frontline staff, field technicians, and distributed employees who often have no work laptop and unreliable connectivity. It opens on what needs your attention, works offline, and finally gives ClassroomIO a push channel for deadlines and renewals. A small tutor mode handles grading and attendance on the go; authoring and org administration stay on the web.
Built on the real packages/ui tokens, rendered in a 390 × 844 device frame. Every page has a theme
toggle and cross-links so you can click through each journey end to end. The engineering PRD lives at
prd/mobile-app/README.md.
Password, Google, and enterprise SSO through Better Auth's Expo client; custom server URL for self-hosted; Face ID re-entry and an offline launch path.
Compliance alerts, continue-learning, due-soon, assignments, announcements, feedback — one /account/home-digest call. Plus caught-up and offline states.
Permission pre-prompt, the notification center with deep links, and per-category preferences with quiet hours.
My learning with progress rings and download markers, the org catalog with enroll-in-place, and cohorts with goal progress.
Complete / current / locked / downloaded on every row, a deadline banner for compliance courses, the download sheet, and the completed state.
HLS video with a playback token, transcript and AI-tutor sheets, the fair-use cap state, and offline playback with a queued completion.
Autosaving single-choice, camera capture with upload progress, drag/hotspot/video types, and the graded result with a per-question breakdown.
The differentiator as a tab: overdue with grace dates and consequences, expiring certifications, waivers, and the all-clear renewal timeline.
Issued certificates sorted by what needs attention, plus the rendered certificate with share, save, and a verification ID/QR.
Mentions and followed threads, a Q&A thread with the tutor answer promoted, and the offline read-only state with compose disabled.
Storage breakdown, resumable downloads, Wi-Fi-only defaults, and every queued write with its sync state and retry count.
Learner record, org switcher sheet, app settings and biometric lock — plus frontline mode, QR launch, and the accessibility commitments.
Submissions across all courses, oldest first, and a review screen with answer, video, rubric, score, and recorded audio feedback.
One-tap Present / Late / Absent on the roster, plus a rotating QR check-in code so learners mark themselves.
Completion, overdue learners, and where people get stuck; post an announcement; handle unanswered and reported posts.
Explicitly not in the app. Course, lesson, and exercise authoring; the media manager and AI course builder; org settings, team management, billing, SSO configuration, custom domains, and API keys; live-class video hosting; SCORM playback; and any purchase flow at all — no checkout, no plan upgrade, no AI token packs, on any storefront.
Hard dependency. Push notifications ride on prd/notification-system. Mobile contributes a
device-token registry and an Expo Push transport in the existing apps/jobs worker — never a second
notification pipeline.
Offline scope. v1 caches content and queues two monotonic writes (lesson completion, playback position). Exercises, submissions, and grading stay online so no assessment record can be corrupted by a replay — the same line Canvas and Blackboard draw.