65
Nokia Qt SDK in Action Qt Developer Days 2.11.2010 Pekka Kosonen Head Of Technology Development, Forum Nokia Slides are available in http://www.slideshare.net/pkosonen

Nokia Qt SDK in Action

  • Upload
    nokia

  • View
    3.423

  • Download
    4

Embed Size (px)

DESCRIPTION

Presentation for Qt developer days 2010 in San Fransisco covering the details of using Nokia Qt SDK and publishing the applications to Ovi store. Focusing on Symbian but covering the current status of maemo. Explains the Ovi Store Symbian Signing Service.

Citation preview

Page 1: Nokia Qt SDK in Action

Nokia Qt SDK in ActionQt Developer Days

2.11.2010 Pekka Kosonen

Head Of Technology Development, Forum Nokia

Slides are available in http://www.slideshare.net/pkosonen

Page 2: Nokia Qt SDK in Action

Ingredients are:

1. Overview and demo of Nokia Qt SDK 1.0

2. Taking your Qt app to Nokia platforms using

Nokia Qt SDK

• The topics that you need to know about

Symbian and Maemo and how to handle

those.

3. Publishing to Ovi and Ovi Store Symbian

Signing Service

4. Spicing up the soup with platform SDKs

• When you might want to tap into

platform specific SDKs – focusing on

Symbian.

Soup of today

Slides are available in http://www.slideshare.net/pkosonen

Page 3: Nokia Qt SDK in Action

Rich told you the opportunity – 100 M devicesI will tell you how you reach that install base

Slides are available in http://www.slideshare.net/pkosonen

Page 4: Nokia Qt SDK in Action

What we used to haveWhat we have nowWhere we will be

Slides are available in http://www.slideshare.net/pkosonen

Page 5: Nokia Qt SDK in Action

Now - Nokia Qt SDK 1.0 overview

Simulate. Fast, easy to use and lightweight simulator.

Install. All in just one package. Easy to customize and update.

Install Develop Simulate Deploy*

Create. Qt Creator - Easy to use IDE

Update

http://www.forum.nokia.com/Qt

Page 6: Nokia Qt SDK in Action

Simulator

• Quick launch

• Simulate Qt Mobility project features

• Scripting possibilities

• Skins for different platforms / form-factors

Page 7: Nokia Qt SDK in Action

On-device Debugging

Debugging hostQt Creator

Page 8: Nokia Qt SDK in Action

Switching Target Platforms

• Select Symbian or Maemo target• Build, deploy and debug

• Supports also switching the targetto Remote Compiler or Symbian Emulator

Page 9: Nokia Qt SDK in Action

Remote compiler

• For Mac and Linux local builds for Symbian are not supported

• Builds can be done remotely using remote compiler

– When installing Nokia Qt SDK select remote compiler from the „Experimental‟ section

– Your application sources are sent to a Nokia server where the build is done

– You get back a ready installer package (sis for symbian, deb for maemo)

Page 10: Nokia Qt SDK in Action

Coding demo 1//geoflickr, using location API, fetch //pictures from flickr taken near you.//run in simulator, N8 & N900

Geoflickr – simulator, symbian, maemo

Page 11: Nokia Qt SDK in Action

Taking your Qt application to Nokia platforms

The topics to consider

Page 12: Nokia Qt SDK in Action

Taking your app to Nokia platforms – the laundry listSymbian - minimum laundry list

1. Optimize the app

2. Get an UID

3. Figure out the capabilities

4. Do an icon

5. Modify .pro file

6. Test on several devices

7. Create a sis file with Nokia Qt SDK

8. Sign the sis file

9. Take smart installer into use

10. Distribute the embedded pkg

Maemo - minimum laundry list

1. Optimize the app

2. Do an icon

3. Modify .pro file

4. Test on the Nokia N900

5. Tweak the debian files for Nokia Qt SDK

6. Create the debian package

7. Distribute

Page 13: Nokia Qt SDK in Action

Optimization

• Know the limitations of the target devices.

• To provide the best experience optimize

– UI

– Resource usage: Memory, network usage, speed

• UI optimization, atleast:

MainWindow w;

w.showFullScreen(); //w.showMaximized();

• Network usage : avoid significant data transfer, atleastif not in WLAN

• Consider the usage of Qt Webkit in your application.

Page 14: Nokia Qt SDK in Action

