Hi everyone,

We're working on two big projects at the moment that use Wookie - one involving 
mobile/telcos and another involving interactive whiteboards etc* - and from 
some discussions with partners in those projects about their requirements I've 
come up with an initial idea for a new feature. 

The feature I've called "Wookie Flatpack" and is for the use-case where a user 
has accessed a Widget Instance from within some sort of web platform (portal 
etc) but then wants to install the widget on a mobile device (or some other 
sort of device) instead. And by "the widget" what the user usually means is the 
widget *instance*.

At the moment the only option is to clip the URL of the iFrame, navigate to it 
in the mobile browser, and then save the page as a bookmark app. Not great.

So what I propose is to have a capability to on-the-fly generate a new .wgt 
package for the Widget Instance that the user can download and then side-load 
on their phone using something like the rather wonderful Opera WAC Runtime for 
Android [1]. 

The "flat" bit is that rather than just downloading the .wgt package that was 
originally installed by the admin, Wookie generates a new, instance-specific 
.wgt file that includes the injected scripts that are specific to Wookie (such 
as the Wave feature) and removes their <feature> references from config.xml. It 
also embeds the context information (idkey, proxy_url) directly in the widget 
JavaScript code rather than expecting the scripts to pick it up from the 
browsing context. 

This means that rather than a generic widget, you'd get *your* instance of it. 
So we "flatten" the widget and the widget instance configuration and "pack" it 
into a single, one-shot .wgt package for that user's device.

There are some things that need thinking about - for example securing the 
"flatpack" .wgt store so you can't hjiack someone else's widget instance. And 
managing the requests in a secure fashion. I think this could involve having 
the Connector Framework request a flatpack and then returning the URL for it 
along with a short-lived download key, and deleting flatpacks from the server 
itself after downloading or after an expiry time. 

We would also want to selectively not flatten some features - for example, we'd 
want to use the original <feature> elements for device APIs rather than include 
our flash/browser versions for things like camera capture.

One issue is that the W3C Widget Interface isn't exactly the same as the WAC 
widget object used by mobiles (e.g. different method signatures for 
preferences). Not sure what would be the best solution there; maybe a shim in 
our Widget interface to delegate to WAC where its present?

Also the user experience and documentation needs some thought.

Anyway, what do you think?

S

[1] http://labs.opera.com/docs/wac/installation_instructions/

* Hey Jean-Noel & Hoang Minh Tien! If you're reading this, say hi :-D

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to