After spending the last weeks developing some widgets for the new Vodafone Widget platform, I thought I'd offer some designer/developer feedback. Please check out my submissions- FIFANews, Exchange, and InTheaters, I'd be interested in your feedback!
- I was skeptical at first about the choice of Opera for the widget platform, but was pleasantly surprised by the robustness of the web renderer and JavaScript engine. The fact that I could drop in and use jQuery without issue really streamlined design and development. I experienced very few discrepancies in output between the desktop Opera browser-based widget emulator and running on the actual device.
- That being said, one thing that everyone seems to forget in providing a _designer_ friendly platform is font support. I realize it must cost much more to license real fonts for distribution, but it makes it extremely difficult to _design_ the visual look and feel effectively. This is something where still only the iPhone reigns supreme- by including standard desktop fonts in the Safari Mobile web browser (and in the OS in general), they truly make it accessible to web and graphic designers to create outstanding visual designs.
- The biggest frustration for me was dealing with navigation and input focus. Having to move an incredibly small pointer on screen with a d-pad is, quite frankly, a miserable experience for a keypad based device (one of the reasons why I love Nokia phones is the quick keypad control in the UI). I understand that the pointer is necessary if you're trying to adapt and use desktop websites, but if I am designing _specifically_ for the mobile widget platform, it would be nice to be able to explicitly specify a focus order across components. I tried using the "<nocursor />" option, but found the behavior unpredictable at times- it seems that, even if the cursor is hidden, Opera is still using their cursor-based "spatial navigation" behind the scenes, making some navigation skip over focusable links and controls. If I manually call focus() on a component in JavaScript, it changes the focus, but doesn't move the hidden cursor, leaving hover states out of sync with UI state, and making the next navigation key press unpredictable in outcome.
- The lack of any protection of the application code is a bit of a concern. Not just for protecting my work and IP, but also shared secrets like API keys and authentication with third party services (i.e. protecting partner IP). You can argue that this should be pushed to a proxy server, but there is still the opportunity for malware and abuse- a hacker could very easily change a url in the config.xml and JavaScript and repackage a widget for distribution, redirecting personal information to a rogue third party. For now, I decided to focus on apps that would NOT require any personal information.
- I suspect the previous point about security is probably also why there is no device-level API integration with services like GPS, address book/contacts, etc. But some simple UI-level integration would be nice, like being able to add items into the Options menu to save screen space. The T-Mobile Opera widget platform does include this, but requires a security certificate, so I guess that's the trade-off.
Any thoughts from other designers and developers? Good luck to everyone who entered the competition!
Sincerely,
Francis