Application features

• When taking your application from desktop to smartphonesdon‟t stop when you get it working. Think about how you can improve the user experience with mobile specific features.

• Qt + Mobility offers already a pretty comprehensive set of features.

– You might still want to spice up your application with some platform specific use cases like home screen.

Page 15: Nokia Qt SDK in Action

Symbian platform security -background

1. Capability model

– APIs protected with capabilities

– Indicates application signing

2. Process identity

– Each process has a unique identifier (UID)

3. Data caging

– Apps can‟t access all data on the device

• http://developer.symbian.org/wiki/index.php/Platform_Security_(Fundamentals_of_Symbian_C%2B%2B)

• http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml

• Symbian signed test criteria : http://tiny.symbian.org/testcriteria

Page 16: Nokia Qt SDK in Action

Capabilities and signingCapability Group Capability Name Self-Signed Open Signed

OnlineOpen Signed

OfflineExpress Signed Certified

Signed

User Capabilities LocalServices Yes, with user confirmation at

install time

Yes Yes Yes Yes

Location

NetworkServices

ReadUserData

UserEnvironment

WriteUserData

System Capabilities

PowerMgmt No Yes Yes Yes Yes

ProtServ

ReadDeviceData

SurroundingsDD

SwEvent

TrustedUI

WriteDeviceData

Restricted Capabilities

CommDD No No Yes No Yes

DiskAdmin

NetworkControl

MultimediaDD

Device Manufacturer Capabilities

AllFiles No No No No See below

DRM

TCB

Ovi Store Symbian

Signing Service

Page 17: Nokia Qt SDK in Action

UID for Symbian applications

• Each process has a unique identifier (UID)

• Can be obtained from Ovi Store Symbian Signing Service (or Symbian signing)

• No cost included

• Defined in the applications .pro file

symbian {

#application UID here

TARGET.UID3 = 0x21234567

}

• For testing you can use any UID starting with 0xE, user capabilities and self signing

Page 18: Nokia Qt SDK in Action

Figuring out the capabilities

• Majority of Qt applications will manage with the user and system capabilities.

– With few known exceptions, f.ex Bearer Mgmt APIs certain use cases require NetworkControl

• How do I figure out the capabilities?

– Documentation

– Try, Error, Fix…

– Use Symbian platform tooling – demo later on…

Page 19: Nokia Qt SDK in Action

Icon

• Use SVG-T

• See examples, f.ex„C:\NokiaQtSDK\Examples\4.6\animation\animatedtiles\animatedtiles.pro‟ includes symbianpkgrules.pri file which defines the following

vendorinfo = \"; Localised Vendor name" \"%{\"Nokia, Qt\"}" \" " \"; Unique Vendor name" \":\"Nokia, Qt\"" \" "

examples_deployment.pkg_prerules += vendorinfoDEPLOYMENT += examples_deployment

isEmpty(ICON):ICON = $$PWD/qt.svg

Page 20: Nokia Qt SDK in Action

2

1

Symbian platform security – “how to” in Qt

• Everything you need in a Symbian OS MMP file, can be defined in the Qt .pro file– Symbian-specific extensions should be defined inside a special block as

shown below

TARGET = HelloWorld // Not Symbian-specific

TEMPLATE = app // Not Symbian-specific

symbian {

// LIBS-keyword as such is not Symbian-specific, but bitgdi library is

LIBS += -lbitgdi

ICON = ./images/myIcon.svg

TARGET.UID2 = 0x100039CE

TARGET.UID3 = 0xA000017F

TARGET.SID = 0xA000017F

TARGET.VID = 0x70000001

TARGET.CAPABILITY = NetworkServices Location

// Qt app stack typically larger than 8kb

TARGET.EPOCSTACKSIZE = 0x5000

// Min 128Kb, Max 16Mb

TARGET.EPOCHEAPSIZE = “0x20000 0x1000000”

}

• This way the same .pro file would potentially work in other environments as well

Page 21: Nokia Qt SDK in Action

Platform security & signing summary

• Symbian native apps need to be signed. Needed signing process depends on applications capabilities

– In case Restricted or Manufacturer capabilities are needed signing needs to happen in Symbian Signed, where a publisher ID is needed (and you need to have a company to get one)

• CommDD ,DiskAdmin, NetworkControl, MultimediaDD & AllFiles, TCB, DRM

