Posts tagged ‘HEAT’

Updated mobile learning app on Google Play

I’ve just made the updated training application available on Google Play, you can get it from here:

As before, when you first start the app you’ll be asked to login or register and then you can install some of the modules to test out (once logged in you’ll see the link to ‘install modules’). For initially logging in and installing the modules, you’ll need a data/wifi connection, but after this the app will work fully offline.

Also (and as before), the video content is not included in the module packages (mainly to keep the download size down). For trying out the videos, you can download them from here (all the .m4v files): – just copy these files directly into the /digitalcampus/media/ directory on your phone SD card.

If you have any problems/comments etc then please leave a message below.

Video of updated training content app

Over the last few days I’ve made quite a few updates to the app. The key difference has been to add the functionality to switch languages. Here’s a quick video of the app in action now:

The updated app package is available here if you’d like to try this out for yourself.

I’ve also started working on the server side where we can track the user activity. So far I’ve only made a couple of very basic pages, just for demo purposes, which show graphs of the recent activity for each module and another page which gives a list of the users for each module and their progress so far:

Graph of recent activity in modules

Table showing detail of which users are taking part in the module, their progress so far and the last time they accessed the content

We need to think a little more about what information is useful to show here, for the tutors/supervisors/managers etc and also to work out how we may be able to present this information on the mobile device – similarly to how we developed the mobile scorecard application for patient management.

New mobile HEAT application

As I mentioned in my last post, I’ve recently been rewriting the mobile HEAT application and I now have a first version ready for people to test out. You can get the app here for installing on you Android phone. As it’s just a first version, I’d really appreciate any feedback (either email me directly or post a comment below), which is also why I’ve just posted it up here, rather than making it available on the Google Play store – which I’ll do once it’s been tested a little more.

Few notes comments on how to use the app and what it does:

  • As with the previous version, you’ll need a MQuiz login account (though you can register for this directly in the app). So you do need an active internet connection on your phone for this step.
  • Unlike the previous version, this app comes with no course content. This was one of the main reasons for rewriting this app: to decouple the content from the app. So after you’ve first logged in, click on the ‘manage modules’ button and you can get a list of the available modules you can install, so you can select which content you’d like to download. You’ll also need an active internet connection for doing this, though I have built in a way in which you can just put the course package directly on the phone SD card and it will auto install.
  • Once you’re logged in and have downloaded some content, an active internet connection is no longer needed.
  • For testing out the video content (in the “video demo” course), the videos are not included in the course download package (as it makes the download packages too large). If you’d like to test the video content, please download the .m4v files and place them all in the /mtrain/media/ directory on the phone sd card.

There are 3 main areas I’d really appreciate feedback on:

  1. Tracking: as you navigate through the content (play videos and take assessment exercises) the app records your activity to submit back to the server (for example, so your course tutor/supervisor can see how you’re doing). The app tries to do this whenever you complete an activity (so connects to the internet at this point), but it may be that you’re offline at the time. Note that a text page is only considered as being completed if you have spent at least 3 seconds on the page before moving to the next one (to at least give some pretence that you may actually have read the content ;-)). To cover the possibility that you may be offline when using the app, but you still want your activity logged, the app also installs a service to try to connect once an hour to submit your activity, even if you’re not using the app. I’m a little unsure that this is the best approach, since I’m not too keen on applications connecting to the internet in the background, but I haven’t yet thought of a better way to handle this. I may just add a preference to allow you to decide if this service is allowed to connect or not. But any comments/thoughts on this appreciated.
  2. Navigation: once inside a course module, I’d like some feedback on the navigation between the activities for each section in the course. Currently you can’t see a full list of all the activities for a given section, without clicking on the previous/next arrow buttons, as I wanted to avoid the user needing to go through another list selection page to get to the activity, but I’m not sure that what I’ve done so far is quite right.
  3. App name: I’m not too keen on the app name ‘mTrain’, so any suggestions for alternative names welcome!

In the next days, for those of you who don’t have an Android phone to test this on, I’ll post up a video of the app in action.

Rewriting Mobile HEAT application

I’ve spent the last few days starting to rewrite the mobile HEAT application. The two main reasons for doing this are:

  1. To create the app as a native Android app. The original app was using PhoneGap and although I really like the fact that the app can be written in HTML5 (and so easier to port to other mobile operating systems), I was just finding that the app ran far to slowly. It would take several seconds just to load a page and it made the app really annoying to use. The fact that we could create an app for other mobile operating systems isn’t a huge bonus for us, it’s likely that we’d be providing the hardware for users of this system, unlike, say Moodle Mobile, which has recently announced it’s moving from a native app to an HTML5 app.
  2. I wanted the app to be a general mobile training content application, so it’s just a shell app into which you can drop or download the specific modules you want to use (although I could have implemented this in the previous PhoneGap/HTML5 version)

Here are a few screenshots:

Homepage showing list of installed modules

Module index page

Activity page

Quiz activity

With the new app I can drop in new training content zip files (generated by an output script in Moodle) and it will automatically load in the app. I can track my progress with a given module and the activities within a module. I’ve made a new navigation for the activities in each section, the previous app had a set of tabs to navigate, but this meant there was a limit on the length of the tab text and number of tabs before it started wrapping and nasty. Not sure if what I’ve now got is exactly right, but it seems a lot more flexible for having more activities within a given section, and for longer titles.

Although there is still much work to be done, I much prefer the new application already, being a lot quicker, it just feels a lot nicer to use, plus I find it really handy to be able to drop in training modules for installing. The main areas for me to focus on next are:

  • Submitting tracking and activity output back to the server
  • Selection and downloading of modules (rather than needing to manually copy zip files onto the sdcard)
  • Figure out how to switch languages within the app

