[Proposal] PDF XBlock Viewing and Offline Support in Open edX Mobile App
Prepared by: @Elizabeth Gordon, Arizona State University
Target Release: Verawood or later
See Github ticket. Please provide feedback before Oct 26, 2025.
Summary
This proposal recommends implementing support for in-app viewing and offline caching of PDF XBlocks in the Open edX mobile application. Currently, learners accessing PDF XBlocks are redirected to the web UI, which poses a significant accessibility challenge—especially for users with intermittent connectivity or limited data access. This enhancement would enable learners to view PDF files natively within the app and optionally download them for offline access. The user experience would mirror that of existing video content downloads, providing both single-file and bulk download options, with file size indicators and storage management capabilities.
Motivation
Learners in bandwidth-constrained environments or areas with unstable internet access are disproportionately affected by the current lack of mobile PDF support. As mobile devices are the primary mode of access for many learners in regions such as Sub-Saharan Africa, offering offline capabilities for core learning materials—including PDFs—is critical. As of now, PDF XBlocks are not supported in the Open edX Android app, which diminishes the platform’s usability and inclusivity in mobile-first contexts.
Proposed Features
The proposed update includes the following capabilities:
Native in-app PDF viewer for PDF XBlocks
Display of file metadata (file name, size, and source URL)
Ability to download individual PDFs for offline use
Bulk download of all PDFs in a course or subsection
Integration with existing Downloads interface (used for videos and text)
Clear indicators of file size to aid user decisions around storage
Technical Implementation
OpenCraft recommends developing a native PDF viewer directly within the Open edX mobile app to support offline PDF viewing tied to PDF XBlocks. This would involve implementing a caching mechanism similar to that already used for video content. For institutions with tighter budgets or limited scope, a simplified alternative would involve using an external viewer to open locally cached PDFs, while still preserving offline functionality.
Implementation steps include:
Implement support for PDF XBlocks in the Android app (40 hours)
Add support for offline caching of individual PDFs (40 hours)
Integrate PDF downloads into the existing bulk download interface (40 hours)
Competitive Research
The market expectation (from competitors) is that a mobile learning app should let learners download course files (PDFs, slides, transcripts) and videos, manage those downloads, and open them offline. Canvas/ Blackboard/Moodle already provide institutional features for downloading selected content for offline use.
Benefits
Improved access for mobile-first learners in low-bandwidth environments
Better parity between mobile and web experiences in Open edX
Higher learner satisfaction and reduced abandonment during content access
Enhanced inclusivity for institutions serving learners in the Global South
Dependencies and Considerations
PDF support will be limited to PDF XBlocks initially (handouts not included)
Long-term maintainership needs to be confirmed by the core contributing organization
UI/UX should follow existing download patterns to ensure intuitive adoption
Risks & Mitigations
Risk | Mitigation |
Storage constraints — PDFs can be large | Provide size warnings and SD card support where possible. |
Platform fragmentation — Android versions and OEMs handle background downloads and file permissions differently | Test across common devices for your target regions. |
Copyright / licensing | Ensure instructors have rights to make PDFs downloadable offline. |
Security | Offline files may need encryption at rest if they contain sensitive content or personal data. |
DRM trade-offs — DRM reduces casual redistribution but increases complexity and can break accessibility | Only add if policy requires it. |
Other Approaches and Why They Don’t Work
Instead of downloading PDF files, convert course readings into HTML (or JSON-based text) that can be cached offline in the app.
Pros:
Smaller file size and faster to cache/load.
Searchable and accessible (screen readers, resizing).
Easier to sync incremental updates (e.g., changed sections).
Cons:
Requires preprocessing or conversion pipeline for each document.
May lose complex PDF formatting (e.g., tables, diagrams).
Use case:
Ideal when your content is mostly text-based, and you want integrated offline reading inside the app UI.
E-reader integration (EPUB-based workflow): Convert PDFs into EPUB or similar e-book format, which mobile e-readers can display offline with better navigation and accessibility.
Pros:
EPUB supports annotations, reflowable text, and built-in offline use.
More accessible and readable on phones than PDFs.
Cons:
Conversion process can be imperfect for complex layouts.
Requires integrating an EPUB reader SDK.
Use case:
Ideal if your courses include long-form readings (e.g., open textbooks, manuals).
Cloud sync with external storage (e.g., Google Drive / institutional cloud): Integrate a "Save to Drive" or "Sync to Library" button to let users store PDFs in their own cloud accounts for later offline access via Drive's native app.
Pros:
Offloads storage and syncing to user-managed services.
Uses existing offline support of Google Drive, OneDrive, etc.
Cons:
Requires learners to have external accounts and connectivity initially.
Limited institutional control over distribution and access.
Use case:
Supplementary feature for self-directed learners or when the app aims to stay lightweight.
Next Steps
Community feedback and review via the Product Working Group
Confirm product design and UX for offline PDF experience
Identify funding partners or institutions for pilot implementation
Proceed with staged development based on available budget
Long-term ownership
Upstream (Open edX community)
Goal: Contribute the XBlock upstream (Open edX XBlock registry) and maintain in community.
Pros: Broader adoption, shared maintenance burden, easier for other institutions to adopt.