SlideShare a Scribd company logo
1 of 28
Download to read offline
Shipping mobile applications using
              Qt for Symbian


              Espen Riskedal
              Teamlead - Qt for Symbian


Company Confidential
1
Agenda

• Developing applications using Qt Creator
• Building and deploying to your phone
• Signing the application with Symbian Signed
• Getting it on the OVI store and more




Company Confidential
2
About me

• Trolltech since 2002
• Qt developer (Linux mostly)
• Qt release manager (3.1.x – 4.1.x)
• Teamlead Qt for Windows CE
• Teamlead Qt for Symbian
• Enjoyed the pool yesterday




Company Confidential
3
Who is Qt and what is he doing on my
                mobile phone?




Company Confidential
4
Who is Symbian and what is he doing on
                my mobile phone?

                             • Symbian smartphone market share
                                • APAC 80%
                                • EMEA 60%
                                • Latin America with 40%
                                • US nothing :D
                                • Canalys Smart Phone Analysis, 2008
                                  and Q109 shipment estimates.
                                • Yes it's «old» numbers but I couldn't
                                  be bothered to google more



Company Confidential
5
Installing Qt

• Install needed tools for normal
  S60/Symbian development
• Install Qt SDK for Windows
     • Includes Qt Creator
     • Includes Qt for Windows
• Install Qt for Symbian




Company Confidential
6
Developing with Qt Creator




                       • <do simple app dev in Creator>
Company Confidential
7
Compiling for your phone

• Setup the S60/Symbian SDK (if not auto-detected)
• Change the Default Qt version
     • or
• Add another build configuration




Company Confidential
8
Deploying to your phone: CMD

• Open Qt for Symbian Command Prompt
• set QT_SIS_OPTIONS=-i
• make sis




Company Confidential
9
Deploying to your phone: IDE
                  • Enter Projects Mode in Qt Creator:




                                                         •Experimental
                                                         •USB only
                                                         •App TRK needed




Company Confidential
10
Debugging on your phone

• Use Carbide
     • or
• Wait for Qt office in Berlin to fix it in Qt Creator :D




Company Confidential
11
BossaTetrix

• Stolen from examples/widgets/tetrix
• Massaged it to fit a smaller screen
• Added a some simple gesture hacks
     • Coming versions of Symbian will
       have multitouch and Qt already
       supports this