Once I get the app a bit more finished I’ll make it available for download so you can test it out.

Providing alternative translations

With the HEAT Mobile content I’ve been looking at ways in which we can allow users to switch between different translations of the content. By enabling the Moodle Multi-language content filter, I can add alternative translations for the same content page. I found this method a little fiddly, and in switching between the HTML code view and the HTML editor view, sometimes the language span tags get removed. For example, if I enter:

<span class="multilang" lang="en"><p>My content here</p></span>

the HTML editor strips out the span tags completely. But with a bit of playing around I got it all working.

I then updated my export code (which generates the files to drop into the Android app) to check for the languages available on each page and to create an option for the user to switch to whichever languages are available for that page. Here’s an example of switching between English and Swahili on one of the PNC module pages:

PNC introduction in English

Switching to Swahili

PNC introduction page in Swahili

You can also have a go with this on my demo site.

The next step is to be able to switch the whole interface over to alternative languages (not just the content) and also being able to provide the quizzes in multiple languages. Though now I already have this working with the main content, it shouldn’t be too hard to extend this.

Updated mobile HEAT content

I’ve just uploaded the updated mobile HEAT Android app (you can get it from:

The main differences are:

  • a new design (using JQuery Mobile framework)
  • all the content and quizzes are automatically exported from the HEAT courses I have on my local Moodle server, this makes it much easier if we want to update/change the content in the future, or create new modules
  • additional ‘video’ section, so you can jump directly to the videos, rather than looking through the content. Please note though that the videos may not run on your devices, as we pre-load them onto the phone’s SD card, they’re not included in the app download.

For those of you without an Android phone, but would like to see the content, I’ve created a demo page to show the content. You will need to create an mQuiz account to login (you can register for this directly from the demo). Again, with the videos these won’t play from this demo as they are designed to be run offline from the phone SD card.

Any feedback is very welcome.

Automatically exporting mobile learning content

Over the last couple of weeks I’ve been looking at how we can export content directly from Moodle into the format needed to create the Android application for the HEAT content (see my previous posts here and here).

I now have a basic script running which will export a Moodle course to the files needed to drop into the Android app, including of all the self assessment questions and any embedded image files. This will make it much easier to create and edit the mobile HEAT content, or for any other Moodle courses which we may want to run offline on an Android phone.

Using JQuery Mobile framework, I’ve also given the HEAT mobile app a bit of a facelift, so it looks quite a lot cleaner now and seems to load the pages a bit quicker. Here’s a sneak preview of the new design:

Once I get it all a bit more finished I’ll make the updated app available for download.

HEAT Mobile demo app on Google Play

For info I’ve just published the HEAT demo app up on Google Play for anyone who is interested in having a look.

Couple of notes…

  • This is a work in progress so not everything may work as expected. Any feedback is welcome.
  • To initially log in to the app, you’ll need to create an account on mQuiz. This is because any responses to the self assessment exercises are sent (if you are online) to be stored on mQuiz.
  • The embedded videos won’t be available, the videos aren’t included in the app on Google Play, they’re stored separately on the phone SD card (to keep the apk file size down). Please contact me if you’d like details about the videos we’re using.

OpenLearn content on mobiles

Here is a brief overview of how I created the Android application with the HEAT content. It is very much a demo/prototype application, so I’m sure there are many other ways this could be done (maybe in a more generic approach).

I used the plain zip download format of the HEAT modules (eg: – which essentially provides a set of static webpages of all the module content. I noticed a couple of issues with these downloads, for example some had incorrect references to images, and the contents page wasn’t in quite the right order, but no big problems.

I then used the PhoneGap framework to turn this content into an Android application, just applying a revised stylesheet and adding a new header/footer for navigation. Initially I tried working with a whole HEAT module, but we found there was just too much text for anyone to be able to read comfortably, so we cut the content down to just the essential parts (introduction, learning outcomes, summary and SAQs). This was the part that probably took the most time, since it was a manual process to refactor the content in this way.

I’m sure there are ways this could be done in a more generic and less-manual way, perhaps using the OU XML to generate only these specific sections, but I suspect that we will always want to edit the content slightly for mobile devices, especially since we’ll be adding videos and perhaps some audio content too. Using the PhoneGap framework means that we should easily be able to transfer this application over to iPad/Blackberry/Windows Mobile applications with very little effort.

For embedding the videos, I used a PhoneGap extension to allow the embedding of local video content. The videos we’re testing out are from the Global Health Media Project, and are stored on the phone/tablet local SD card. We could include the videos directly in the Android apk package, but this is likely to make the apk quite large, plus we’ve not yet finalised which videos we’d like to embed.

The final part to all this is the interactive self assessment exercises. This is using a web app I have been developing over the last few weeks (mQuiz) and is designed to allow quizzes to be run offline. The quiz can be created then stored as a JSON object and a javascript library is then used to display the quiz to the user. If the user has an active internet connection then their responses are sent back to the mQuiz server, if they are working offline their responses are kept until a connection is available.

So we now have an Android application which can be run completely offline, with all the content, videos and quizzes pre-loaded onto the phone.

All of this is a work in progress, the code is up at: I’m sure there are areas where improvements to this could be made – any suggestions welcome.

HEAT content on smartphone and tablet

Here’s an updated video showing the OU HEAT content running on an Android smartphone and tablet showing embedded video content (videos stored locally on the device) and interactive self assessment exercises:

The video we’ve embedded is from the Global Health Media Project