Just to recap on this topic. The question was asked, “Would it be possible to build an offline client for Moodle, and if so, how?”
I previously looked at the different ways in which you could build a course, and then proceeded to discount them, leaving only Flash.
You could build a standard ‘Topic’ course in Moodle using Flash content for each lesson in the course. The Flash content can be tracked in Flash (Matt Bury), and the Flash content can be launched and viewed on it’s own. So, no web server need for the PHP.
So we could build a basic web page that looks like our Moodle course, and call the Flash content for each lesson. It’s manual work, and we have no tracking, but we do have an offline course that can be used by anyone.
And that’s where the story ends…….. not quite.
I’ve been playing around with AIR and SQLite db’s. For those not familiar with AIR and SQLite, I’ll explain briefly. Think of AIR as a desktop Flash application that can be installed on you PC, almost like an exe file. SQLite is a local database, that sits on your PC, and does not require a database server. Essentially the ‘data’ is written to a file. An easy example would be if you were to build an address book using AIR and SQLite. The AIR application would be the front-end, used for view, adding and deleting contacts. All the contacts are saved in a file on your PC, the SQLite database.
So, this is the idea then.
- Instead of using a web page to hold the menu for the course and launch the Flash files, we build a small AIR application.
- We start off by building an XML menu to define the course – Overview and lessons with links to the Flash content.
- When we launch the AIR application, it uses the XML file to load a menu. Each item in the menu points to a Flash lesson from your course. These would be the same Flash files used in your Moodle course online.
- Clicking a menu item will launch the Flash lesson.
- As you work through the lesson, tracking data is back to the AIR application, which writes it to the SQLite database.
We now have an offline course that:
- Provides tracking information to a database
- Uses the same content as the Moodle course
- Does not require a server to be installed
In the next addition I’ll be looking at a few limitation and possible roadblocks to this idea. Please feel free to pull my theory apart, or agree.