• You should very rarely run into this situation.

• Individuals can publish to Ovi store and get their application signed in Ovi Store Symbian Signing Service – free of charge

Page 22: Nokia Qt SDK in Action

Packaging your application

Page 23: Nokia Qt SDK in Action

Remember the laundry list?

Symbian - minimum laundry list

1. Optimize the app

2. Get an UID

3. Figure out the capabilities

4. Do an icon

5. Modify .pro file

6. Test on several devices

7. Create a sis file with Nokia Qt SDK

8. Sign the sis file

9. Take smart installer into use

10. Distribute the embedded pkg

Maemo - minimum laundry list

1. Optimize the app

2. Do an icon

3. Modify .pro file

4. Test on the Nokia N900

5. Tweak the debian definitions for Nokia Qt SDK

6. Create the debian package

7. Distribute

Page 24: Nokia Qt SDK in Action

Publishing Qt apps for maemo

• First create the debian package and test it with Nokia Qt SDKs maemo tools (MAD) on N900

• The debian package created by Nokia Qt SDK is a “development” version.

• To make one for publishing a bit of tweaking is needed. For details see http://wiki.maemo.org/Packaging_a_Qt_application

Page 25: Nokia Qt SDK in Action

Smart Installer for Qt for Symbian

The opportunity+100M Symbian devices

could run cross-platform Qt

applications already during

this year

The

problemQt libraries need to

be post installed –

most consumers

might not bother

The solutionA Smart Installer tool that

checks whether needed

Qt version is available on

the device – and if not, it

will handle the installation

Details•Tool called Smart Installer for Symbian devices

•Comes with Nokia Qt SDK

•A small binary to be packaged together with the Qt application targeted for Symbian devices

•The Smart Installer will download OTA the needed Qt & Mobility version to the handset if it is not

already present

Page 26: Nokia Qt SDK in Action

Tools & SDKs – Smart Installer

your_app.sis

2Check

3Deps

4Qt

+Webkit

+Mobility

1Adm

http://tinyurl.com/SmartInstaller

Page 27: Nokia Qt SDK in Action

It can be big download…But as we go forward more and more devices have Qt preinstalled

Slides are available in http://www.slideshare.net/pkosonen

Page 29: Nokia Qt SDK in Action

Smart installer and Qt versions

• Note; The newest Qt versions may not be available for application distribution i.e exist in Smart Installer server.

– Once you build an app with Qt the dependency is automagically set to that version (f.ex 4.7.0).

• If that version is not available for the target device smart installer will fail

– Using what is available in Nokia Qt SDK i.e Qt 4.6.3 is the current commercial solution

– For checking what is available for distribution : http://tinyurl.com/SmartInstaller

– If you‟re using mobility or Qt Webkit the dependencies will be created automagically by qmake and those components will be installed along with your application

• Smart installer sis file is in „NokiaQtSDK\ Symbian\SDK‟

• Docs in „NokiaQtSDK\ Symbian\SDK\

Nokia_Smart_Installer_for_Symbian_Developers_Guide_v1_0_en.pdf‟

Page 30: Nokia Qt SDK in Action

Steps to take smart installer into usage• Build the app

– qmake app.pro

– make release-gcce

• Now depending on the signing process you select

1. Ovi Store Symbian Signing Service : use the certificates you‟ve gotten from them to sign the application and the embedded package. Test.

2. Symbian signing : sign the application with your published ID. Send the application for signing. Once you have the signed application back create the embedded package.

• Let‟s go through the creation of package for Ovi publishing (using Ovi Store Symbian Signing Service) next

Page 31: Nokia Qt SDK in Action

Creating the package for Ovipublishing

Planning to publish collindingmice (which I definitely own and have rights to publish ;)

qmake collidingmice.pro

make release-gcce

make sis QT_SIS_CERTIFICATE=publisherid.cer

QT_SIS_KEY=publisherid.key

make installer_sis

QT_SIS_CERTIFICATE=publisherid.cer

QT_SIS_KEY=publisherid.key

Page 32: Nokia Qt SDK in Action

To support Symbian^3

• After you‟ve run qmake patch the .pkg files (_template.pkg and _installer.pkg)

• Locate the following lines

; Default HW/platform dependencies

[0x101F7961],0,0,0,{"S60ProductID"}

[0x102032BE],0,0,0,{"S60ProductID"}

