It's vacation time in Finland, which means less emails, which means more time for blogging :)
First, we're happy to report that Qt 4.7 for a potential future Maemo 5 update (*) is progressing nicely. Next to dozens of Maemo 5 specific bug fixes, we're also happy to announce that a few new features for Maemo 5 have entered 4.7-fremantle. Since the N900 doesn't support multiple touch input, QGesture support was off by default in Qt 4.6. For Qt 4.7, we managed to add support for single touch gestures, like tap and tap-and-hold, which makes touch-friendly UIs friendlier to write. Users of Qt Mobility's Bearer Management should be happy to know that Qt's internal auto-connect-when-offline mechanism can be entirely disabled via QMaemoInternetConnectivity::setAutoConnectEnabled(). And on top of that, the new 4.7 features also run nicely on the N900, most notably QtDeclarative.
Qt 4.7 experimental packages can be found in Maemo's extras-devel repository. Scratchbox SDK users can install them by running fakeroot apt-get install libqt4-experimental-dev.
Experimental support for the experimental Qt 4.7 packages for the experimental MADDE (0.6.84) environment (as shipped with the Qt Nokia SDK) can be found here. Check the README for installation instructions.
We'd like to ask all of our Qt 4.6 users to give Qt 4.7 a try. All bugs can be reported as always at bugreports.qt.nokia.com. Happy development :)
(*) "potential" means it might or might not happen and we have no clue if and when
Commenting for this post has ended.
What's the point ?
I find it all very confusing what Nokia is doing, and I am one who has followed Qt for some time as a developer and evangelist. Pity the poor developer just walking in the door. What am I confused about. Three platforms: Symbian, Maemo, and Meego. OK I have a handle on Symbian - its on life support. What I know about Maemo and Meego is that they both start with M and both have a Q and a T in them. Since Meego is the newest platform am I to believe it will be the one left standing as Maemo gets folded into Meego, or will both stand on their own. What's kind of more troubling then the Meego-Maemo shell game is how Nokia wastes so much resources on its very non focused platform strategy. Qt on Symbian - great I can port the Qt Wiggly application to it, but what's the point ? Meego and Maemo ? Is it throw two platforms against the wall and see which one sticks ? Why not take a page from Android, IPhone, and Rim. Focus on one thing and execute on it very well.
@David B: The message isn't that confusing. Symbian is mid-end, Meego is the new high-end. With Qt 4.7 for Maemo, Meego and Symbian, all your cool QML stuff will run on all platforms. It also eases the transition phase from Maemo to Meego, since from a Qt perspective, not much changes - both devices come with Qt 4.7.
What is confusing then? Meego for Nokia Handsets were slated to become Maemo 6 originally. Symbian evolves into QT-based OS for low to mid tier smartphones and Meego handles the very top of the game. Maemo 5 and N900 works now for reference base to develop upon. Maemo is dead, long live the Maemo.
Wrong cyrillic input on N900. Don't work Fn & shift keys on Russian layout
@globster: As mentioned in the blog, please use bugreports.qt.nokia.com to report bugs.
What confuses me is not so the Qt framework its the Desktop framework. How you talk to the dialer, the address book, other applications. You've got three platforms, each with their own desktop SDK. Perhaps QML is the magic glue that holds it all together.
The companies mentioned in my first email have had phenomenal success with just one platform. Maybe Nokia should take a lesson from silicon valley and do likewise
"Why not take a page from Android, IPhone, and Rim. ... The companies mentioned in my first email have had phenomenal success with just one platform. Maybe Nokia should take a lesson from silicon valley and do likewise"
Google have Android, and are working on Chrome. They also have business in other areas (search engines, online advertising).
Apple have IOS, and OS X.
So only RIM fits with your claim.
Just one of Nokia's platforms - Symbian - has more market share than Blackberry, Android, or IOS, so I'm not sure what you mean by "phenomenal". The reason why Nokia have other platforms is presumably because they want more even still. Nokia's main market is the phone platform, where as Google and Apple have their hands in many other markets which brings in their money.
Indeed, clearly Google and Apple didn't get their success from their phones! So if anything, the message from those companies is that Nokia should diversify. It would be silly to cut down.
One of the best things about Symbian is how well it runs on low end devices - e.g., the Nokia 5230 which at £90 PAYG is cheaper than many "feature" phones. The latest Android versions require the latest high end phones, and Apple are only interested in the high end. This means that Nokia can do very well selling at the mid range, and probably helps a lot to them being number one. But the downside is it means they're not doing so well at the high end - if you want a 1GHz phone, there are Android phones, and nothing from Nokia. And I can see that there might be some advantages to having a separate platform to specifically take advantage of high end devices.
@DavidB: Apple only makes high-end phones. RIM, I'm not sure about but they certainly don't make low-end phones. Android is sort of being pushed to mid-tier phones but those phones are the ones people complain about being slow and unresponsive (and stuck running old versions of the OS).
Nokia wants to compete at the high end and the market has decided Symbian is not the OS that they will use to do so. So they're going to use Meego (the offspring of Nokia's Maemo and Intel's Moblin).
The thing is, you can't just take a high-end OS like this and run it on a mid-tier device without some serious compromises. Nokia doesn't want to leave the low and mid-tier markets where the bulk of its revenue comes from so they need to keep something around for those markets. Nokia puts Symbian on devices that couldn't dream of running Android and for the low end they have not one but 2 more options, S40 and S30.
Now sure, as hardware gets ever cheaper the OS you put on a low-end phone will get better. There was a time when Symbian only ran on the highest-end phones. Now it's serving the mid-tier and it's even starting to push into the low-end.
In the past Nokia had a terribly fragmented developer story but they've been trying to fix that. The messaging is pretty clear now even if all the pieces aren't quite in place. HTML will run everywhere, J2ME will run on the low and mid tiers, Qt will run on the mid and high tiers. As you've pointed out, Qt doesn't help when you're trying to access the platform's addressbook which is why the Qt Mobility project was started. It's aim is to create a set of APIs that will work across the devices that Qt runs on. It may not cover everything bit of functionality from every platform but more APIs are planned and you can always add platform-specific code to your Qt app if you need something Qt or Qt Mobility don't provide.
"
What confuses me is not so the Qt framework its the Desktop framework. How you talk to the dialer, the address book, other applications. You've got three platforms, each with their own desktop SDK. Perhaps QML is the magic glue that holds it all together.
The companies mentioned in my first email have had phenomenal success with just one platform. Maybe Nokia should take a lesson from silicon valley and do likewise
"
And they stick to that one platform. One bright idea that's in Qt, is that the platform becomes irrelevant...developer can think just that "couldn't care less about the platform" or "who cares what the platform is". Get the point? You just create the app and after recompilation it's ready to run on whatever platform you like.
What bothers me nowdays, is the wide variety of install packages...it should be just one installer from which the developer would just choose what to install, at install time.
Something confuses me.Now there are meego-sdk-0524 and Nokia qt SDK,they will be both for meego in the furture.Which shoulddwe use to develop applications for meego?
I agree with the others users that the situation is not really clear at the moment: I much appreciate that Qt is becoming a unique solution for most platforms (with desktop OSes also in mind) ? I think one unique installer with everyting in it (or optional downloads based on a selection) would be more accurate. Something like:
- select the OSes you want to develop for: Windows, Mac OS X, Linux, Symbian, Maemo, Meego, ... (-> which would automatically download or ensure the corresponding compiler toolchains are installed)
- select the additional packages you want to install: Qt Mobility, ...
And one (and only one) QtCreator to rule them all. ;)
"Nokia Qt SDK" ... hmmm, ok, but since Nokia bought Qt, Qt = Nokia for me now, so this name is not the most accurate to only target a particular platform supported by Qt. I would prefer something like Meego Qt SDK, Windows Qt SDK, ... and so on, or, as stated before, a big "Nokia SDK" with everything available in it (even through downloads).
So to sum up what you are all saying is that you don't understand the roadmap. Well having been in the "computer" software engineer and then a mobile developer for many years the roadmap is often changing. Nokia, of which I am independent, quite rightly does does not want to upset the market by saying one section is finished. Meego will as has been explained be merged from Maemo and Qt, now this alone could cause uncertainty, but will move slowly as marketing finds the right path. One the subject of putting effort into one product line this is not a good business strategy and just because the marketing/hype of one phone recently released got good coverage initially!. Android well you can have this on any platform including many Nokia devices!! (N810 etc), but people stick with Maemo, because its faster. The move to Open systems is hard and "computer" history is littered with failures, because many people could not make the transition and hence died because they could not wait!!. Patience will be needed the future is never clear and mergers of technology take time. What Qt gives us is the ability to work across many platforms add in future to add other platforms so we dont have to be on the success of a single YYphone or an XXpad in the limited market these serve
I agree with rix,
it is batter to put all SDKs in one package. and the user will choose which to install. I don't this where downloading the "Qt SDK" and then "Nokia Qt SDK" and then....., Open the Qt Creator and locate the additional SDK :(. this is awful.
I tell you some thing, do you know why Microsoft is always successful? because it always simplify the life of both developers and users
@ Ali: Just note Nokia Qt SDK is a cross platform IDE already now allowing mobile apps development for Symbian and Maemo and with Qt Remote Compiler for Windows and Mac. Doesn't that simplify developers life?
Is it needed to upgrade N900 to Qt 4.7 to do the testing? Currently it is Qt 4.6.2 installed on my N900.
@xusc: Yes, you need to install the libqt4-experimental packages, then (if you use qmake) recompile your app using /opt/qt4-maemo5/bin/qmake
Let us know if you see any regressions. Also thanks for being the first on-topic poster :)
@Harald: Do you know in 4.7, can I play a media file (wav, mp3, mp4, etc) inside an archive now? That is , play a media file by giving the start and end byte position of the media file in an archive. Currently I can do so in Android. I am porting an app from Android to Qt and this is the only obstacle. I know a turn around in 4.6.2 but required to do some low level work, which is quite time consuming.
I believe Qt is the future and this is the reason I bought a 5530 and N900. I am really impressed with the speed and quality of the Qt framework porting to other platforms in just short time. I wrote some testing apps and they work on the 5530 and N900.
I think it is really hard work and can be only done by the truly talented Qt team!
> Google have Android, and are working on Chrome. They also have business in other areas
> (search engines, online advertising).
> Apple have IOS, and OS X.
> So only RIM fits with your claim.
Even for RIM it is not going to be true soon. RIM recently bought Unix-based RTOS QNX, so something tells me soon we are going to see a 2nd OS on their phones too.
I didn't see any experimental packages for qt-mobility in extras-devel to use with 4.7. Do you guys plan to provide those as well so that we can take advantage of the fixes you describe above, or do we have to build qt-mobility from source to use with 4.7? If so, any tips on configure options for building for N900?
@Mallet: I agree with you. But for me as a first time user of Qt Creator, I'm facing several problems configuring it. To be honest with you, I like Qt so so much. my complaint is with the configuration of the IDE to additional SDK, emulators and ...etc. but please have a look at MS visual Studio, any additional plug-ins installed for it will automatically configured and listed within it. Also, it is smart enough to start emulator when developing for windows mobile..
Please Qt team, Consider my point..
With all due respect - unless you are on vacation yourself too - vacation time in Finland should mean you work twice as hard to get Qt into the place it needs to be! Blogging can wait! ;) :p
So , I followed the readme and I get all kind of errors on windows 7. First it was that qmake.MINGW32_NT-6.1 was not found. I copied over the 5.1 version and now it complains about a mingw10.dll not beeing available on my computer.
Isn't there a way to install this version of qt in MADDE so the QtCreator does it's magic and when you click on run/debug from creator your file gets deployed on N900 and you can test application pretty much like in 4.6.2?
There is indeed confusion relative to N900 and Maemo/MeeGo. It appears that when MeeGo for handsets is fully released it will not be supported on the N900. This is presumably because Nokia will want you to buy a new MeeGo handset... However, there are additional concerns besides the EOL for N900. Symbian uses Orbit. MeeGo handsets use DUI (now known as MTF). QML is on the horizon and is alpha quality. Will MTF be deprecated in favor of QML eventually?
@cristids: You need to install the mingw compiler, I thought that the Qt SDK already did that be default, but seems that I was wrong.
As I said, the support is experimental, and since MADDE doesn't have a possibility to install extra packages, we have to revert to these hacks for the moment. Once 4.7 is out, MADDE and Qt Creator will come with decent support again.
@Sean: We want to release Qt 4.7 for the N900 also to keep the N900 relevant for a longer time, since 4.7 adds QML support, so most Meego apps should either run out of the box or with a recompile/relink.
QML is our answer for creating mobile UIs. Check out the QML components project to see how it's possible to combine QML and MTF for the best of both worlds.
@rix: "Nokia Qt SDK" will provide all you need for Maemo and Symbian (and presumably Meego in future when it replaces Maemo), and it includes QtMobility.
I agree it's confusing as to how this fits in with Windows/Linux/OS X Qt development (although you can download that separately, it's unclear how you get a single installation compiling to all; and as you say, since Nokia own Qt, it's not clear that "Nokia Qt SDK" means "Symbian and Maemo").
@Ali ""Nokia Qt SDK" and then….., Open the Qt Creator and locate the additional SDK :(. this is awful."
Not sure how you mean? You don't need an additional SDK
"I tell you some thing, do you know why Microsoft is always successful? because it always simplify the life of both developers and users"
For years on Windows, you had to download the compiler/IDE, then download the Platform SDK separately.
I'm not saying the installation process was perfect, I did have confusion with various things. But we can't pretend that no other platform has these problems. There are certainly far more difficult issues I've been faced with, trying to get things to work in development.