Download - Nokia Qt SDK in Action_SFO_final
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
1/65
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
http://www.slideshare.net/pkosonenhttp://www.slideshare.net/pkosonen -
8/6/2019 Nokia Qt SDK in Action_SFO_final
2/65
Ingredients are:
1. Overview and demo of Nokia Qt SDK 1.0
2. Taking your Qt app to Nokia platforms usingNokia Qt SDK The topics that you need to know about
Symbian and Maemo and how to handlethose.
3. Publishing to Ovi and Ovi Store SymbianSigning Service
4. Spicing up the soup with platform SDKs When you might want to tap into
platform specific SDKs focusing onSymbian.
Soup of today
Slides are available in http://www.slideshare.net/pkosonen
http://www.slideshare.net/pkosonenhttp://www.slideshare.net/pkosonen -
8/6/2019 Nokia Qt SDK in Action_SFO_final
3/65
Rich told you theopportunity 100 M devices
I will tell you how you reach
that install base
Slides are available in http://www.slideshare.net/pkosonen
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
4/65
What we used to haveWhat we have nowWhere we will be
Slides are available in http://www.slideshare.net/pkosonen
http://www.slideshare.net/pkosonenhttp://www.slideshare.net/pkosonen -
8/6/2019 Nokia Qt SDK in Action_SFO_final
5/65
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
http://www.forum.nokia.com/Qthttp://www.forum.nokia.com/Qt -
8/6/2019 Nokia Qt SDK in Action_SFO_final
6/65
Simulator
Quick launch
Simulate Qt Mobility project features
Scripting possibilities
Skins for different platforms / form-factors
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
7/65
On-device Debugging
Debugging host
Qt Creator
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
8/65
Switching Target Platforms
Select Symbian or Maemo target
Build, deploy and debug
Supports also switching the target
to Remote Compiler or
Symbian Emulator
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
9/65
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)
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
10/65
Coding demo 1//geoflickr, using location API, fetch
//pictures from flickr taken near you.
//run in simulator, N8 & N900
Geoflickr simulator, symbian, maemo
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
11/65
Taking your Qt application to
Nokia platforms
The topics to consider
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
12/65
Taking your app to Nokia
platforms 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
SDK8. 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 SDK6. Create the debian package
7. Distribute
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
13/65
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.
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
14/65
Application features
When taking your applicationfrom desktop to smartphones
dont 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 offeatures.
You might still want to spice up your
application with some platform
specific use cases like home screen.
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
15/65
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 cant 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.x
html
Symbian signed test criteria : http://tiny.symbian.org/testcriteria
http://developer.symbian.org/wiki/index.php/Platform_Security_(Fundamentals_of_Symbian_C++)http://developer.symbian.org/wiki/index.php/Platform_Security_(Fundamentals_of_Symbian_C++)http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtmlhttp://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtmlhttp://tiny.symbian.org/testcriteriahttp://tiny.symbian.org/testcriteriahttp://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtmlhttp://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtmlhttp://developer.symbian.org/wiki/index.php/Platform_Security_(Fundamentals_of_Symbian_C++)http://developer.symbian.org/wiki/index.php/Platform_Security_(Fundamentals_of_Symbian_C++) -
8/6/2019 Nokia Qt SDK in Action_SFO_final
16/65
Capabilities and signingCapability Group Capability Name Self-Signed Open Signed
Online
Open Signed
Offline
Express 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
RestrictedCapabilities CommDD No No Yes No YesDiskAdmin
NetworkControl
MultimediaDD
Device
ManufacturerCapabilities
AllFiles No No No No See below
DRM
TCB
Ovi Store SymbianSigning Service
http://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/Location_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/NetworkServices_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/UserEnvironment_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/ProtServ_Capabilityhttp://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/ReadDeviceData_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/TrustedUI_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/WriteDeviceData_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/DiskAdmin_Capabilityhttp://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/NetworkControl_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/AllFiles_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/DRM_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/TCB_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/TCB_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/DRM_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/AllFiles_Capabilityhttp://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/MultimediaDD_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/NetworkControl_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/DiskAdmin_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/CommDD_Capabilityhttp://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/WriteDeviceData_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/TrustedUI_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/SwEvent_Capabilityhttp://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/SurroundingsDD_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php?title=Capabilities_(Symbian_Signed)/ReadDeviceData_Capability&action=edit&redlink=1http://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/ProtServ_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/PowerMgmt_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/WriteUserData_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/UserEnvironment_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/ReadUserData_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/NetworkServices_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/Location_Capabilityhttp://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)/LocalServices_Capability -
8/6/2019 Nokia Qt SDK in Action_SFO_final
17/65
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
18/65
Figuring out the capabilities
Majority of Qt applications will manage withthe 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
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
19/65
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 += vendorinfo
DEPLOYMENT += examples_deployment
isEmpty(ICON):ICON = $$PWD/qt.svg
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
20/652
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 16MbTARGET.EPOCHEAPSIZE = 0x20000 0x1000000
}
This way the same .pro file would potentially work in otherenvironments as well
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
21/65
Platform security & signing summary
Symbian native apps need to be signed. Neededsigning 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
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
22/65
Packaging your application
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
23/65
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
SDK8. 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 SDK6. Create the debian package
7. Distribute
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
24/65
Publishing Qt apps for maemo
First create the debian package and test it withNokia Qt SDKs maemo tools (MAD) on N900
The debian package created by Nokia Qt SDK isa development version.
To make one for publishing a bit of tweaking is
needed. For details seehttp://wiki.maemo.org/Packaging_a_Qt_application
http://wiki.maemo.org/Packaging_a_Qt_applicationhttp://wiki.maemo.org/Packaging_a_Qt_application -
8/6/2019 Nokia Qt SDK in Action_SFO_final
25/65
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
26/65
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
27/65
It can be big downloadBut as we go forward more
and more devices have Qt
preinstalled
Slides are available in http://www.slideshare.net/pkosonen
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
28/65
Smart installer overview
Scenario is
Sign your application
Create a embedded package that contains
Your application
Smart installer Publish the embedded package
Qt for Symbian SDKs qmake supports automatic creation of the
package.
http://tinyurl.com/SmartInstaller
http://blogs.forum.nokia.com/blog/ovi-publisher-
alert/2010/08/02/qt-content-qa
Embedded.sis
Smart installer.sisApplication.sis
http://tinyurl.com/SmartInstallerhttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://blogs.forum.nokia.com/blog/ovi-publisher-alert/2010/08/02/qt-content-qahttp://tinyurl.com/SmartInstallerhttp://tinyurl.com/SmartInstaller -
8/6/2019 Nokia Qt SDK in Action_SFO_final
29/65
Smart installer and Qt versions
Note; The newest Qt versions may not be available for applicationdistribution 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 youre 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
St t t k t i t ll
http://tinyurl.com/SmartInstallerhttp://tinyurl.com/SmartInstaller -
8/6/2019 Nokia Qt SDK in Action_SFO_final
30/65
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 certificatesyouve 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. Lets go through the creation of package for
Ovi publishing (using Ovi Store Symbian
Signing Service) next
C ti th k f O i
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
31/65
Creating the package for Ovi
publishing
Planning to publish collindingmice (which Idefinitely own and have rights to publish ;)
qmake collidingmice.pro
make release-gcce
make sis QT_SIS_CERTIFICATE=publisherid.cerQT_SIS_KEY=publisherid.key
make installer_sisQT_SIS_CERTIFICATE=publisherid.cer
QT_SIS_KEY=publisherid.key
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
32/65
To support Symbian^3
After youve 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
http://bugreports.qt.nokia.com/browse/QTBUG-13897http://bugreports.qt.nokia.com/browse/QTBUG-13897http://bugreports.qt.nokia.com/browse/QTBUG-13897http://bugreports.qt.nokia.com/browse/QTBUG-13897 -
8/6/2019 Nokia Qt SDK in Action_SFO_final
33/65
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
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
34/65
Enabling smart installer
Video :file:///C:/presentations/Qt_dev_days_2010/symb
ian/smart_installer_usage_part1.htm
http://c/presentations/Qt_dev_days_2010/symbian/smart_installer_usage_part1.htmhttp://c/presentations/Qt_dev_days_2010/symbian/smart_installer_usage_part1.htmhttp://c/presentations/Qt_dev_days_2010/symbian/smart_installer_usage_part1.htmhttp://c/presentations/Qt_dev_days_2010/symbian/smart_installer_usage_part1.htm -
8/6/2019 Nokia Qt SDK in Action_SFO_final
35/65
Publishing
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
36/65
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
SDK8. 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 SDK6. Create the debian package
7. Distribute the .deb
Ovi Store: 6 numbers you
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
37/65
Ovi Store: 6 numbers you
should know
2.5Million
downloads daily
30Languages
91operators
135+devices 190+countries 90%Mobile consumers
w/local Store
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
38/65
Lets make it easy to put your app in the hands of
millions of consumers
Consumers $FinancialEnablers
Developers
+ + =
Our goal is simple
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
39/65
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
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
40/65
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/
http://www.forum.nokia.com/Distribute/Ovi_Store_guidelines.xhtmlhttps://publish.ovi.com/register/country_and_account_typehttps://publish.ovi.com/register/country_and_account_typehttps://publish.ovi.com/register/country_and_account_typehttp://www.forum.nokia.com/Distribute/Ovi_Store_guidelines.xhtmlhttp://www.forum.nokia.com/Distribute/Ovi_Store_guidelines.xhtmlhttp://www.forum.nokia.com/Distribute/Ovi_Store_guidelines.xhtml -
8/6/2019 Nokia Qt SDK in Action_SFO_final
41/65
Publish to Ovi - registration
file:///C:/presentations/Qt_dev_days_2010/symbian/Register_and_publish.htm
http://c/presentations/Qt_dev_days_2010/symbian/Register_and_publish.htmhttp://c/presentations/Qt_dev_days_2010/symbian/Register_and_publish.htmhttp://c/presentations/Qt_dev_days_2010/symbian/Register_and_publish.htmhttp://c/presentations/Qt_dev_days_2010/symbian/Register_and_publish.htm -
8/6/2019 Nokia Qt SDK in Action_SFO_final
42/65
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 intoOvi Store
http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml
mailto:[email protected]://developer.symbian.org/wiki/index.php/Symbian_Signed_Test_Criteria_V4_Wiki_versionhttp://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtmlhttp://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtmlhttp://developer.symbian.org/wiki/index.php/Symbian_Signed_Test_Criteria_V4_Wiki_versionhttp://developer.symbian.org/wiki/index.php/Symbian_Signed_Test_Criteria_V4_Wiki_versionhttp://developer.symbian.org/wiki/index.php/Symbian_Signed_Test_Criteria_V4_Wiki_versionmailto:[email protected] -
8/6/2019 Nokia Qt SDK in Action_SFO_final
43/65
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
44/65
5. Spicing up the development
environment with platformspecific tools
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
45/65
Tools and SDKs
Symbian SDK
Native APIsPlug-in APIsDocumentationEmulator
+ additional tooling inCarbide
Qt libraries for Symbian
Framework-only Documentation
Qt 4.6.3Qt MobilitySimulatorOn-device debuggingSimplifiedLimited Symbian SDKMaemo 5 SDK (MADDE)
Nokia Qt SDK
Enough for manyapplications
For extendedaccess
Cases where Symbian SDK is
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
46/65
Cases where Symbian SDK is
needed
Cant 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 appf.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
http://www.forum.nokia.com/symbianhttp://www.forum.nokia.com/symbian -
8/6/2019 Nokia Qt SDK in Action_SFO_final
47/65
Using platform specific APIs from Qt
Paradigms for platform specific
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
48/65
Paradigms for platform specific
code
1. Same source files, #ifdef platform specific code2. Isolate platform specific parts to separate files
to include
3. Write a separate library
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
49/65
Code example 1
#include "signer.h"
#ifdef Q_OS_SYMBIAN
#include
#else
#include
#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(signingSecret.constData()),
signingSecret.length());
TBuf8 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(signatureBase.constData()),
signatureBase.length());
TBuf8 baseString;
baseString.Copy(basePtr);
// Create the raw signature:
TPtrC8 hashedSignature(hmac->Hash(baseString));
signature = QByteArray(reinterpret_cast(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(signatureBase.constData()),signatureBase.length(), md, &md_len);
signature = QByteArray(reinterpret_cast(md), md_len);
delete[] md;
#endif
return signature.toBase64();
}
same source files, #ifdef platform specific code
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
50/65
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 ReadUserData
UserEnvironment \
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
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
51/65
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
52/65
Using platform specific Tools with
Qt
Symbian platform security
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
53/65
Symbian platform security
demo1
Run an app in simulator that renames files in
c:\sys\bin.
Run in Symbian emulator and see what
happens
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
54/65
Video
file:///C:/presentations/Qt_dev_days_2010/symbian/file_delete.htm
Symbian platsec demo2
http://c/presentations/Qt_dev_days_2010/symbian/file_delete.htmhttp://c/presentations/Qt_dev_days_2010/symbian/file_delete.htmhttp://c/presentations/Qt_dev_days_2010/symbian/file_delete.htmhttp://c/presentations/Qt_dev_days_2010/symbian/file_delete.htm -
8/6/2019 Nokia Qt SDK in Action_SFO_final
55/65
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.
id
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
56/65
Video
file:///C:/presentations/Qt_dev_days_2010/symbian/capabilities.htm
l f
http://c/presentations/Qt_dev_days_2010/symbian/capabilities.htmhttp://c/presentations/Qt_dev_days_2010/symbian/capabilities.htmhttp://c/presentations/Qt_dev_days_2010/symbian/capabilities.htmhttp://c/presentations/Qt_dev_days_2010/symbian/capabilities.htm -
8/6/2019 Nokia Qt SDK in Action_SFO_final
57/65
Maemo Platform SDK
Maemo Application SDK (called MAD) is includedin Nokia Qt SDK
Maemo platform SDK is Scratchbox based
Hosting OS : Linux
No Qt Creator integration available.
S
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
58/65
Summary
Nokia Qt SDK 1.0 makes it easy to bring Qtapplications 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 youve wriggled through the signingjungle once its 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 forindividuals.
All these great things can only lead to
Slides are available in http://www.slideshare.net/pkosonen
http://www.slideshare.net/pkosonenhttp://www.slideshare.net/pkosonen -
8/6/2019 Nokia Qt SDK in Action_SFO_final
59/65
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
60/65
Still got one great demoto proof the power of Qt
on Nokia and desktop
platformsSlides are available in http://www.slideshare.net/pkosonen
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
61/65
Thank you very [email protected]
Slides are available in http://www.slideshare.net/pkosonen
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
62/65
Publish your app or game to
for for
consumers in
..
http://qt.nokia.com/ -
8/6/2019 Nokia Qt SDK in Action_SFO_final
63/65
And enter for a chance to win a share of
$4M in cash, nearly $6M in marketingprizes, and 500 Nokia Symbian devices
the biggest single developer competitionever
Free Qt Hands-on for N8
-
8/6/2019 Nokia Qt SDK in Action_SFO_final
64/65
Free Qt Hands on for N8
Workshops
Location DateSilicon 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
Important Links
http://www.callingallinnovators.com/10m/events_and_training.aspxhttp://www.callingallinnovators.com/10m/events_and_training.aspxhttp://www.callingallinnovators.com/10m/events_and_training.aspxhttp://www.callingallinnovators.com/10m/events_and_training.aspx -
8/6/2019 Nokia Qt SDK in Action_SFO_final
65/65
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
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.htmlhttp://qt.gitorious.org/qt/pages/Qt463KnownIssueshttp://qt.gitorious.org/qt/pages/SymbianFAQhttp://developer.symbian.org/wiki/index.php/Using_Qt_with_Standalone_SDKshttp://developer.symbian.org/wiki/index.php/Qt_&_Symbian_Platform_Securityhttp://developer.symbian.org/wiki/index.php/Using_Qt_and_Symbian_C++_Togetherhttp://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.htmlhttp://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.htmlhttp://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.htmlhttp://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.htmlhttp://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.htmlhttp://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.htmlhttp://developer.symbian.org/wiki/index.php/Using_Qt_and_Symbian_C++_Togetherhttp://developer.symbian.org/wiki/index.php/Qt_&_Symbian_Platform_Securityhttp://developer.symbian.org/wiki/index.php/Using_Qt_with_Standalone_SDKshttp://qt.gitorious.org/qt/pages/SymbianFAQhttp://qt.gitorious.org/qt/pages/Qt463KnownIssueshttp://doc.qt.nokia.com/4.6/qmake-platform-notes.htmlhttp://doc.qt.nokia.com/4.6/qmake-platform-notes.htmlhttp://doc.qt.nokia.com/4.6/qmake-platform-notes.htmlhttp://doc.qt.nokia.com/4.6/qmake-platform-notes.htmlhttp://doc.qt.nokia.com/4.6/qmake-platform-notes.htmlhttp://doc.qt.nokia.com/4.6/qmake-platform-notes.htmlhttp://doc.qt.nokia.com/4.6/qmake-platform-notes.htmlhttp://www.forum.nokia.com/Develop/Qt/http://www.forum.nokia.com/Develop/Qt/Code_examples/