Episode 11

Wednesday, June 30, 2010


  • Nokia Qt SDK (Mobile) 1.0 Released
  • MeeGo for Handsets Day 1 Released
  • Qt Mobility 1.0.1 Released
  • Qt Creator 2.0 Released
  • Qt for Google Native Client Available in Chrome Dev Channel
  • Deprecated Qt Assistant Client Removed (now a separate source package)
Mark Hatch and Justin Noel

Intro: Welcome to ICSNetwork's This Week in Qt, the ten minute podcast that keeps you informed of significant events that may impact your engineering projects. If you have not yet heard about ICS, please visit our website at www.ics.com. As an organization, we believe we have the best independent team of Qt engineers in the world. Whether you're starting a new project or need help removing that insurmountable roadblock that every project has, please contact us at sales@ics.com.

Mark: This is Mark Hatch from Integrated Computer Solutions. With me today is Justin Noel, one of our senior engineers here at ICS, and this is This Week in Qt. Justin, what's on the agenda for today?

Justin: Well while we had some technical difficulties last week, there's been a lot going on, including some new releases. Most importantly, the Nokia Qt SDK has hit 1.0 status which is very good news for those who want to write phone applications in the Ovi store. Qt Mobility APIs have been fully stabilized, including the multimedia APIs at 1.0.1. Qt Creator 2.0 has been released which has a lot of new features, and actually some missing features from the beta. Qt has a port to the Google native client, which you can think of as Qt port to Chrome OS. And we'll also talk about QAssistantClient and how it's going away, and what it was replaced by a long time ago.

M: Okay, let's start with the Nokia Qt SDK. That's something we've been waiting for. That's the mobile release, right?

J: Yes, basically the Qt, Nokia SDK is an all in one download. You can download this SDK, it comes with Qt Creator, it comes with a thing called Qt Simulator which will simulate phones, and it comes with compilers and Qt libraries for both Symbian and Maemo phones. So you can download one huge package and write your applications, test them in the simulator, you can run them on an actual phone device, and you can package them up to submit to the Ovi store. That brings me to the other big announcement, which is that the Ovi store is officially accepting submissions that use Qt for either distribution or sale in the Ovi store.

M: We had a couple clients here where we had to work through that issue there before without an official Qt version for Ovi, so that is good news for those people.

J: So as of now, it's limited to specific phones the N97, the N900, the Music Express line, and the X6, but they plan on expanding to more phones very soon.

M: Okay so that was Maemo and some of the mobile stuff, but there's something happening in the MeeGo area too?

J: Yes, today is also the release of the MeeGo handset, which they call Day 1. This means that Intel and Nokia have a package that they've been working on which includes a gui and an operating system that they have released the source code to. They now have an open repository that you can check out of and possibly submit into. And they have images for the Nokia N900s. So you lucky people out there who have N900s, you can download a ROM, install it on your phone, and see what MeeGo is going to look like.

M: Well that's pretty cool. We have to get one and have one of our summer interns to go ahead and try to do that on one of the N900s here.

J:Yes, and this is definitely pre-alpha stage. So if you have important things in your phone, make sure that you back everything up. Be aware that if something bad should happen and you break your phone and need to send it back, take that into account because this is definitely pre-alpha stage.

M: Well I have a great phone for this. We have a loaner phone from Nokia, so let's use one of those.

J: Good idea.

M: Okay, great. So something else is happening in the Mobility area?

J: Yes, actually like we talked about a couple weeks ago, Qt 4.7 beta basically had the Mobility APIs brought back into mainline Qt except for the multimedia APIs who's API was not finalized. With the Qt Mobility 1.0.1 release, this is the separate library, all the APIs are considered final. So there is the possibility that we might see maybe the multimedia APIs show up in Qt 4.7. Of course Nokia hasn't made any mention of this, but it could happen. We'll have to see once the release candidate comes out.

M: Or it might make 4.7.1, which history says will quickly follow 4.7.

J: Yeah, yeah that's true. Although the very end dot releases usually per rule don't include any new APIs. We'll have to see how it goes.

M: Okay, so I guess Qt Creator 2.0 was also released by itself?

