UDS App for MeeGo and Symbian

Are you attending the Ubuntu Developer Summit? Maybe you want to try the UDS app then 😉

Some time ago I started writing a mobile UDS app to manage UDS affairs on my mobile phone. Being a Qt fanboy and owning multiple phones with Qt the choice of toolkit was rather obvious. And oh boy is it awesome.

Right now there are stable versions for Meego 1.2 Harmattan (Nokia N9 and N950) as well as Symbian^3 (basically every Nokia Symbian device after the N8). Additionally there is a working prototype for Maemo 5 (Nokia N900) as well as platform UI code for Android >= 1.6.

Get it while it is hot! From the Nokia Store (for the N9) or here (for Symbian^3).

If you want to help with the Desktop/Maemo5/Android UI please poke me on IRC or drop me a mail.

The code is available at projects.developer.nokia.com.

This slideshow requires JavaScript.

7 thoughts on “UDS App for MeeGo and Symbian

    • Harmattan to Symbian is next to no effort since the Nokia provided components are almost identical on both platforms. Android is a viable target IMHO (at least < Android 3). Due to the back buttons provided by Android 1 and 2 devices you can implement a similar work flow as with Harmattan or Symbian, except you do not need to worry about having a toolbar with a back button as that is handled by Android. So you can simply copy the Harmattan or Symbian Page, PageStack and PageStackWindow components and use them almost identically on Android. If you have a look at the uds code you will find a very simple code base for android which does exactly that (you might also want to check the commit log for 'android' actually, as I might have done some mighty tricks I do not remember right now :)). As for N900, unless you know that a lot of people in your target audience use it, it probably is not worth the effort as it is really non trivial. If you take a look at the UDS maemo5 code you'll notice that the C++ side implements a Window and WindowStack (almost identicaly to what a Page and a PageStack is on Harmattan) with very hacky code. The problem with Maemo5 is that the stacking paradigm is implemented using actual platform windows and X11 magic, so I had to craft the QML magic around this doing nasty things to the QtDeclarative objects which in fact results in different execution contexts, which one needs to be aware of when doing the UI. Other than that you can mostly copy components from Harmattan or Symbian or make them yourself. Since Qt on Maemo5 is fully theme aware you will get sensible colors by default (for text for example). But really, for me that was more of a proof of concept adventure than actual use (well, I also know quite some Ubuntu people who have an N900 ;))

      Your app looks really great for a quick hack 🙂

      • Ok, thanks especially for the Android part. And yeah, I know how Maemo magic works, played with pure Qt app there… But I expect a lot of people having N900 (it’s quite popular here). Yep, Symbian should not be a big problem (should, as hardware wise it’s always problem, I worked on pure QML based app for Nokia – all images has to be scaled down to just a thumbnail, because it was crashing on low memory – even on C7…).

        Yep, it was a quick hack in Qt Quick 🙂

        • Well, I expect to do some more components on the Maemo side of things, so if you want you can use stuff from the UDS app 🙂

          With pure QtQuick you indeed need to take care of all the memory management yourself, which can at times be tricky. Like with the Nokia components you have limited life cycles for all Pages, which makes it quite scalable as you have a somewhat natural limit to how much stuff you actually have in memory. Memory, the crux of mobile programming :S

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s