Company Confidential
12
BossaTetrix: Gesture hack
      void TetrixBoard::mouseReleaseEvent(QMouseEvent *event) {
          if (event->button() == Qt::LeftButton) {
              QPoint movement = event->pos() - mousePressedPosition;

                  int length = movement.manhattanLength();

                  int angle = atan2(qreal(movement.y()),qreal(movement.x()))*180/PI;

                  ... show in Qt Creator ...




Company Confidential
13
BossaTetrix: In action




Company Confidential
14
The Symbian security model

• Capabilities
     • Encoded in the .dll or .exe
     • Around 20 of them
     • A calling .dll or .exe must have the same or less capabilities
• Certificates
     • Digital pair of a key and a certificate that can sign a .sis file
     • Examples: Self-signed, RnD Signed, Symbian Signed, Nokia Signed
• Phone
     • Has a mapping between certificates and capabilites
     • Self-signed usually only grants 5 capabilites
     • Symbian Signed can grant many more across all Symbian devices


Company Confidential
15
Express Signed: Why bother?

• The good
     • Less prompts
     • Proves the software is genuine
     • Grants more capabilites
     • Works on all Symbian devices
• The bad
     • Costs money
     • Hard to automate




Company Confidential
16
Express Signed: Set the UID3

• Sign up at symbiansigned.com
     • Free
• Reserve a UID for your application (0x2... protected range)
     • Free
• Edit your .pro file to use it
     • symbian: TARGET.UID3 = 0x2...
• Rebuild project
     • qmake
     • make release-gcce




Company Confidential
17
Express Signed: Publisher ID

• Get a PublisherID at www.trustcenter.de
     • Costs 200USD
     • Convert the .p12 to a .cer and a .key
• Sign the .sis file with the PublisherID
     • QT_SIS_CERTIFICATE=c:fooyour_publisherid.cer
     • QT_SIS_KEY=c:fooyour_publisherid.key
     • make sis




Company Confidential
18
Express Signed: Uploading

• Zip the .sis together with a readme.txt
     • One line explaining what the .sis is
• Buy a ContentID
     • Costs 10USD
• Upload the .zip and Express Sign it
     • Fill in the form
     • Say «PASS» on all answers
     • Wait 5 minutes




Company Confidential
19
How the Smart Installer works




Company Confidential
20
Smart Installer and Qt

• Install the Nokia Smart Installer 0.9 (beta) on top of Qt 4.6.2 for Symbian
• Change UID of foo_installer.pkg to:
     • #{"foo installer"},(0x2002CCCF),1,0,0
• Create the wrapper .sis:
     • make installer_sis
• Zip the wrapper .sis file with a readme.txt and Express Sign it
     • Costs another 10USD at the moment




Company Confidential
21
Content of «Smart» application




Company Confidential
22
«Smart» Qt application in action




Company Confidential
23
Getting on the OVI store

• Sign up as an OVI Publisher
     • Costs 50€
     • Wait for approval
• Upload application
     • Must be Express Signed
     • Add thumbnails
     • Set price/free
     • Check the «Qt» button (coming)
• Wait for approval
     • Praying is optional
• Profit and/or fame!

Company Confidential
24
I want to get on all the stores!

• http://horizon.symbian.org/
     • Ovi Store by Nokia
     • Samsung Applications Store
     • AT&T’s Media Mall
     • China Mobile
     • Handango
     • Orange
     • Sony Ericsson’s Playnow


                                     http://horizon.symbian.or
                                     g


Company Confidential
25
BossaTetrix download


                 http://bit.ly/espenbossatalk




Company Confidential
26
Summary

• Install Qt SDK for Windows
• Install Qt for Symbian
     • Get both at: http://qt.nokia.com/
• Install Nokia Smart Installer (still in beta) on top
• Express Sign it
• Upload to OVI
     • OVI Store is ready for Qt apps once Smart Installer is completed




Company Confidential
27
Thanks! Any questions?



           •Email: espen.riskedal@nokia.com
           •Twitter: @snowpong




Company Confidential
28

More Related Content

What's hot

Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conferenceNokia
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhereNokia
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedNokia
 
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...account inactive
 
Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Montreal Python
 
Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11MobileMonday Estonia
 
Dominik Gusenbauer Qt Mobility
Dominik Gusenbauer  Qt MobilityDominik Gusenbauer  Qt Mobility
Dominik Gusenbauer Qt MobilityNokiaAppForum
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the airNokia
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Nokia
 
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Qt
 
Nokia Developer Offering Update
Nokia Developer Offering UpdateNokia Developer Offering Update
Nokia Developer Offering UpdateJanaina Pilomia
 
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.DALEZ
 
QtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with QtQtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with QtJohan Thelin
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneAndreas Jakl
 
GENIVI Development Platform, la plataforma para desarrolladores de software l...
GENIVI Development Platform, la plataforma para desarrolladores de software l...GENIVI Development Platform, la plataforma para desarrolladores de software l...
GENIVI Development Platform, la plataforma para desarrolladores de software l...Agustin Benito Bethencourt
 
Modern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtModern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtQt
 

What's hot (20)

Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhere
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn Stripped
 
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
 
Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9
 
Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11
 
Dominik Gusenbauer Qt Mobility
Dominik Gusenbauer  Qt MobilityDominik Gusenbauer  Qt Mobility
Dominik Gusenbauer Qt Mobility
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the air
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)
 
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
 
Nokia Developer Offering Update
Nokia Developer Offering UpdateNokia Developer Offering Update
Nokia Developer Offering Update
 
Introduction to Qt programming
Introduction to Qt programmingIntroduction to Qt programming
Introduction to Qt programming
 
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
 
QtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with QtQtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with Qt
 
Nicholas Foo
Nicholas FooNicholas Foo
Nicholas Foo
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
 
GENIVI Development Platform, la plataforma para desarrolladores de software l...
GENIVI Development Platform, la plataforma para desarrolladores de software l...GENIVI Development Platform, la plataforma para desarrolladores de software l...
GENIVI Development Platform, la plataforma para desarrolladores de software l...
 
Modern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qtModern microcontroller (mcu) application development with qt
Modern microcontroller (mcu) application development with qt
 

Similar to Shipping Mobile Applications Using Qt for Symbian

Mobile Development with Qt for Symbian
Mobile Development with Qt for SymbianMobile Development with Qt for Symbian
Mobile Development with Qt for Symbianaccount inactive
 
DEF CON 27 - workshop - RICHARD GOLD - mind the gap
DEF CON 27 - workshop - RICHARD GOLD - mind the gapDEF CON 27 - workshop - RICHARD GOLD - mind the gap
DEF CON 27 - workshop - RICHARD GOLD - mind the gapFelipe Prado
 
Ci for i-os-codemash-01.2013
Ci for i-os-codemash-01.2013Ci for i-os-codemash-01.2013
Ci for i-os-codemash-01.2013Kevin Munc
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS developmentCong Nguyen
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIndyMobileNetDev
 
Troubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the RescueTroubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the RescueDevOps.com
 
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...Cloud Native Rosenheim Meetup
 
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
GitLab Remote Meetup:  Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...GitLab Remote Meetup:  Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...Nico Meisenzahl
 
Serverless and you - where do i run my stateless code
Serverless and you  - where do i run my stateless codeServerless and you  - where do i run my stateless code
Serverless and you - where do i run my stateless codeGabriela Ferrara
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...Radu Vunvulea
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt introISBVN
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
Embedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphoneEmbedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphoneChris Simmonds
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaAllan Cleysson
 

Similar to Shipping Mobile Applications Using Qt for Symbian (20)

Mobile Development with Qt for Symbian
Mobile Development with Qt for SymbianMobile Development with Qt for Symbian
Mobile Development with Qt for Symbian
 
Symbian OS
Symbian OSSymbian OS
Symbian OS
 
DEF CON 27 - workshop - RICHARD GOLD - mind the gap
DEF CON 27 - workshop - RICHARD GOLD - mind the gapDEF CON 27 - workshop - RICHARD GOLD - mind the gap
DEF CON 27 - workshop - RICHARD GOLD - mind the gap
 
Ci for i-os-codemash-01.2013
Ci for i-os-codemash-01.2013Ci for i-os-codemash-01.2013
Ci for i-os-codemash-01.2013
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS development
 
Develop Your Own Bitcoin Wallet App
Develop Your Own Bitcoin Wallet AppDevelop Your Own Bitcoin Wallet App
Develop Your Own Bitcoin Wallet App
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual Studio
 
Troubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the RescueTroubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the Rescue
 
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
 
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
GitLab Remote Meetup:  Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...GitLab Remote Meetup:  Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
 
Serverless and you - where do i run my stateless code
Serverless and you  - where do i run my stateless codeServerless and you  - where do i run my stateless code
Serverless and you - where do i run my stateless code
 
Nokia Symbian
Nokia SymbianNokia Symbian
Nokia Symbian
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 
Kivy report
Kivy reportKivy report
Kivy report
 
Bill volk
Bill volkBill volk
Bill volk
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt intro
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt intro
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Embedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphoneEmbedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphone
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataforma
 

More from account inactive

Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Applicationaccount inactive
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics Viewaccount inactive
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integrationaccount inactive
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systemsaccount inactive
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CEaccount inactive
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applicationsaccount inactive
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Frameworkaccount inactive
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Nativeaccount inactive
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsaccount inactive
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qtaccount inactive
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)account inactive
 
