Skip to content
Studeia Docs

Mobile app (B2B): Android, white-label, offline-friendly

Studeia ships a native B2B mobile app (React Native/Expo SDK 52, Android): Supabase auth, SSO deep link, dynamic white-label, push, courses, quizzes, AI tutor, avatar and gamification.

2026-05-31 6 min
Resposta curta

Studeia includes a native B2B mobile app built with React Native/Expo (SDK 52), published for Android. It authenticates with Supabase (Bearer JWT), supports SSO via deep link, applies each tenant's white-label theme dynamically, and exposes ~47 simplified /api/mobile/* endpoints covering courses, lessons, quizzes, assignments, AI tutor chat, grades, live classes, gamification, certificates, push and the talking AI avatar. iOS is on the roadmap.

Architecture

  • Stack: React Native + Expo Router v4 (file-based), NativeWind v4, TanStack Query, Zustand, expo-secure-store. Monorepo via pnpm (node-linker=hoisted).
  • Auth: Supabase with AsyncStorage; the app sends a Bearer JWT to a dedicated /api/mobile/* surface (~47 endpoints) that returns simplified, flat shapes for the client.
  • White-label: a dynamic ThemeProvider reads the tenant theme from /api/mobile/me after login; pre-login branding comes from the public /api/mobile/tenant-branding endpoint.
  • OTA updates: expo-updates with runtimeVersion pinned to the SDK; an AppVersionGate can force-update when the installed build is below a configured minimum.

What's in the app

AreaScreens
Learningdashboard, courses (list + catalog + detail), lesson viewer, progress
Assessmentnative quiz player, assignment submission
TutorAI tutor chat (SSE streaming), talking avatar (WebView), quarantine/safety notices
Socialdirect messages, forums (forum → thread → reply), announcements, course materials
GamificationXP/level/streak, badges, leaderboard, contests, rewards shop
Recordsgrades, certificates, notifications (list + mark read)
Livelive classes (WebView), calendar

SSO on mobile

The backend route /api/auth/sso/[tenantSlug] accepts a redirect=studeia://... deep link; the callback emits a 302 to studeia://auth/callback#access_token=...&refresh_token=.... A Linking listener in the auth provider calls supabase.auth.setSession(), and the SSO screen uses an in-app browser session so focus returns to the app.

Security model

Mobile endpoints reuse the same authorization guards as the web: forum/thread access guards, lesson access (publish + prerequisite + enrollment), assignment attachments in a private bucket with a validated path prefix, and server-side HTML sanitization before any WebView render (WebViews run with a strict origin whitelist and JS disabled where possible).

Avatar on mobile

The talking AI avatar runs in a WebView that loads the same /avatar-embed page used on web (no native WebRTC modules in Expo); a small React Native bridge forwards control messages.

Roadmap

iOS is not published yet — it requires an Apple Developer account and a dedicated EAS build.

See also

FAQ

Does Studeia have a mobile app for students?

Yes — a native B2B app built with React Native/Expo (SDK 52), currently published for Android. It authenticates with Supabase (Bearer JWT), supports SSO via deep link, and applies each tenant's white-label theme dynamically after login. iOS requires an Apple Developer account and a dedicated build (roadmap).

Is the mobile app white-label per institution?

Yes. After login the app calls /api/mobile/me and applies the tenant's theme (colors, logo, name) via the mobile ThemeProvider. Before login it can preview branding via the public /api/mobile/tenant-branding endpoint using the last tenant slug, so students see their school's identity, not a generic Studeia shell.

What can students do in the app?

Dashboard, course catalog and detail, lesson viewer, native quiz player, assignment submission, AI tutor chat over SSE, grades, live classes (WebView), calendar, direct messages, forums, course materials, gamification (XP, badges, leaderboard, contests, rewards shop), certificates, progress, push notifications and the talking AI avatar.

Veja tambem

Mobile app (B2B): Android, white-label, offline-friendly