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.

2 kommenttia:

  1. Thanks for the great work, I have few points to mention:

    1- Please allow us to change the zoom level or re adjust it, its too small compare to the native browser.

    2- I modified your facebook shortcut widget from m.facebook.com to touch.facebook.com which is the one optimized for touch screens but its not working well and shows error. please check it out.

    3- From what I'v seen in number 2, u using a different user agent, If you can change it to android or iOS UA this will allow us to great more useful shortcut widgets


    lastly, could you please point us to some powerful widgets/widget source.

    Thanks

    VastaaPoista
  2. Thank you for your input! Below are some comments to your concerns.

    1. The zoom level is intentionally fixed because that way a widget feels more like a native application instead of a web page. The problem is that the N9 screen has 1.5x better resolution than iPhone and all the web UI frameworks seem to be optimized for iPhone's pixel density, making them appear slightly too small on N9's screen. I'm currently considering the best way to address this. Free zooming might make sense for shortcut widgets, but not for local web applications.

    2. I originally intended to use touch.facebook.com, but ran into an issue where Facebook scripts create an endless loop of fetching more and more data to show. Problem is that Facebook continuously thinks the bottom of the page is shown even though it isn't. If you know a parameter or another way to prevent Facebook from auto-loading content, I'm all ears. Fixing this in Qt code proved to be quite a challenge so I'd rather not go that way.

    3. I'm currently using my own, unique UA string to identify the runtime. The reason is that WAC Core specification requires compliant runtimes to have UA in a certain format (http://specs.wacapps.net/core/index.html). Your idea of using iOS/Android UA actually might still be valid if I'd make it a setting that can be changed. I'll have to give this a thought, thanks for the tip.

    As for finding powerful widgets, try these links:
    -http://widgets.opera.com/
    -https://developer.tizen.org/downloads/sample-web-applications
    -http://developer.samsung.com/widgets

    VastaaPoista