I am just about coming to the end of a project to ‘port’ an application to UIQ 3.0. This is the first time I have used the Symbian 9.1 OS. Here are my impressions.
The beta SDK is fairly reliable. I have been using it with Visual Studio 2003 and the only major problem is the output window saying the compile/link succeeded when in fact it didn’t. This means you have to fully examine the build output every time you build. The emulator occasionally hangs but that’s ok as an emulator restart seems to fix things.
The UIQ UI has changed extensively and it’s best to follow the new layout manager scheme so that everything (i.e. focus and landscape mode) works correctly. Applications that dynamically create controls are the hardest to port as it’s not easy to position controls at given coordinates when using the new layout managers. The effort required to upgrade the UI from UIQ 2.1 to 3.0 is roughly the same as that required to go from say Series 60 to UIQ. i.e. It’s best to rethink your UI.
The main problem (as is the case with most Symbian OS programming) is that you (obviously) have to call the right sequence of things to make something particular happen. It’s often not clear (from the SDK documentation) what the sequence is and when you get it wrong you just get an exception. It would help considerably if Symbian (and UIQ/Nokia) added debug trace (as Microsoft do) when things go wrong so that you at least get a clue what might be wrong.
Commands and where they appear on the UI (menu vs softkeys vs buttons) have changed considerably and there’s some very complex rules as to what ends up where. When you get the hang of it, you realise that most of it is out of your hands anyway so as to provide a consistent look and feel across applications.
Most non-UI code compiled first time. Code that didn’t was mainly related to changes due to new platform security. There were also problems compiling stdlib code but the helpful people at UIQ managed to help me out.
I have been particularly impressed by the support from UIQ on the forum at developer.uiq.com. It’s a quiet place at the moment so most questions get answered.
Finally, if you have to ‘port’ to UIQ 3.0 and Series 60 Nokia 3rd Edition, I would choose UIQ first. There’s lots more documentation and examples. By the time you have completed the UIQ port, hopefully Nokia will have documented things a bit better.