Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt or Symbian C++? [closed]

Tags:

I am planing to develop on Symbian systems but I am not familiar with it. I know (might be) the most popular way of developing on Symbian is Symbian C++, and I also heard of Qt. What's the difference between them? If I want my app run on most of the Symbian systems, which should I choose? Can someone give me some overall advices?

Thank you~

like image 296
Mickey Shine Avatar asked Jan 27 '10 06:01

Mickey Shine


People also ask

What version of Qt do I need to develop for Symbian?

The current version (Qt SDK 1.2) offers features to build applications for Symbian Anna and Symbian Belle phones (as well as the Nokia N9 and desktop platforms) using Qt 4.7.4. Development for earlier versions of the Symbian platform and Qt are possible, using Qt SDK 1.1.2 available from the Nokia Developer website.

What is Qt Creator?

Qt Creator is a complete cross-platform IDE included in the Qt SDK. The IDE enables you to create, build, debug, and run Qt applications across all supported platforms. You can have a single project and deploy that to multiple phones: such as Symbian and the Nokia N9 (using the MeeGo 1.2 Harmattan target).

What are the advantages of Qt for mobile app development?

The tight integration increases performance of Qt applications. If you are developing apps for Symbian phones and the Nokia N9, in most cases, you can use Qt under the free LGPL licensing option. Qt is cross-platform, and that means that you can use the code from one single code-base and rebuild for all supported platforms.

Can I use Symbian C++ with low memory devices?

The answer is a bit late, but here's from Symbian C++ on the Nokia Developer wiki: Symbian C++, the native programming framework for Symbian, is an idiomatic variant of C++ optimised for low memory devices. While Qt is now the recommended native framework creating Symbian apps, we continue to provide access to tools for working with Symbian C++.


2 Answers

Symbian C++ is the dialect of C++ in which the operating system is written, all the way from the kernel up to the application framework. It differs from standard C++ in a number of ways, some of which are listed here:

  • Exceptions are not used; Symbian uses its own method of stack unwinding called 'leaves'. The main reason for this is that the C++ standard was still in development when Symbian was created, and exceptions were at that time not widely supported by compilers.
  • Because of the lack of support for exceptions, management of dynamically allocated memory uses a proprietary mechanism called the cleanup stack.
  • Although a port of the STL is now available for Symbian, this is a recent development, so the OS has its own utility classes for strings, arrays, hashes etc.

Taken together, these can make learning Symbian C++ pretty difficult, even for seasoned C++ programmers. The cleanup stack and string classes (known as descriptors) in particular are usually seen to add quite a lot of overhead to Symbian C++ development.

As with any operating system, in addition to needing to know the native language, you also need to know your way around the libraries which are relevant to your area of development. Symbian has a very rich set of libraries covering large amounts of functionality (threading, IPC, graphics, multimedia, networking, location, messaging, PIM, telephony etc.) Once you get used to the Symbian C++ idioms, these libraries are generally very powerful and offer a feature set at least equal to other platforms. One notable exception is the UI library, known as Avkon, which is now pretty dated when compared to corresponding frameworks on other platforms.

Qt is intended to address some of the issues listed above which tend to put people off native development on Symbian OS. Specifically, it enables a much more modern style of C++ programming, and includes a very advanced set of graphics / UI libraries. Today, Qt is available for installation on most recent Symbian devices. Looking forward, it will form the foundation of a completely new application framework, which will be introduced in the S^4 version of the platform (expected to be in devices shipping from 2011).

One thing I should point out is that, at this point, Qt does not cover all of the functionality of the native libraries. From the list above, while Qt offers abstractions of threads, IPC, graphics, multimedia and networking, its core libraries do not include location, messaging or PIM functionality. So, while you can use Qt to write (for example) an FTP client, a drawing program or a media player, you cannot use it to write a messaging client. Because Qt is C++, you can mix it with native Symbian C++ (dropping down to platform APIs to access messaging for example), but this is somewhat complex.

This functionality gap is being addressed by a project called Qt Mobility, which will introduce Qt libraries covering areas such as location, messaging and PIM.

In summary, if you are new to Symbian, Qt is the application development environment to learn, and doing so has the additional benefit that you can also develop Qt applications on other platforms (since it is a cross-platform toolkit).

like image 108
Gareth Stockwell Avatar answered Sep 19 '22 21:09

Gareth Stockwell


Go for Qt. It will be the direction where all of Nokia is going. Plus your program will then probably run on Maemo/Meego too.

like image 27
guruz Avatar answered Sep 19 '22 21:09

guruz