[0x102752AE],0,0,0,{"S60ProductID"}

[0x1028315F],0,0,0,{"S60ProductID"}

• Add Symbian^3 product ID to the list and save the file

[0x20022E6D] ,0,0,0,{"S60ProductID"}

http://bugreports.qt.nokia.com/browse/QTBUG-13897

Page 33: Nokia Qt SDK in Action

Patching continues…

• Locate the UID from installers pkg file

; SIS header: name, uid, version

#{"collidingmice installer"},(0xA000D7CE),1,0,0

• Change the UID to 0x2002CCCF (smart installer UID)

#{"collidingmice installer"},(0x2002CCCF),1,0,0

• Set the vendor name to both packages; Localised Vendor name

%{"Vendor"}

; Unique Vendor name

:"Vendor"

• Replace “Vendor” with your Ovi store publisher name

Page 34: Nokia Qt SDK in Action

Enabling smart installer

• Video : file:///C:/presentations/Qt_dev_days_2010/symbian/smart_installer_usage_part1.htm

Page 35: Nokia Qt SDK in Action

Publishing

Page 36: Nokia Qt SDK in Action

Final step in the laundry list

Symbian - minimum laundry list

1. Optimize the app

2. Get an UID

3. Figure out the capabilities

4. Do an icon

5. Modify .pro file

6. Test on several devices

7. Create a sis file with Nokia Qt SDK

8. Sign the sis file

9. Take smart installer into use

10. Distribute the embedded pkg

Maemo - minimum laundry list

1. Optimize the app

2. Do an icon

3. Modify .pro file

4. Test on the Nokia N900

5. Tweak the debian definitions for Nokia Qt SDK

6. Create the debian package

7. Distribute the .deb

Page 37: Nokia Qt SDK in Action

Ovi Store: 6 numbers you should know

2.5Million

downloads daily

30Languages

91operators

135+devices

190+countries

90%Mobile consumers

w/local Store

Page 38: Nokia Qt SDK in Action

Let‟s make it easy to put your app in the hands of millions of consumers

Consumers $£€¥Financial

EnablersDevelopers+ + =

Our goal is simple

Page 39: Nokia Qt SDK in Action

Qt apps on Ovi store

• Currently : – Qt apps can be published for Symbian and Maemo devices using Qt

4.6.3

– Currently 19 devices supported (29th of October 2010):• Symbian^3: N8-00, C7-00, C6-01, E7-00

– due to recent issue no new content should be published until Store 2.2 (coming in some weeeks)

• S60 5th Edition devices: X6-00, N97 mini, C6-00, 5800, 5530, 5230, 5228, 5235, N97

• S60 3rd Edition devices: E72, E71, E63, E52, E66

• Maemo/Meego: N900, with PR1.3 and Qt 4.7

– Next ones targeting wk 44 are : 5250, N95 8GB, N95, E72, N82, 5233, 5232, Nuron C5-03

• Early 2011 : Qt 4.7 based application distribution enabled*

* 4.7 apps can be deployed to N900 already once PR 1.3 is available

Page 40: Nokia Qt SDK in Action

Publishing Qt apps to Ovi

• Register as an Ovi publisher

– For individuals cost is 1 euro

• For maemo no signing is needed, after testing one can move on directly to publishing

• For Symbian

– Ovi signing and publishing (which is also free) for individuals

– Or symbian signed (in case of restricted/manufacturer capabilities) for companies

• http://www.forum.nokia.com/Distribute/Ovi_Store_guidelines.xhtml

• https://publish.ovi.com/register/

Page 41: Nokia Qt SDK in Action

Publish to Ovi - registration

• file:///C:/presentations/Qt_dev_days_2010/symbian/Register_and_publish.htm

Page 42: Nokia Qt SDK in Action

Ovi Store Symbian Signing Service

Registering :

1. Emails publisher support ([email protected]) to start the registration process. After accepting and signing the terms and conditions…

2. Publisher provides IMEI numbers for up to 5 devices for testing purposes

3. Ovi Publish support sends publisher UIDs, a cert installer, and developer cert/key pair for testing their app

Publishing:

1. Ovi Publisher packages the SIS file using the UID provided and tests on their device making sure is tested against Symbian Signed test criteria

2. Ovi Publisher submits their app to the intake tool

