Qt vs Symbian C++
-
wrote on 21 May 2010, 15:43 last edited by
Hi there,
Assume that one would want to develop only for Symbian devices, which use cases would favor development in Qt and which ones for Symbian C++?
-
wrote on 21 May 2010, 16:00 last edited by
I would say that developing for "Symbian only" using Qt is buying you future benefits, since you never know when you'll be asked for that lovely application you have now running only in Symbian to be available for, let's say, Linux.
Si for me, if both tools (Symbian C++ and Qt) will involve the same learning and/or developing effort the equation is clear: I'll use Qt
-
wrote on 21 May 2010, 20:47 last edited by
I agree with pablojr. The effort put into developing with Qt potentially has various additional benefits simply due to the cross-platform nature of the toolkit. Since Nokia's acquisition of TrollTech, it looks like Qt is going to continue to play more of a stronger role in Mobile Development. It doesn't look as if its future is dim at all.
-
wrote on 22 May 2010, 04:41 last edited by
What do you think would happen to Symbian C++, would it continue to exist? Would Qt complement it in someway or completely replace Symbian C++ ?
-
wrote on 22 May 2010, 16:36 last edited by
I finde Symbian C++ to be a lot less straightforward than Qt. I can see Qt taking a fair amount of developers away from Symbian C++, but I don't think it will replace it.
-
wrote on 24 May 2010, 06:16 last edited by
As far as c++ application development is concerned Qt will replace symbian c++. As others pointed out, it is much more easier and is cross platform. With Symbian 4, the S60 avkon framework will not be supported and Qt will be the only choice for building guis for c++ applications. For Symbian c++ apis other than GUI, you may mix them with Qt code if needed. But that will be rare, with Qt mobility available.
-
wrote on 24 May 2010, 11:04 last edited by
Remaining use cases for Symbian C++:
- If you need a rock-solid stable background server (because Qt doesn't have any mechanism for handling out-of-memory issues yet)
- Accessing platform APIs which aren't available via Qt Mobility.
- Supporting old devices (there are still some out there that Qt won't run on, particularly in poorer countries)
That's about all I can think of.
Basically, if you can use Qt then do!
Mark (Kernel & Base Technology Manager at the Symbian Foundation)
-
wrote on 24 May 2010, 15:35 last edited by
Thanks Mark and Jaykrishnan,
If an app is targeted for the current crop of Symbian devices and requires accessing platform APIs, Symbian C++ can be used. However, if the app is heavy on UI, Qt would be a better option. That is the best I could summarize it.
-
wrote on 24 May 2010, 16:21 last edited by
I'd go further than that - if there is ANY UI, and you can use Qt, then do use Qt. Don't write a new UI in Symbian C++ unless you absolutely have to.
-
wrote on 27 May 2010, 16:12 last edited by
Just in - there is a firmware update for the N900 and it contains the Qt 4.6.2 libraries. So no need to bundle the core with the app :-)
However, that still leaves this question open - how will Qt help provide rich UI apps to the existing millions of Symbian devices ?
One may say, by adding the Qt libraries to the app, but that would make the size of the app around 8 MB + which is not so good with devices with limited memory like the N97.
Qt is not so much backward compatible, it's applicability to future devices seems assured.
-
wrote on 28 May 2010, 04:05 last edited by
Have you checked Symbian smart installer for Qt ? With this, there is no need to bundle Qt with your app. At the installation time, the smart installer downloads and install Qt if Qt is not already installed on the phone. I haven't used it yet. So I don't know how good it works. If anybody have used it, it will be good if they can share their experience
-
wrote on 29 May 2010, 18:19 last edited by
I have read about the smart installer, it was at beta 2.0. Whether one bundles the Qt libraries with app code or uses the smart installer, eventually the libraries will be installed on the phone memory. The current footprint is around 8 MB, which on phones like the N97, is quite a lot.
I have tried installing the qt_installer.sis ( this is available in the latest beta SDK) and it always installs in the C: drive, not the mass memory.
I think in future iterations of Qt, it is important for the libraries to be able to run on mass memory, the end user should have this choice.
-
wrote on 30 May 2010, 07:56 last edited by
bq. I think in future iterations of Qt, it is important for the libraries to be able to run on mass memory, the end user should have this choice.
It is not that easy as You say it is. Please correct me if I’m wrong but usually the devices mass memory is some kind of Flash NAND, in witch case every code stored in this memory needs to be copied in to the devices RAM memory. On the other hand the devices C: drive is usually some kind of Flash NOR, witch can store XIP code (eXecute in Place), this cuts the start-up time substantially because there is no need to copy the code in to RAM.
-
wrote on 1 Jun 2010, 14:22 last edited by
To be honest, I have no idea about the differences between how code executes on C:\ vs on the mass memory. But there are so many apps, specifically those written in Symbian C++, which install on either memory just as easily.
Qt, on the other hand, currently does not do that. It somehow installs only on the C:\ drive.
I would hope and expect, in the future, that installing Qt apps on either of these memories be possible.
-
wrote on 2 Jun 2010, 06:52 last edited by
[quote author="varunnarula" date="1275402178"]I would hope and expect, in the future, that installing Qt apps on either of these memories be possible. [/quote]
You can easily install Qt applications at mass memory. But Qt libraries should be better installed at c:\ (even if they will work at mass memory) because of performance issues.
-
wrote on 3 Jun 2010, 14:46 last edited by
I have tried installing the qt_installer.sis which comes with the (beta) Qt SDK and during installation, the option is provided, but I noticed that all the library components installed on the C: drive.
Have you tried installing any Qt application (bundled with the Qt libraries) on the mass memory. Do let me know, this is something I want to try out.
-
wrote on 3 Jun 2010, 16:49 last edited by
Have not tried apps bundled with qt libs, but installing at first qt libs (on main memory) and at second qt app (on SD-card) worked well.
-
wrote on 5 Jun 2010, 11:27 last edited by
[quote author="kkrzewniak" date="1275206164"]
It is not that easy as You say it is. Please correct me if I’m wrong but usually the devices mass memory is some kind of Flash NAND, in witch case every code stored in this memory needs to be copied in to the devices RAM memory. On the other hand the devices C: drive is usually some kind of Flash NOR, witch can store XIP code (eXecute in Place), this cuts the start-up time substantially because there is no need to copy the code in to RAM.
[/quote]
No, I'm afraid you are wrong. For many years now the C: drive and the Z: drive (which is where the ROM runs from) have been on NAND flash and are copied to RAM before they run. Typically NOR flash is too slow for modern processors and too expensive compared to NAND + more RAM.A good reason not to store the Qt libs in mass memory is because on some devices that might be a removable card and then any apps installed to C: that needed the libs wouldn't work when the card was removed.
The proper solution to this problem is for Nokia to stop creating devices with too little space on C:!
-
wrote on 10 Jun 2010, 14:48 last edited by
bq. The proper solution to this problem is for Nokia to stop creating devices with too little space on C:!
That is exactly the problem. 128 MB will just not cut it. At the very least, 256 MB is required. The N900 has some virtual memory, any idea if something similar can be done on Symbian ?
Take the N97 for example, and with Maps, Quickoffice, Qt and browser cache, the memory quickly fills up. With virtual memory, this problem could be solved.
-
wrote on 10 Jun 2010, 15:48 last edited by
No, you're confusing RAM and Flash. Symbian does have virtual memory in the form of demand paging and specifically Writable Data Paging in Symbian^3. That will mean more free RAM but it doesn't help with the amount of space on C: (in fact it could make it worse because that data has to be paged out to flash somewhere!).
1/44