J: The Nokia Qt SDK is an all in one download that includes Creator, the simulator, the compiler, everything. For the desktop developer, there is the basic package for Qt Creator 2.0 that you can now download and use that with your desktop Qt installs. And you'll notice that there are a lot of new features in Qt Creator 2.0 and for those that use the technology preview and the beta, you'll notice that the Qt Quick visual editor has disappeared. Nokia decided that it was a little too immature at this state to be called an official release, so they have backed it out and are going to reintroduce it with Qt Creator 2.1, which I think will probably come out in the fall.

M: Okay. That probably will happen around DevDays. That tends to be the target for those things.

J: That's my guess.

M: Okay, good. You mentioned that there are a bunch of new features; is there anything that someone would really like if they come from the pre-2.0 version?

J: I think most of the new features are geared towards the mobile developer, such as the inclusion of the Qt simulator package; support for cross-compilers, for even remote compiling you can have your code sent out to Nokia compiled on their S60 build farm and sent back to you. So all of these things are the basics of Creator 2.0, but there are going to be various features for the desktop developer as well.

M: Okay, great. So tell me about this Google native client. I don't completely understand this. What does that really mean?

J: So Google has this new browser called Chrome, and following that should be an entire operating system called Chrome OS, and it is going to be entirely web based, so all of the applications you would use would be inside the browser. So the question comes up, well what if I want to do something that's really processor intensive? You can't really do that in JavaScript. You run into the same problem the Palm Pre had where all of the applications were glorified web apps, but it makes it very hard to do things that are processor intensive, like games or mathematical applications. So Google's answer to this is the Google native client, which is basically like a little windowing system where you can run a native application inside of their Chrome browser. So Nokia has gone ahead and it was a research project for a while and now the code has shown up in Gitorious. And actually it is available through the Chrome dev channel. That is a Google website. To Qt, the native client is just another windowing system to support, and Qt now works with the Google native client.

M: Okay, that's interesting. So having this capability means, for example besides computational stuff, you also get to device specific stuff like GPS and things like that, if that was on the device?

J: Yes, basically it's almost like an operating system inside of a web browser. And I would consider this to be Nokia's port of Qt to Chrome OS because other than that, it's just a very fancy web plug-in.

M: So you can't run an application on Chrome OS unless it's connected through Chrome, right?

J: Yes, it has to be a quote unquote web application to run inside of Chrome OS, which is entirely based on the Chrome web browser.

M: Sometimes getting all these names right drives me nuts here. So finally, you have something to say about Qt Assistant. We're going to wave goodbye to it?

J: Yes, it was always a bit of a bear to deal with. It was very popular in the Qt 3 days because the only Trolltech-supported way to provide help to your end user was this out of process browser-based documentation system called QAssistantClient. You could make a content file for Assistant and when you wanted to provide help to your end-user from your own application, you would basically launch Qt Assistant giving it your own name, so it looked like your own application, and giving it content to display. So if they hit F1 on a particular dialogue, it would give them documentation on that function of your application. The problem with that is that it was out of process. It was like the old Windows help browser; it kind of spawned off this thing. It didn't really look like your application. It was in a different window and didn't mesh very well. So that was thrown out around Qt 4.3, and introduced in its place was the Qt Help Library where they basically took the old Qt Assistant, they re-wrote it and re-modulized it, so basically you could link against Qt Help and run your help system in process. You could actually take the window that had help in it and embed it inside your application and you could do n number of things with it. You could use the engine and not use the gui, so on and so forth. So what they've done is, the old system called QAssistantClient, has now sort of been taken out of mainline Qt and is now distributed as a separate source package. So when you upgrade to 4.7, if you're still using this old deprecated class, you may need notice that you need to download something extra to get your applications built. The best solution, however, would be to just to port to the Qt Help Library. That would probably make your help look a lot better and a lot easier to use as well.

M: How hard is it to port from one to the other?

J: Well being that QAssistantClient didn't give you a lot of features to begin with, it's actually pretty easy.

M: Okay, so our recommendation is that when you switch to 4.7 and you find that you're missing your help system just port it and you'll be done with it.

J: Exactly.

M: Okay, I think that's probably what they were trying to hint at. Well that's been a good set of releases this week. And I appreciate the insight as always Justin. Thank you very much.

J: You're welcome and I hope that we see everyone back here again next week, same time, same channel!

M: Thank you, and this is This Week in Qt.