Thanks for your reply Scott. It's really useful so I've moved it to our docs with some minor changes:
http://incubator.apache.org/wookie/docs/widgets.html Ross On 6 January 2012 08:34, Scott Wilson <[email protected]> wrote: > > On 5 Jan 2012, at 23:42, Ross Gardler wrote: > >> It is possible to retrieve a *.wgt file from wookie for any of the >> hosted widgets. > > Yes - the Flatpack API is one way to do this for an instance, but we can also > expose the download location via the usual /widgets API call. I don't think > it does this at the moment, but we do store the original widget location so > can retrieve it. > >> Are there any caveats with respect to developing >> widgets that are intended to be hosted both in Wookie and in other >> environments? > > The main ones are to not use any Wookie-specific features or internal calls. > The syntax analyzer outputs warnings about this when you deploy the widget, > so its worth paying attention to the log output to see if there is anything > that needs fixing. > > Personally I test widgets by opening the .wgt using Opera Mobile, and by > putting it through PhoneGap Build and opening the generated application in > the Android Emulator that comes with the Android SDK for Eclipse. > > There are quite a few qotchas generally, mostly around things like > differences in HTML5 support across different environments. E.g. the Android > browser has poor Canvas support, Opera Widgets doesn't handle referenced > audio files, etc. I think the only realistic way to deal with this is to do a > lot of testing, and where possible check for feature availability in scripts > before making calls. > > In the widgets I've developed recently, I've taken the approach of: > > 1/ develop the widget for in-browser use only, and test in a range of > browsers including the Android browser, IOS Safari, and Opera Mobile > 2/ test for existence of window.widget and if available enable widget > features like preferences and metadata > 3/ add features needed in config.xml, but make them optional, and test for > availability in scripts before enabling them in the widget UI > 4/ create .wgt package > 5/ upload to PhoneGap build to create mobile apps > > http://labs.cetis.ac.uk/monstermath/ > http://labs.cetis.ac.uk/oblique/ > http://labs.cetis.ac.uk/butterfly/ <-- same as the Wookie one > > Its not exactly foolproof and automatic, and there are still problems, but if > I was being a bit more "serious" about widget development I could use this > basic approach to get widgets working correctly across most platforms. > >> >> Ross >> >> -- >> Ross Gardler (@rgardler) >> Programme Leader (Open Development) >> OpenDirective http://opendirective.com > -- Ross Gardler (@rgardler) Programme Leader (Open Development) OpenDirective http://opendirective.com
