Authoring best practices for the Open edX mobile app - Appsembler

Authoring best practices for the Open edX mobile app

The Open edX mobile app is a great feature that allows your students to take learning on the go. What was originally designed as a simple video player has recently become much more robust in terms of functionality. However, it’s important to know that the Open edX app is not perfect. And if you want your students to be able to take your courses on their mobile devices, there are a few things you need to be aware of.

Advanced Settings

The first step is to set your course to being available in the mobile environment. To do that, in the Advanced Settings for your course in Studio, set `Mobile Course Available` to true for the course(s) that you want available on iOS and Android phones.


Videos are often the core part of an Open edX course. However, a video that is optimized for viewing on the internet may not be optimized for viewing on a mobile device.


The three biggest challenges to mobile videos are:

  • The Open edX mobile team has also recently announced that they are moving away from supporting YouTube videos altogether in the mobile app.
  • The edX video player does not dynamically change the quality of the video being delivered for lower-bandwidth users
  • The edX video player only allows for one of each type of video per player instance – Only one YouTube video, one .mp4, one .webm

To overcome these challenges, we have found there really is just one surefire way to set up your videos. Follow these recommendations and you won’t be led astray:

The Appsembler Recommendation:

One HQ YouTube link + One Low Res .mp4 link (S3 encouraged)

The desktop version of the video player is built around YouTube. Therefore, to ensure any learners using the desktop version of Open edX are receiving the best experience possible, a high quality YouTube link is recommended.

However, YouTube links (regardless of quality), will not work on the mobile app. Only links directly to an .mp4 or work within the Open edX player on mobile (note: We have not yet tested .webm files in the edX video player on the mobile app). We have found Amazon’s S3 service to be a very reliable place to host videos.

Because Open edX’s video player does not dynamically adjust the quality of the video to match the bandwidth of the mobile user, we recommend making this .mp4 link lower quality. If you use a high quality video, it will play, but only where the user’s internet connection is strong enough.

In the screenshot below, you can see that the YouTube link has been placed in the Default Video URL space, and the S3 link is in the “additional versions” space.

If you click on “Advanced” in the upper right corner of the edit window, you can scroll down to add more than just one additional URL. Note again, that the video player will only support one of each file type. If I want to add another link below that S3 link (which is to an .mp4), it will need to be a .ogg or .webm file.

Proper “Low Quality” Formatting

Generally, properly formatted simply means “smaller” or “low res”. For example, if most of my videos have dimensions of 1280 x 720, I’ll create a version of the video that is 480 x 320 (both using a H.264 codec). Many video editing softwares these days include export presets for “iPhone mp4” or something similar. These almost always do the trick.


You’ll also want to make sure the videos in your S3 bucket are properly permissioned to be publicly visible. Otherwise Open edX won’t be able to actually play the video back the app.

If you click on “Properties” in the S3 bucket for a particular file, you’re able to see where permissions are set, and the link you should copy/pasted into your edX video component.

Embedding Videos via Raw HTML

If you’re using a platform like Vimeo to host your videos for your course, and you are simply doing so by embedding the HTML code into an HTML Xblock, this process will still work on the mobile app. However, be aware that your videos may not fit on the screen of the app and might look a little strange. See the screenshot below for what happens when I embedded a Vimeo video.

Note that the video still played fine just as it would had I come across it on a mobile web browser. When it loads, it just looks a little too big for the screen.

Name Everything

Every course component comes with a display name. It’s a good idea to always change the display name to something that makes sense for your course. If you are taking your course to a mobile app, however, it’s much more important because display names are much more visible in the mobile experience.

To change the display name for a component:

  • Locate the component in Studio
  • Click Edit
  • Click Advanced
  • Change the Display Name
  • Save

Referring back to the Vimeo screenshot, notice that I didn’t change the display name of this component. So at the top of the screen and in the course outline, it simply says “Raw HTML.” It is generally better to name this something more descriptive.

Don’t Leave Empty Components

By a similar token, it’s a good idea to not leave empty components in your mobile-friendly course. On the desktop they are unintrusive and practically invisible. However, on the mobile app, they are given the same visibility as every other component. See the screenshot below for an example of an empty component.

Know which problems & components will work (and which ones won’t)

As mentioned before, the Open edX mobile app has come a long way in terms of capability and functionality,and it’s only going to get better. However, Open edX is such a robust platform that there are simply going to be things which can’t be replicated in the app.

Learning Components

Most of the basic learning components function perfectly fine on the mobile app. This includes:

  • Videos (provided you’ve followed the best practices above)
  • Text
  • Discussions
  • HTML (unless non mobile-friendly tools are used like Flash and Javascript)


All of the basic problem types function in the mobile app, including:

  • Checkbox selection
  • Drag and drop selection
  • Dropdown list selection
  • Multiple choice selection
  • Math expression input
  • Numerical input
  • Text input

The more complicated problems get, the more likely it is that they won’t work on the mobile app. For example, the circuit schematic builder problem will not work on the app.

Timed and proctored exams will also not function on the mobile app.


Most of the time, it’s safe to assume that 3rd party XBlocks will not function within the Open edX mobile app. There are a few exceptions such as the Drag And Drop XBlock.

Failure Notice

When a problem or component doesn’t work on the mobile app, the message in the screenshot below is displayed. Note that just because a button leading to Safari is included does not mean any guarantee that the component will behave correctly in the mobile browser.

Test Everything

As you are building your course, it’s always a good idea to make sure all aspects behave as you want them to before you begin enrolling learners. This is true for desktop-only courses, but it is especially true of courses you plan to offer on a mobile app. Use practices like hiding the course, restricting enrollment, and setting a future course start date to ensure that learners aren’t enrolling prematurely.

Then, invite beta testers to the course who will be able to access it before the courses start date. Make sure everything works for them on their unique devices. This will allow you to route out any potential issues before all of your learners even see the course.