3. QA will test the app based on Nokia content and store guideline, specific operator guideline and Symbian Signed test criteria. If it passes, it will be express signed by Nokia and published into Ovi Store

http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml

Page 43: Nokia Qt SDK in Action

Publishing summary

• Use smart installer for symbian

• Individuals can publish their apps and get the applications signed using „Ovi Store SymbianSigning Service‟ –

– registration to Ovi publishing costs 1€, after that it‟s free of charge.

• We‟re continuously adding new devices to be supported for Qt application distribution –currently 19 devices supported.

Page 44: Nokia Qt SDK in Action

5. Spicing up the development environment with platform specific tools

Page 45: Nokia Qt SDK in Action

Tools and SDKs

Symbian SDK

Native APIs

Plug-in APIs

Documentation

Emulator

+ additional tooling in

Carbide

Qt libraries for Symbian

• Framework-only

• Documentation

Qt 4.6.3

Qt Mobility

Simulator

On-device debugging

Simplified

Limited Symbian SDK

Maemo 5 SDK (MADDE)

Nokia Qt SDK

Enough for many

applications

For extendedaccess

Page 46: Nokia Qt SDK in Action

Cases where Symbian SDK is needed• Can‟t use all Symbian C++ APIs without Symbian SDK

– Examples : homescreen, …

• Emulator provides improved platform look and feel

– Menus

– UI is more closer to the truth than in Qt simulator

• Communication between multiple processes – Qt app to Qt app f.ex

• Investigate platform specific painpoints like platform security

• SDK available in http://www.forum.nokia.com/symbian

– You can further spice it up with internal APIs from Symbian foundation

Page 47: Nokia Qt SDK in Action

Using platform specific APIs from Qt

Page 48: Nokia Qt SDK in Action

Paradigms for platform specific code

1. Same source files, #ifdef platform specific code

2. Isolate platform specific parts to separate files to include

3. Write a separate library

Page 49: Nokia Qt SDK in Action

Code example 1

#include "signer.h"

#ifdef Q_OS_SYMBIAN

#include <hash.h>

#else

#include <openssl/hmac.h>

#endif

QByteArray Signer::sign(QByteArray const &signingSecret, QByteArray const &signatureBase) const

{

QByteArray signature;

#ifdef Q_OS_SYMBIAN

// Convert signingSecret into a Symbian string:

TPtrC8 keyPtr(reinterpret_cast<const TUint8*>(signingSecret.constData()),

signingSecret.length());

TBuf8<100> keyVal;

keyVal.Copy(keyPtr);

// Initialize the signing-related objects:

CSHA1 *sha1 = CSHA1::NewL();

CHMAC *hmac = CHMAC::NewL(keyVal, sha1);

CleanupStack::PushL(hmac);

// Continued…

// Convert signatureBase into a Symbian string:

TPtrC8 basePtr(reinterpret_cast<const TUint8*>(signatureBase.constData()),

signatureBase.length());

TBuf8<1024> baseString;

baseString.Copy(basePtr);

// Create the raw signature:

TPtrC8 hashedSignature(hmac->Hash(baseString));

signature = QByteArray(reinterpret_cast<const char *>(hashedSignature.Ptr()),

hashedSignature.Length());

CleanupStack::PopAndDestroy(hmac);

#else

unsigned char *md = new unsigned char[32];

unsigned int md_len = 32;

HMAC(EVP_sha1(), signingSecret.constData(), signingSecret.length(),

reinterpret_cast<const unsigned char *>(signatureBase.constData()),

signatureBase.length(), md, &md_len);

signature = QByteArray(reinterpret_cast<const char *>(md), md_len);

delete[] md;

#endif

return signature.toBase64();

}

same source files, #ifdef platform specific code

Page 50: Nokia Qt SDK in Action

Code example 2

...

HEADERS += qbluetoothaddressdata.h # public header

SOURCES += bluetoothdiscovery.cpp # public class implementation

...

symbian {

...

HEADERS += bluetoothdiscovery_symbian_p.h # Symbian private class header

SOURCES += bluetoothdiscovery_symbian_p.cpp # Symbian private class source code

LIBS += -lesock \

-lbluetooth

TARGET.CAPABILITY = LocalServicesNetworkServices ReadUserDataUserEnvironment \

WriteUserData

}

// bluetoothdiscovery.cpp

...

#ifdef Q_OS_SYMBIAN

