perjantai 26. lokakuuta 2012

Project Hydra

First snow fell from the sky today here in Helsinki and to celebrate that I decided to write a status update. From now on, the Widget runtime for MeeGo will be called Hydra widget platform and should no longer be considered a beta. It's a name that I feel symbolizes well the purpose of the project, which is to create a widget runtime capable of running web applications created for any mobile web runtime, all in one environment. Just like the beast of same name has many heads, the widget platform shall support many web standards and platforms.

Version 1.3 is almost ready at the moment, just running some final tests before releasing it. Main improvement on the runtime side is integrating Cordova core functionality and APIs to the list of supported features. Cordova (previously known as PhoneGap) is an extremely popular HTML5-based open source cross-platform application development tool that offers developers a rich set of device APIs and the ability to embed a web application into a native application package for distribution over app stores. This means that a single Cordova application is basically just another widget. There is even a handy cloud service called PhoneGap Build that lets a developer convert a web application using W3C standard packaging format with a few extensions into native packages. From version 1.3 forward Hydra will support the Cordova APIs and packaging extensions, so that you can use Cordova applications even without converting them to native packages. Version 1.3 will contain Cordova 2.1 MeeGo port with the exception of File and Contacts APIs, which will be supported later once I figure out how to make them secure.

Update 30.10.2012: Version 1.3 is now out! You can get it from Here is the full changelog:
  • Implemented support for Cordova 2.1.0 core and plugins (excluding file and contacts API)
  • Fixed Cordova Camera plugin to work with DATA_URI destination type
  • Fixed Cordova Acceleration plugin to return timestamp in ms instead of micro seconds
  • Implemented simple caching support for wiget preferences to preserve IO
  • Implemented support for widget.onExit event
  • Changed application name
  • Improved widget update support by no longer 'downloading' local update description files
  • Added system notification for discovered widget updates
  • Added support to enable fullscreen mode via preference 'fullscreen' with value 'true'
  • Added support to control orientation via preference 'orientation'
  • Changed default view-mode (i.e. 'maximized') to no longer show application toolbar
  • Widget information dialog now shows if widget update is supported
  • Rewrote geolocation handling
  • Fixed some vertically pannable widgets allowing slight horizontal pan
  • Improved GMaps widget with Street View and Places search support as well us graphical presentation of location accuracy
  • Fixed Feature Demo Geolocation page getting stuck
  • Updated Feature Demo widget with Cordova examples
  • Added vibration support for StopWatch widget

New application icon.

After updating to 1.3, you should automatically see updated versions of the bundled widgets offered to you as updates on the manager app. If you don't see the available updates, that means that you are using really old version of the widgets and should update them manually (selecting the attachment icon from toolbar and selecting each of the widgets). Please also notice that the Google Maps widget may randomly crash due to an issue in the platform components and unfortunately there seems to be nothing I can do to fix this issue.