Engineers like to solve problems. If there are no problems handily available, they will create their own problems.
This chapter provides an example of the porting process described in Chapter 2 applied to a complete working application with a user interface. Full source code for this example project can be found on the book's wiki page at
Since the most portable UI toolkit available for smartphones is Qt, I restrict the project selection to projects which make use of it. I also introduce the workflow, tools and build files involved in a typical Qt-based project on the Symbian platform. At the end of the chapter, I describe how to extend the port to use mobile-specific controls via native Symbian C++ APIs.
By the time you've read this chapter, you should understand:
how to use Qt on the Symbian platform
how Qt integrates with the Symbian build process
how to manage platform-specific extensions in a cross-platform project
how portable a well-written Qt project can be.
The more portable the code you are working with, the less the effort required to get something working on a new platform. This makes it possible to use a much more complex and functional example than the typical 'Hello World' application that you find in most introductory examples.
In the rather artificial situation of choosing a project for a simple porting example, I have the primary requirement ...