Recently we’ve made the UpsideLMS compatible to mobile devices and also launched a new version – UpsideLMS Version 4.0. While ensuring compliance, we encountered some interesting issues in the implementation of SCORM and found very little help online about implementing SCORM for mobile devices. So we thought sharing that experience might help.
Mobile devices have limitations:
– Screen size
– Availability of required technology/software like J2ME, a compatible browser
– Availability of consistent internet connection
Considering the limitations the UpsideLMS implemented two types of solutions:
A Web/ Browser Based Solution:
SCROM Implementation Method: JavaScript
- Mobile browsers now almost fully support JavaScript and this makes it possible to implement SCORM using JS support.
- Each mobile device has different configurations and it is always better to identify the device requesting content before rendering the HTML content. For identifying devices we used the information in request headers. Here you will find that there is some variation in each mobile device browser. We used the following variables from the headers to get the device type.
- User-Agent (Most widely used)
- x-operamini-phone-ua
- x-wap-profile
- x-skyfire-phone
- Ideally when we launch course content from LMS we open it in new popup window, so that course gets its own desirable window size. But while implementing such on mobile devices we encountered that some of the well known mobile device browsers don’t support pop up windows – the Blackberry is an example. So we had no choice but to open it in the base window. Accordingly we made changes in our SCORM implementation to accommodate both conditions. Some of the low level mobile devices browsers don’t support either popup windows and frame structures. If that’s the case, you just can’t run SCORM courses on them.
- SCORM has provisions to track time spent by the user in session. Normally the setTimeOut() function is used to track time. But some browsers don’t support it. If you are targeting such a browser time tracking may not happen.
- Also while coding SCORM implementation try to avoid [advanced JavaScript functions (DHTML, regular expressions)] as each browser has varying degree of JavaScript support.
The web/ browser based solution has a wide reach as every basic mobile handset has a browser but it also has one drawback – it requires a continuous internet connection. This isn’t a problem on a desktop PC as normally they have continuous internet connections. But on a mobile device there is no guarantee of continuous connectivity and this may lead to issues with SCORM tracking .
A Native application solution:
The problem that arises from not having continuous connectivity can be resolved by developing a native application for the mobile device. These days, a SDK is available for almost every mobile device which can be used to develop native applications for that specific device.
SCROM Implementation Method: JavaScript plus mobile device specific SDK
- A native application is an installable application which you download on your mobile device and install. The application can run offline so you don’t need a continuous internet connection. You can synchronize your application whenever required with online databases to download the latest course material and send back tracking information to the LMS database.
- We launch the course in a SCORM player which has SCORM implemented using JavaScript. Here we typically use the native browser instance of mobile device. Also most mobile device SDKs provides some way of accessing JavaScript methods in html page. So from within the native code you can communicate with your course.
- You must take care to ensure the native browser supports
- JavaScript
- Popup window or frame structure
- Advance JavaScript functions
The primary drawback of native application is that you will have to create a separate one for each mobile device as there is no common SDK available and the learning curve for a SDK is steep compared to HTML and JavaScript.
This may give some insights on SCORM implementations for mobile platforms. Have you tried to get SCORM working on mobile devices? What was your experience like? Share it with us in the comments.