Oculo: dynamic web content to your N900 home screen

Latest news, sport results, stock market quotes, currency conversions, web comics, picture of the day... The internet is filled with dynamic content that you might want to bring into your phone homescreen, but often you don't have a widget that supports the site you are interested in. But now, cry no more! Oculo is a homescreen widget for the Nokia N900 which can take any web site and render its contents into your homescreen. Not only it can render a complete web-page, you can also choose which specific parts of a web page you are interested in!

The mandatory screenshot. Three instances of Oculo: Flickr! explore, Google local news, Yahoo! finance.

As I'm writing this, Oculo 0.7 is in the Maemo extras-testing repository; I'm using it without problems in my N900, but it's still rather buggy, so if you try and find some problems, don't hesitate to report them. Unfortunately, it is already known that Oculo will not be visible if you are running the community SSU; this is apparently a problem with the CSSU and Qt home widgets which I'm investigating. Also, since the configuration procedure might not be as intuitive as it could be, I've created a video which shows how to configure it:

History and technical aspects

The idea of developing Oculo (which means “eye” in interlingua) came to me a few months ago, when I noticed that Radek, a colleague of mine, was checking the daily menu of our canteen in the intranet pages. I ironically suggested him that he should write a maemo home widget showing the daily menu, so he could have it always visible on his phone. The fact that I considered “silly” the idea of writing a homescreen widget just for that goal suddenly brought up the idea of Oculo: giving the user the possibility to put in his homescreen whatever web content he desires.

Using Qt and QWebKit to render the web page contents into an image was unbelievably simple, and boosted my motivation in developing the widget. In a couple of days I already got something that was usable to me; but as Mappero users know, my usability standards are quite low :-), and this time I realized that I couldn't just publish Oculo in that state. So I went on developing the configuration dialog, tried hard to improve the graphical appearance of the widget (which still looks bad, but you haven't seen how it was before :-p) and solve some performance issues. The biggest of which was the memory consumption of the widget due to keeping QWebKit loaded in memory; this has now been solved by moving the configuration phase and the web content retrieval/rendering into a separate process, which is running only when needed. The homescreen widget itself is just a container for the image.

Future developments

A quick roadmap of what should be coming for Oculo:

  • Minimum interval between updates will be configurable (this is trivial and will be coming very soon)
  • Speed improvements: try not to load external content which will not be rendered
  • Share configurations between users; let users upload/download their configuration to a central server — this will make the configuration much easier
  • Port Oculo to MeeGo (to be investigated)
  • Port Oculo to Linux desktops
  • If Qt on Android can be used to develop home screen widget, an Android port might also be possible.

That's all for now! Go and try Oculo out, and let me know your impressions. :-)


There's also webmention support.