#include ”bluetoothdiscovery_symbian_p.h”

#else

#include ”bluetoothdiscovery_stub_p.h”

// Stub for all other platforms

#endif

Isolate platform specific parts to separate files to include

Page 51: Nokia Qt SDK in Action

Example 3

• Best resource is http://developer.symbian.org/wiki/index.php/Using_Qt_and_Symbian_C%2B%2B_Together

– Based on http://qt.nokia.com/files/pdf/whitepaper-using-qt-and-symbian-c-together/view

• Provides a separate library for Symbian that isolates the use of Bluetooth Symbian APIs and provides a Qt like interface for it

• Other resources:– For guidance on maemo see the maemo for mobile document in

http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide• LibLocation

• LibCityinfo

• MCEDev

• ICD2

Write a separate library

Page 52: Nokia Qt SDK in Action

Using platform specific Tools with Qt

Page 53: Nokia Qt SDK in Action

Symbian – platform security demo1

• Run an app in simulator that renames files in c:\sys\bin.

• Run in Symbian emulator and see what happens

Page 54: Nokia Qt SDK in Action

Video

• file:///C:/presentations/Qt_dev_days_2010/symbian/file_delete.htm

Page 55: Nokia Qt SDK in Action

Symbian – platsec demo2

• Run an application with no capabilities on simulator that uses location and network connectivity.

• Run on symbian emulator and see what happens.

Page 56: Nokia Qt SDK in Action

Video

• file:///C:/presentations/Qt_dev_days_2010/symbian/capabilities.htm

Page 57: Nokia Qt SDK in Action

Maemo Platform SDK

• Maemo Application SDK (called MAD) is included in Nokia Qt SDK

• Maemo platform SDK is Scratchbox based

– Hosting OS : Linux

– No Qt Creator integration available.

Page 58: Nokia Qt SDK in Action

Summary

• Nokia Qt SDK 1.0 makes it easy to bring Qt applications to Nokia platforms

– Spicing the SDK up with platform specific features and tools gives you access to (almost) all the features the devices offers + additional tooling

– Symbian signing : Once you‟ve wriggled through the signing jungle once it‟s piece of cake.

• Active install base including Symbian^3: ~100M

– Qt will be preinstalled on all the new Nokia device

• Publishing to Ovi store is free and open for individuals.

• All these great things can only lead to…

Slides are available in http://www.slideshare.net/pkosonen

Page 59: Nokia Qt SDK in Action

Slides are available in http://www.slideshare.net/pkosonen

Time for you to start thinking tricky questions while I prepare for final demo…

Page 60: Nokia Qt SDK in Action

Still got one great demo to proof the power of Qt on Nokia and desktop platforms

Slides are available in http://www.slideshare.net/pkosonen

Page 61: Nokia Qt SDK in Action

Thank you very [email protected]

Slides are available in http://www.slideshare.net/pkosonen

Page 62: Nokia Qt SDK in Action

Publish your app or game to

for for consumers in …..

Page 63: Nokia Qt SDK in Action

…And enter for a chance to win a share of $4M in cash, nearly $6M in marketing

prizes, and 500 Nokia Symbian devices –the biggest single developer competition

ever

Page 64: Nokia Qt SDK in Action

Free Qt Hands-on for N8 WorkshopsLocation Date

Silicon Valley Nov 9-10

Seattle Nov 15-16

Vancouver Nov 18-19

Miami Dec 2-3

Chicago Dec 6-7

Boulder Dec 9-10

Dallas Dec 15-16

For more details visit:

http://www.callingallinnovators.com

/10m/events_and_training.aspx

Page 65: Nokia Qt SDK in Action

Important Links

• http://www.forum.nokia.com/Develop/Qt/Code_examples/

• http://www.forum.nokia.com/Develop/Qt/

• http://doc.qt.nokia.com/4.6/qmake-platform-notes.html#symbian-platform

• http://qt.gitorious.org/qt/pages/Qt463KnownIssues

• http://qt.gitorious.org/qt/pages/SymbianFAQ

• http://developer.symbian.org/wiki/index.php/Using_Qt_with_Standalone_SDKs

• http://developer.symbian.org/wiki/index.php/Qt_&_Symbian_Platform_Security

• http://developer.symbian.org/wiki/index.php/Using_Qt_and_Symbian_C%2B%2B_Together

• http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.html