Copy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with QtCopy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with Qtaccount inactive
 
The Next Generation Qt Item Views
The Next Generation Qt Item ViewsThe Next Generation Qt Item Views
The Next Generation Qt Item Viewsaccount inactive
 
Optimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based ApplicationsOptimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based Applicationsaccount inactive
 
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization SoftwareCase Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Softwareaccount inactive
 

More from account inactive (20)

The Future of Qt Widgets
The Future of Qt WidgetsThe Future of Qt Widgets
The Future of Qt Widgets
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Application
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics View
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integration
 
Qt Kwan-Do
Qt Kwan-DoQt Kwan-Do
Qt Kwan-Do
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systems
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applications
 
Qt Creator Bootcamp
Qt Creator BootcampQt Creator Bootcamp
Qt Creator Bootcamp
 
Qt Widget In-Depth
Qt Widget In-DepthQt Widget In-Depth
Qt Widget In-Depth
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Native
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIs
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qt
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
 
The Mobility Project
The Mobility ProjectThe Mobility Project
The Mobility Project
 
Copy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with QtCopy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with Qt
 
The Next Generation Qt Item Views
The Next Generation Qt Item ViewsThe Next Generation Qt Item Views
The Next Generation Qt Item Views
 
Optimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based ApplicationsOptimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based Applications
 
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization SoftwareCase Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Shipping Mobile Applications Using Qt for Symbian

  • 1. Shipping mobile applications using Qt for Symbian Espen Riskedal Teamlead - Qt for Symbian Company Confidential 1
  • 2. Agenda • Developing applications using Qt Creator • Building and deploying to your phone • Signing the application with Symbian Signed • Getting it on the OVI store and more Company Confidential 2
  • 3. About me • Trolltech since 2002 • Qt developer (Linux mostly) • Qt release manager (3.1.x – 4.1.x) • Teamlead Qt for Windows CE • Teamlead Qt for Symbian • Enjoyed the pool yesterday Company Confidential 3
  • 4. Who is Qt and what is he doing on my mobile phone? Company Confidential 4
  • 5. Who is Symbian and what is he doing on my mobile phone? • Symbian smartphone market share • APAC 80% • EMEA 60% • Latin America with 40% • US nothing :D • Canalys Smart Phone Analysis, 2008 and Q109 shipment estimates. • Yes it's «old» numbers but I couldn't be bothered to google more Company Confidential 5
  • 6. Installing Qt • Install needed tools for normal S60/Symbian development • Install Qt SDK for Windows • Includes Qt Creator • Includes Qt for Windows • Install Qt for Symbian Company Confidential 6
  • 7. Developing with Qt Creator • <do simple app dev in Creator> Company Confidential 7
  • 8. Compiling for your phone • Setup the S60/Symbian SDK (if not auto-detected) • Change the Default Qt version • or • Add another build configuration Company Confidential 8
  • 9. Deploying to your phone: CMD • Open Qt for Symbian Command Prompt • set QT_SIS_OPTIONS=-i • make sis Company Confidential 9
  • 10. Deploying to your phone: IDE • Enter Projects Mode in Qt Creator: •Experimental •USB only •App TRK needed Company Confidential 10
  • 11. Debugging on your phone • Use Carbide • or • Wait for Qt office in Berlin to fix it in Qt Creator :D Company Confidential 11
  • 12. BossaTetrix • Stolen from examples/widgets/tetrix • Massaged it to fit a smaller screen • Added a some simple gesture hacks • Coming versions of Symbian will have multitouch and Qt already supports this Company Confidential 12
  • 13. BossaTetrix: Gesture hack void TetrixBoard::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { QPoint movement = event->pos() - mousePressedPosition; int length = movement.manhattanLength(); int angle = atan2(qreal(movement.y()),qreal(movement.x()))*180/PI; ... show in Qt Creator ... Company Confidential 13
  • 15. The Symbian security model • Capabilities • Encoded in the .dll or .exe • Around 20 of them • A calling .dll or .exe must have the same or less capabilities • Certificates • Digital pair of a key and a certificate that can sign a .sis file • Examples: Self-signed, RnD Signed, Symbian Signed, Nokia Signed • Phone • Has a mapping between certificates and capabilites • Self-signed usually only grants 5 capabilites • Symbian Signed can grant many more across all Symbian devices Company Confidential 15
  • 16. Express Signed: Why bother? • The good • Less prompts • Proves the software is genuine • Grants more capabilites • Works on all Symbian devices • The bad • Costs money • Hard to automate Company Confidential 16
  • 17. Express Signed: Set the UID3 • Sign up at symbiansigned.com • Free • Reserve a UID for your application (0x2... protected range) • Free • Edit your .pro file to use it • symbian: TARGET.UID3 = 0x2... • Rebuild project • qmake • make release-gcce Company Confidential 17
  • 18. Express Signed: Publisher ID • Get a PublisherID at www.trustcenter.de • Costs 200USD • Convert the .p12 to a .cer and a .key • Sign the .sis file with the PublisherID • QT_SIS_CERTIFICATE=c:fooyour_publisherid.cer • QT_SIS_KEY=c:fooyour_publisherid.key • make sis Company Confidential 18
  • 19. Express Signed: Uploading • Zip the .sis together with a readme.txt • One line explaining what the .sis is • Buy a ContentID • Costs 10USD • Upload the .zip and Express Sign it • Fill in the form • Say «PASS» on all answers • Wait 5 minutes Company Confidential 19
  • 20. How the Smart Installer works Company Confidential 20
  • 21. Smart Installer and Qt • Install the Nokia Smart Installer 0.9 (beta) on top of Qt 4.6.2 for Symbian • Change UID of foo_installer.pkg to: • #{"foo installer"},(0x2002CCCF),1,0,0 • Create the wrapper .sis: • make installer_sis • Zip the wrapper .sis file with a readme.txt and Express Sign it • Costs another 10USD at the moment Company Confidential 21
  • 22. Content of «Smart» application Company Confidential 22
  • 23. «Smart» Qt application in action Company Confidential 23
  • 24. Getting on the OVI store • Sign up as an OVI Publisher • Costs 50€ • Wait for approval • Upload application • Must be Express Signed • Add thumbnails • Set price/free • Check the «Qt» button (coming) • Wait for approval • Praying is optional • Profit and/or fame! Company Confidential 24
  • 25. I want to get on all the stores! • http://horizon.symbian.org/ • Ovi Store by Nokia • Samsung Applications Store • AT&T’s Media Mall • China Mobile • Handango • Orange • Sony Ericsson’s Playnow http://horizon.symbian.or g Company Confidential 25
  • 26. BossaTetrix download http://bit.ly/espenbossatalk Company Confidential 26
  • 27. Summary • Install Qt SDK for Windows • Install Qt for Symbian • Get both at: http://qt.nokia.com/ • Install Nokia Smart Installer (still in beta) on top • Express Sign it • Upload to OVI • OVI Store is ready for Qt apps once Smart Installer is completed Company Confidential 27
  • 28. Thanks! Any questions? •Email: espen.riskedal@nokia.com •Twitter: @snowpong Company Confidential 28