Mobile Learning
Overview
Mobile Learning covers the native iOS and Android applications for the Open edX platform. The apps allow learners to access course content, watch videos, complete assessments, and view their progress from mobile devices.
The current apps (`openedx-app-android` and `openedx-app-ios`) are a complete rewrite of the original edX mobile apps, using modern native frameworks (Kotlin/Jetpack Compose for Android, Swift/SwiftUI for iOS) and a shared foundation architecture.
Current State (2026)
• Android: Kotlin + Jetpack Compose; `openedx-app-android` with `openedx-app-foundation-android` shared library
• iOS: Swift + SwiftUI; `openedx-app-ios` with `openedx-app-foundation-ios` shared library
• Content support: Video playback, text content, multiple choice problems; not all XBlock types supported
• Offline: Video download for offline viewing is a key feature
• API: Apps consume the same LMS REST APIs as web MFEs (mobile-specific APIs in `edx-platform`)
Architecture
• Shared foundation: `openedx-app-foundation-android/ios` contains shared network, analytics, and theming utilities
• Plugin analytics: Firebase analytics available as optional plugin repos
• Mobile-specific APIs: `edx-platform` exposes `/api/mobile/v*` endpoints for app-optimized data shapes
• Authentication: Standard OAuth2 via the LMS; JWT token management in apps
• Theming: Apps are designed to be white-labelable; theming applied via config files
History
Origin
• Year introduced: ~2013 (original edX mobile apps launched)
• Initial implementation: First-generation apps (React Native or native, to be confirmed) for edX.org
• Context: Mobile access was a key differentiator for large-scale MOOC delivery; many learners in emerging markets access primarily via mobile
Key Milestones
First mobile apps launched for edX
Complete rewrite begun using Kotlin/Swift + modern frameworks
New apps (`openedx-app-*`) transferred to openedx org
Open Questions
- ?When were the original mobile apps first released and what framework did they use?
- ?What drove the decision to do a complete rewrite vs. iterating on the original apps?
- ?Were the apps ever React Native? Or were they always native?
- ?Who led the rewrite initiative (team, organization)?
- ?How are the apps white-labeled by providers, and who established that capability?
- ?What XBlock types are supported on mobile and what's the process for adding new ones?