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 http://store.ovi.com/content/302071. 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.

lauantai 29. syyskuuta 2012

Top-3 Opera widget games on N9

Besides the Tizen games that are obviously created for touch screens, it gets a bit harder to find the smartphone and touchscreen friendly games from Opera widgets. I went through some of the available games and here are a best three games that I discovered.

1. Bubbles (http://widgets.opera.com/widget/10982/)

Very addictive game that also happens to work great on the new 1.2.1 version of Widget runtime. Keeps track of your high score so that you can compete against your previous best. Only annoyance is that if you change the orientation, the game resets itself. Also, the game will be shown as live icon in widget manager even though it is not playable in that mode.


2. Game FiFteen (http://widgets.opera.com/widget/27001/)

A classic mechanical puzzle game with 15 movable numbers to sort on a grid of 16 spaces. Works great on portrait mode.


3. Tic Tac Toe (http://widgets.opera.com/widget/6608/)

A clear and simple game of noughts and crosses. Works best in portrait mode.


keskiviikko 26. syyskuuta 2012

Widget runtime 1.2.1 available

A new version has just become available in the Nokia Store. It comes with a long list of improvements and fixes. The most important change in it is the way web viewports are sized. Earlier versions tried to follow the content size and automatically scale based on that. It wasn't a very stable method and some web applications behaved poorly with it, so I changed the logic to no longer use scaling by default. Any widget with dimensions specified in the configuration document will still be scaled to provide a viewport that matches the defined size. In addition, Tizen widgets will now be recognized and will automatically use viewport of size 1024x600 unless otherwise defined so there is no longer any need to define that in the configuration file. Similarly, Opera widgets will use default viewport with width of 300px, since that seems to be a default resolution in some Opera products.

Full changelog:

  * Refactored widget viewport and scale calculations
  * Improved widget manager UI by putting all the actions to a toolbar and adding a search function
  * Added a feature demo widget to show how the widget APIs work
  * Implemented support for W3C Widget Updates specification
  * Implemented support for W3C Widget Access Request Policy specification
  * Implemented support -o-widget-mode and view-mode media queries via hackish means of converting them to -webkit-view-mode
  * Implemented support for sms URI scheme
  * Implemented settings page
  * Added option to always start Symbian widgets in 2x magnified view
  * Added option to enable or disable WARP
  * Fixed regressions in 1.1.0 regarding notification id storing and comparison
  * Fixed automatic input reveal to also pan when typing on the input field modified html and places input behind VKB
  * Fixed Opera widgetmodechange event to fire with proper values expected by Opera widgets and separated it's listeners to a separate stack from W3C viewmodechange event listeners
  * Fixed Symbian widget.isrotationsupported to properly return boolean true value
  * Fixed Symbian widget.wrt references
  * Fixed cleared preference values drawn from configuration defaults

  * Fixed a random crash after uninstalling a widget with live icon
  * Fixed remote widget instances initiated before the manager not closing when uninstalling


sunnuntai 9. syyskuuta 2012

More widgets?

The most common user issue I get is basically "too few widgets". Well, good widgets targeted for mobile devices will surely be more common after Tizen comes out. Meanwhile, there are quite many widgets available for Symbian WRT and Opera. 

Opera widgets are mostly intended for desktop and often work poorly on mobile devices. But there are some good ones there. All of them are accessible through http://widgets.opera.com/. Just go to that address with your N9 and try them out.

Symbian widgets are a bit harder to get (albeit more suitable for mobile devices) because you can't just download them from the Nokia Store. Some of them, like the AccuWeather, are also available through the author's website if you know what to look for. There is also a good collection of 50 small games available at http://www.drjukka.com/50Widgets.html (though these are designed for devices with traditional keypad).

Let me know if there is a good place out there filled with good widgets!

keskiviikko 29. elokuuta 2012

Update for Widget Runtime

A new version of Widget runtime (1.1.0) is now out. It contains the following changes:
* Refactored architecture so that each widget is ran on it's on process
* Implemented support for WAC Webview API
* System's 'application not responding' dialog should now have correct widget name in case JavaScript is taking too long to execute
* Improved responsiveness during JavaScript-heavy operations by processing event loop
* Fixed upgrading a widget with version in format x.y to x.y.z to be considered a newer version if x, y and z are numbers
* Fixed uninstalling a widget not cleaning up any included hidden files
* Fixed links that use _blank as target
* Implemented error page for URLs that couldn't be fetched

More coming a bit later...