IT developments and solutions from the IT Student Experience team.

Preconfiguring emergent disruption in an agile way.

Tuesday, 1 December 2015

Brookes apps in Moodle

No comments
This is an overview of how we are able to make some of our 'mobile' apps available to students directly from within Moodle.

The benefit to students is that they have an opportunity to utilise the rich functionality these apps have to offer even if they don't have a mobile device (or it is currently unavailable). This aligns with Brookes' drive to extend and improve accessibility.

Our mobile apps

Mobile apps are, generally, either:
  • 'native' - written and built for a specific mobile platform (operating system), such as Apple's iOS
  • 'hybrid' - written in a more generic way, these apps can be built for several different mobile platforms or
  • 'web' - written for display in a mobile's web browser
Both 'native' and 'hybrid' apps require installation on the mobile device (downloaded from app stores) and can use features of the device that may be unavailable to 'web' apps.

To simplify development and maintenance, minimise multi-platform deployment effort and maximise functionality, we have chosen to make the majority of our apps 'hybrid' ones.

Hybrid apps

The program code files for these, like many web apps, are written using the standard web-based 'languages' of HTML, CSS and JavaScript. Additional functionality, such as the capability to receive notifications sent out by Brookes, is added by means of 'plugins' (of which there are different versions for each of the different platforms).

Unfortunately, limitations and differences still mean that the code files require some tailoring for each platform but this is far less effort than would be required to deploy separate native apps.

Brookes app 'BRISC' on Android

It is this similarity with web apps, and the limited tailoring required for each platform, that encouraged us to explore the possibility of also having 'browser-based' versions of those apps that could be modified to function without the features of mobile devices.

Browser-based apps

Whereas the code files for a hybrid mobile app are installed and 'hosted' on the device itself, the files for a browser-based version need to be hosted on a separate web server.

As OBIS didn't have a suitable public-facing web server for this it was decided - initially - to make use of our Moodle web server at ULCC. As a Moodle 'plugin' is simply a packaged set of files (normally executable scripts) that can be served-up to a browser, it was feasible (with negligible overhead in regard to either space or time) to include our code files within such a plugin.

'BRISC' in a browser

Although apps served in this way functioned perfectly, because the layouts had been designed for a small screen they were really unsuitable for use within a full-screen browser. As we didn't want to overhaul the designs to such a great extent, we tried apps both inside an HTML 'iframe' and a browser 'popup' window that were nearer to the proportions of a mobile screen.

'BRISC' in an iframe

'BRISC' in a popup

Having established that apps would display and function correctly within iframes, we needed to develop and host suitable web pages to 'embed' these iframes in. We chose to include these pages within a Moodle plugin because the overall page layout could be provided by Moodle and it would be a natural place for a student to find and use the apps.

'BRISC' in Moodle

Google App Engine

Due to the lead time to get our Moodle plugins updated it was decided to move the app code files themselves to another, more flexible, hosting solution.

Google App Engine (GAE) is a Platform as a Service (PaaS) offering that we already use and it lets us build and run applications on Google’s infrastructure that are easy to scale as traffic and data storage needs change. With App Engine there are no servers for us to maintain ourselves - we simply upload our application and it’s ready to go.

Consequently, we developed a simple application on GAE that provides a 'front-end' to our app code files that are now hosted there instead of on Moodle. There has been no change to the Moodle pages themselves nor to the user experience.

The future...

Expect to see more great Brookes apps ported to Moodle/GAE!

No comments :

Post a Comment