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:
- 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.
- 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.
- 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.
I’ve spent the last few days starting to rewrite the mobile HEAT application. The two main reasons for doing this are:
- 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.
- 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
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.
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.