Qt on symbian_3_v4


Published on

My talk from the Nokia Developer Summit this year: Qt on Symbian^3. All you need to know to start developing for the Nokia N8 and other Symbian^3 devices using Qt.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • QtOpenGL and QtConcurrent missing from 4.6.3Qt 4.6.3 is embeddedQt Mobility is not
  • QtOpenVG -> hw acceleration for Qtvectorgraphics
  • QtOpenGL and QtConcurrent missing from 4.6.3Qt 4.6.3 is embeddedQt Mobility is not
  • QtOpenGLandQtConcurrentmissingfrom 4.6.3Qt 4.6.3 is embeddedQtMobility is notCheck for BC
  • Replacepicturewith ENIACAnimatedOviIcon -> Arrow to indicate downloadNokia Smart Installer for Symbian (or Smart Installer, for short) is a tool that ensures that the installed 3rd party applications have always access to the required versions of their dependent libraries. Smart Installer is split into two components: smartinstaller and smartinstaller ADM (for ‘application dependency manager’). Smart Installer is a small component that will be embedded with the application to a wrapper package; it ensures that a recent version of ADM is installed on the device and installs/upgrades ADM, if necessary. Because of the nature of Smart Installer functionality, network connection is always required during installation. See Section 1.2, ‘Smart Installer network usage’, for a detailed description about network usage. Smart Installer is invoked during the application installation process on the Symbian device. It immediately fetches the latest ADM from the server and runs it. ADM checks whether the required components (dependencies) are already installed on the device and downloads and installs, or upgrades them, if needed. Information about the application’s dependencies is extracted from the application sis file, where each dependency is defined using the standard dependency statements as defined in the pkg file format. For Qt, the dependencies are automatically generated during the build process, but developers can manually adjust them as well. After the required dependencies have been successfully installed to the device, the application installation process is invoked. This follows the normal UI flow of application installation on a Symbian device.     1. Select Start > Nokia Qt SDK > Symbian > Qt for Symbian Command Prompt to open a command prompt with the appropriate environment set.    2. Change directory to your project folder.    3. To build the application executable, enter the following command: qmake && make release-gcce    4. To build and sign your application SIS file with your Ovi Publisher key and certificate, enter the following command:make sis QT_SIS_CERTIFICATE=developer.cer QT_SIS_KEY=developer.keyHere, the publisher certificate and key are located in the current folder. If they are located in another folder, specify the path as well as the filename.    5. To package Nokia Smart Installer with your application and sign it:a. Open the wrapper package in an editor. It will be named <myapp>_installer.pkg.b. Replace the testing UID A000… with the reserved wrapper package UID 0x2002CCCF.c. Replace the “c” in the install file destination path with a “!” and then save the file; eg:"X:/proj/myapp/myapp.sis" – "c:private2002CCCEimportmyapp.sis""X:/proj/myapp/myapp.sis" - "!:private2002CCCEimportmyapp.sis" d. Then enter the following command: make installer_sis QT_SIS_CERTIFICATE=developer.cer QT_SIS_KEY=developer.key e. A “wrapper” SIS is generated with a name like <myapp>_installer.sis      6. Submit this wrapper SIS file to Publish to Ovi.
  • - Talkabout TRK (installing to Device)
  • Gestures =flickpinch to zoom, etc.
  • Gestures =flickpinch to zoom, etc.
  • 19.6 -Syntax-Operator support-In app purchase20New intake system!-Redesign of publish (user testing, personas, epics, onterviews with pubs)-easiser faster amnd simplified-flexibility with pricing and country overrides (price promotion ina single or few markets)New rreporting interface (presentation of content, data shown/metrics)-payout archives simplify accounting Completely automated and integrated to processing tool make cycle times faster
  • Reference a fewapps: Wikitude, Qik, AngryBirds
  • QtOpenGL and QtConcurrent missing from 4.6.3Qt 4.6.3 is embeddedQt Mobility is not
  • qt_symbian_throwIfError()q_check_ptr(),QT_TRAP_THROWING(), qt_symbian_exception2Error(), qt_symbian_exception2LeaveL(), QT_TRYCATCH_ERROR(), QT_TRYCATCH_LEAVING().
  • Demo:Pinch Zoom ontheCollisionDetection demo (Multitouch)
  • Qt on symbian_3_v4

    1. 1. Qt on Symbian^3<br />Daniel Rocha<br />
    2. 2. About Me<br /><ul><li>Sr. Technology Expert withbased in Mountain View, CA
    3. 3. 5 years in Nokia
    4. 4. I’ve done a bit of everything
    5. 5. (Perl, C/C++, Java, Symbian C++, Qt)</li></li></ul><li>Exactly! I’m from Brazil!<br />Can you guesswhere I’m from?<br />
    6. 6. Goals for this session:To learn how to use Qt to develop Symbian^3 apps – TODAY!<br />
    7. 7. Today’s TopicsWhat’s availableUsing Qt on Symbian^3Extending Qt’s reach on Symbian^3Questions & Answers <br />
    8. 8. What’s Available<br />
    9. 9. The Big Picture<br />Tools<br />Qt 4.6.3<br />Mobility 1.0.2<br />Nokia QtSDK<br />Qt Simulator<br />AppTRK<br />Core Qt modules<br />Covers mobile use cases not originally available in the standard Qt distribution<br />
    10. 10. QtSupport<br />Allyouneed is in the Nokia Qt SDK<br />Qt 4.6.3 comes embeddedonS^3 devices<br />QtOpenGLandQtConcurrentnotsupported<br />QtOpenVGonlysupportedonSymbian^3<br />More details: http://qt.gitorious.org/qt/pages/SymbianFAQ<br />
    11. 11. Qt Mobility API<br />QtMobility 1.0.2 (final)<br />Multimedia<br />Location<br />Contacts<br />Messaging<br />Service Framework <br /><ul><li>Bearer Management
    12. 12. Versit
    13. 13. Publish and Subscribe
    14. 14. System Information
    15. 15. Sensors</li></ul>http://qt.nokia.com/developer/new-qt-apis/<br />
    16. 16. Qt Mobility API<br />Qt Mobility 1.1 (TP)<br />Camera<br />Maps & Navigation <br />Telephony<br />Organizer<br />Landmarks<br /><ul><li>Document Gallery
    17. 17. Feedback
    18. 18. Versit/Organizer Versit
    19. 19. Service Framework </li></ul>Use the Smart Installer in your applications with Qt Mobility<br />
    20. 20. Tools & SDKs – Smart Installer<br />2Check<br />4Deps<br />3Qt<br />1Adm<br />your_app.sis<br />
    21. 21. Using Qt on Symbian^3<br />
    22. 22. Using Qt on Symbian^3<br />Nokia Hardware X<br />Nokia Qt SDK w/ Symbian target<br />Add code<br />Run on device<br />Debug on device<br />Add Mobility<br />Tweak project files<br />Add Smart Installer<br />Distribute<br />
    23. 23. Using Qt on Symbian^3<br />
    24. 24. Using Qt on Symbian^3<br />Security<br />Platform Security<br />(Capabilities)<br />Symbiansigned<br />
    25. 25. Using Qt on Symbian^3<br />UI<br />Misc<br />Gestures*<br />Multitouch*<br />Softkeys<br />Orientation<br />Styling<br />API support<br />Connectivity<br />Device support<br />Smart Installer<br />* New on Symbian^3<br />
    26. 26. Extending Qt’s Reach on Symbian^3<br />
    27. 27. UseAPIsthatdon’texist in Qt<br />Extend Qt APIs with extra features<br />Squeeze more performance from Qt applications<br />Extending Qt’s Reach with Native Code<br />
    28. 28. Qt’s Reach on Symbian^3<br />Base Services<br />Kernel Services & Hardware Abstraction<br />Qt application<br />Qt 4.6.3 + Mobility 1.0.2<br />Open C/C++<br />Symbian OS<br />Generic OSServices<br />Comm. Services<br />Multimedia &GraphicsServices<br />ConnectivityServices<br />Telephony<br />Short Link & Serial<br />Networking<br />
    29. 29. Qt Modules and Platform APIs<br />Symbian C++ APIscover a wider range of use cases. Ex.:<br />VoIPaudioservices<br />Devicepersonalization (e.g.: home screen, screensaver, settings)<br />Multimedia (audio, video, camera)<br />Mostgaps are being / willsoonbeaddressedbyQtMobilityproject<br />Ifyouwant more flexibility, you are free to use SymbiannativeAPIs<br />Getting to knowtheplatformAPIshelpsyougo a stepfurther<br />
    30. 30. Tools and SDKs<br />Symbian SDK <br />Nokia Qt SDK<br />Native APIs<br />Plug-in APIs<br />Documentation<br />Emulator<br />Qt 4.6.3<br />QtMobility<br />Simulator<br />On-devicedebugging<br />Simplified<br />Symbian SDK<br />For extendedaccess<br />Qt libraries for Symbian<br /><ul><li>Framework-only
    31. 31. Documentation</li></ul>Enough formany applications<br />
    32. 32. Demo time<br />
    33. 33. Best Practices<br />Isolate platform code from Qt code – PIMPL<br />Wrap calls to asynchronous Symbian code into Active Objects and emit signals from the AO back to Qt code (the public pointer)<br />Take advantage of Symbian APIs that provide callbacks<br />Pay attention to exception handling – barrier functions<br />Conversion between Qt and Symbian types<br />
    34. 34. Important Links<br />http://www.forum.nokia.com/Develop/Qt/Code_examples/<br />http://www.forum.nokia.com/Develop/Qt/<br />http://doc.qt.nokia.com/4.6/qmake-platform-notes.html#symbian-platform<br />http://qt.gitorious.org/qt/pages/Qt463KnownIssues<br />http://qt.gitorious.org/qt/pages/SymbianFAQ<br />http://developer.symbian.org/wiki/index.php/Using_Qt_with_Standalone_SDKs<br />http://developer.symbian.org/wiki/index.php/Qt_&_Symbian_Platform_Security<br />http://developer.symbian.org/wiki/index.php/Using_Qt_and_Symbian_C%2B%2B_Together<br />http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470750103,descCd-tableOfContents.html<br />
    35. 35. Thank you!<br />daniel.rocha@nokia.com<br />http://heapmemory.net<br />