One of my fun upcoming tasks is to get a fully event driven desktop like application working on a handheld device like an IPAQ. Ideally, I was hoping to reuse my firefox extension that acts a socket server to listen for events from the outside system and have the app respond to said events. For example... you're on a plane and someone wants to order a drink so they hit the service button on their seat. That button sends a message that is broadcast out to the rest of the system and if the crew member assigned to your section is signed in on their IPAQ they should get a little alert on their device, all asyncronously.

Enter Minimo...
Since I can't reuse my extension with Pocket IE, Minimo was my obvious choice. Minimo is the "mini" firefox browser for handheld devices. Although still VERY much in its infancy I was able to actually get my extension running with the of help of the mozilla forums.

This is a very basic tutorial on how to get a basic extension working in minimo. Since there is no packaging mechanism for minimo extension you kind of have to hack your way through it. First things first....You have to install Minimo on a handheld device. The good news is that was very simple, just download and follow the installer on windows. Next lets look at the file structure of the Minimo Application on the handheld device. Open up file explorer on the handheld and you can see its:

\Program Files\Minimo\chrome
\Program Files\Minimo\components
\Program Files\Minimo\greprefs
\Program Files\Minimo\res

The only thing we're going to do is drop 2 files into the Chrome directory
1. mytest.manifest
2. mytest.jar

There is no XPI file. We're just going to create an extension that does an alert() message from the XUL overlay file. This will get you started at at least let you know if you're able to install an extension.

Lets take a look at the first file we need mytest.manifest
This file contains the path information so minimo knows what do with our extension. Its a very simple file with two lines

content mytest jar:mytest.jar!/content/ xpcnativewrappers=no
overlay chrome/minimo/content/minimo.xul chrome/mytest/content/overlay.xul

1st line we're saying our jar file is mytest.jar and our junk can be found in the the /content/ directory of our jar file
2nd line we're saying overlay the overlay.xul file in my content directory over the minimo.xul file

take a careful look at the paths and make sure you're extension matches whats going on here.

So lets take a look at our extension folder on our local machine:

So now we have to create our overlay.xul file:


thats it, just a simple alert message that says "hey dude". So now we have the two files we need. So next step is to right click on the content directory inside the C:\mytest directory and choose SEND TO -> COMPRESSED FILE which will create a .zip file next to the content directory. Change that to mytest.jar

Now we're ready to drop that sucker into Minimo. Open up Microsoft Active Sync and click Explore

Next click on My Windows Mobile-Based Device, Program Files, Minimo and you should be looking at a screen that looks like this:

Now go back to your local machines "mytest" directory and copy the mytest.manifest file and the mytest.jar file over to the "chrome" directory in the active sync file explorer page. Your chrome directory should now look like:

thats it! now just close Minimo and reopen it and it should prompt you with an alert that says "hey dude"

Ready for More?

Follow Me @jimplush