Posts tagged ‘android’

Finally… a name for our mobile learning app: Oppia Mobile

oppiaSince we’ve been working on our mobile learning app, we’ve not really had a good name for it, and have just been referring to it as ‘our mobile learning app’, and we really wanted to come up with a nice name for the platform. Selecting and finding a good name is pretty tough, especially  a short one that isn’t some convoluted acronym. We also didn’t want the name to be specific to a particular field (such as health), as although most of our current content is health related, we can also use the platform for other subject areas (such as the Open Education MOOC).

So… the name we have settled on is “Oppia Mobile”, for info ‘oppia’ means ‘to learn’ in Finnish, and as far as we can tell it doesn’t mean anything strange or bad in any other language – but please let us know if it does.

We’ve registered the domain, but currently this just redirects to the app download page in Google Play. I’ll get a proper site set up in the coming weeks. It feels good that we now have a name we can use to refer to the platform.


Using Android Text to Speech

To help some of the health workers use the mobile learning application – especially those who may have trouble reading English, we thought it may be useful to give them the facility to have the page content read out using text-to-speech. This has been quite easy to get set up and running (basic instructions), but a couple of things I found may help others trying to get text-to-speech up and running in their apps:

  • I found the onActivityResult method was not being called, but this was due to my variable “MY_DATA_CHECK_CODE” not being set to 0 – once it was set to 0 it worked fine. Also if I used the built in “RESULT_OK” this didn’t work either. See here for more explanation.
  • I wanted to read out the HTML from a webview widget and I thought I’d need to write a load of code to strip out the html headers, tags etc (otherwise the names of the tags and attribute get read out too). But actually it was really simple, using the line: “android.text.Html.fromHtml(instruction).toString()” (more)

It all seems to work quite well, although with the built in voices I find it certainly sounds computer generated, and if I set the speed of the voice to very slow it sounds drunk. So I’m a little unsure if it’s really going to help the health workers, but it’s not taken me much time to set up and maybe it could be useful for some of them.

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.

Looking at replacement smartphones…

I’ve just bought myself a new smartphone. Well, not so new as I got it secondhand on ebay (although it’s in perfect condition)… an HTC Sensation. On our projects we’re currently using HTC Hero phones, these have been working really well for us, but we need to start looking at some alternative options. Specifically looking at models which are a year or so old, so the prices aren’t too high (my top limit was £150), but are still going to work well for the next few years.

It was basically a choice between a Samsung Galaxy S2 or an HTC Sensation and the HTC won out on price.

Although I’ve only had it a few days, so far I’ve been really impressed, it feels like a big step up from the Hero. It had already been unlocked and updated to Android 4, but I’ve not rooted it yet. For us, looking to provide video content on the phones and other content and activities, the larger screen size will make a significant difference. Also the faster processor avoids the stuttering I was getting when trying to run some videos on the Hero.

I’m sure that as the prices come down over the months, and we still think they’ll work well for us, they’ll make a great option as alternatives to the HTC Heroes. To give an idea about how quickly the prices are coming down, the first HTC Hero we bought (secondhand) around Easter 2011 was about £150, then a few months ago (May 2012) I got one for £40.

A point to note for those interested, the Android 4 (or at least the version I have) will display Ge’ez text by default, I didn’t need to install a new system font. Plus the font that it has looks much smoother/cleaner than the one we needed to install on the Heroes.

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.

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.

Patient Management Tools Video

Just posted on the Digital Campus blog:

Video demo of the patient management tools currently being used by Health Extension Workers on our project. This video shows the mobile protocols (using ODK), the mobile scorecard and analytics dashboard.

Since my camera broke the other day (I’m waiting for a new one to arrive), I used a flip camera for filming this, unfortunately it doesn’t focus well in close up, so the images of the mobile screen don’t show up well on this video, once my new camera arrives, I’ll refilm the video, to better capture the mobile screen.

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.