Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)

  • 18,437 views
Uploaded on

Learn what Qt is all about, why it is important and what you can do with it! Includes an introduction to the Qt SDK, Qt Quick and the Qt Mobility APIs for development on Symbian and MeeGo......

Learn what Qt is all about, why it is important and what you can do with it! Includes an introduction to the Qt SDK, Qt Quick and the Qt Mobility APIs for development on Symbian and MeeGo Harmattan. Links to further resources help you to get an easy start!

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
18,437
On Slideshare
17,699
From Embeds
738
Number of Embeds
35

Actions

Shares
Downloads
509
Comments
0
Likes
6

Embeds 738

http://www.meegosweden.com 197
http://3adly.blogspot.com 135
http://blogs.nokia.com 125
http://nokia-news.com 78
http://staging.blugri.com 56
http://www.slideshare.net 39
http://3adly.blogspot.in 27
http://meegosweden.com 12
http://3adly.blogspot.de 10
http://translate.googleusercontent.com 7
http://3adly.blogspot.kr 4
http://3adly.blogspot.fr 4
http://3adly.blogspot.ro 4
http://3adly.blogspot.com.br 4
http://3adly.blogspot.nl 3
http://3adly.blogspot.ru 3
http://blugri.com 3
http://blog.thaghra.com 3
http://3adly.blogspot.se 2
http://3adly.blogspot.fi 2
http://3adly.blogspot.no 2
http://3adly.blogspot.ca 2
http://3adly.blogspot.co.uk 2
http://static.slidesharecdn.com 2
http://3adly.blogspot.mx 2
http://3adly.blogspot.ch 1
http://3adly.blogspot.jp 1
http://3adly.blogspot.tw 1
http://3adly.blogspot.com.es 1
http://3adly.blogspot.com.au 1
https://team.theflowr.com 1
http://www.blugri.com 1
http://new.xianguo.com 1
http://webcache.googleusercontent.com 1
http://3adly.blogspot.com.tr 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Qt App Developmentfor Symbian & MeeGoAndreas Jakl [@mopius]Senior Technical ConsultantNokia Developer 1 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 2. From Your Idea to the Store Distribute: Nokia Store ... and get famous and rich! Design, develop & test Choose development technology Qt, Web, Java, Silverlight, XNA Select target platform(s) Symbian, MeeGo, Series 40, Windows Phone Choose target market(s) for your app Europe, America, Africa, Asia, etc.2 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 3. Your Development Options Series 40 Symbian MeeGo / Maemo Windows Phone Java Silverlight Native (Qt) XNA Web3 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 4. Agenda What? Why? Where? How? When? Now!4 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 5. Qt – What?5 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 6. Multi Platform App Development Native apps Use operating system and its functions directly (different code for networking, GPS, etc.) Operating System Symbian, MeeGo, Windows, Mac OS, Linux6 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 7. Multi Platform App Development (if needed, direct access is still possible) Your App Native apps Qt framework Use operating system and itson all platforms, Same code works functions directly (different codemany usecases (GPS, etc.) covers for networking, GPS, Operating System Symbian, MeeGo, Windows, Mac OS, Linux7 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 8. What is Qt? Using Qt SDK for – Dev. environment – Testing – Translation Publish to – Help – Nokia Store (Symbian, MeeGo) Developer App Source Code – Windows – Linux Using Qt framework for – Mac – User Interface – Embedded – Networking – Location (GPS) – Web integration – ...8 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 9. Qt – Why?9 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 10. Qt – What’s Inside?• Cross-Platform • Mobile focus – Same source code for multiple platforms – Location, Maps – Maximum performance – native apps! – Sensors• Generic – Messaging (SMS, email) – User Interface – Contacts, Calendar – Declarative UI, animation, gestures, – Camera multi-touch, 3D (OpenGL) – System information – WebKit & JavaScript engine included – Haptics (vibration) – Multimedia (audio, video) • Extend – Networking, XML – Include any 3rd party C++ library / code – SQL, files, app settings – Container classes, object communication, threading, unit testing 23 modules, ~ 800 classes, ~ 9000 functions 10 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 11. Qt: On Your PC already! … and many, many more!11 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl All trademarks and logos are property of their respective owners. More information: http://qt.nokia.com/qt-in-use http://conversations.nokia.com/2011/03/15/10-qt-use-cases-you-didnt-know/
  • 12. Qt App Publishing: The Price. Developer resources & community Nokia Store publishing Discussion boards, e-learning videos, Nokia Publish registration 11 million DL / day examples 155 million Qt phones One-time fee of €1 in the market Submit an unlimited number of appsComplete Qt development environment SDK, toolchain, remote device testing, etc. Total: 12 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 13. Qt: Free vs. Commercial Open Source qt.gitorious.org Free (LGPL license) Commercial License Qt can be used in commercial, closed-source apps Changes to Qt source must be shared Tech support available Included support13 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 14. Qt – Where?14 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 15. Technologies & Platforms Windows C++ Mac OS OpenGL Linux / X11 QML Embedded Linux HTML5 Windows CE CSS3 MeeGo / Maemo JavaScript Symbian15 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 16. Symbian & Qt Nokia E71 (S60 3.1, 2008) Nokia 700 (Symbian Belle, 2011) – Works on S60 3.1+ (E71, E72, 5800, N97, N8, X7, 700, etc.) * – Look up platform versions: http://www.developer.nokia.com/Devices/ Qt Compatibility Qt Pre-Installed Series 60 Series 60 S60 S60 S60 S60 5.0 Symbian^2 Symbian^3 1.0 2.0 3.0 3.1 3.2 = Symbian Anna (+ 3 FPs) Symbian^1 Symbian Belle …* Qt can be installed on all compatible devices. Not all devices are enabled for Qt content in the Ovi Store. Current list of Ovi Store device deployment support for Qt apps:http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml 16 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 17. Harmattan• Open Source Linux for Mobile Computers – Based on Maemo and MobLin – Developed by Nokia and Intel – Hosted by the Linux Foundation – www.meego.com• Nokia N9 – MeeGo 1.2 Harmattan17 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 18. Qt – How?25 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 19. Developer Environment Setup• One-click installation Maemo – IDE – Tool-chains Desktop Simulator – Documentation Qt SDK works on – Examples Windows, Linux, Mac• http://developer.nokia.com/Qt Symbian MeeGo26 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 20. Symbian – Mac / Linux• Symbian binaries cannot be compiled on Mac or Linux * – Legacy Symbian tool chain restriction• Use Remote Compiler instead – Compilation done on Nokia servers in the cloud – Compiler log messages displayed in real-time in Qt Creator – Binaries delivered back to you• Enable Remote Compiler during SDK installation or later using the SDK maintenance tool – Found under the “Experimental” section 27 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl * Experimental Linux support for building Symbian apps: http://projects.forum.nokia.com/symbian_linux_qtsdk
  • 21. Qt SDK: Simulator• Efficient Testing – Quick – Scripting (JavaScript) – Simulate phone events – Battery, messages, etc. – Simulate mobile environment – Location, contacts, etc. – Skins28 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 22. Start: Application UI C++ QML / JavaScript QWidgets Graphics View Qt Quick Qt Quick Components All these can be mixed in the same app if needed HTML / JavaScript / CSS Other Platform QtWebKit QtOpenGL OpenGL31 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 23. QWidgets• UI Elements (QLabel, QPushButton, etc.) – Use platform UI design – Support style sheets – Drag & drop UI designer Great for desktop. Static layouts make effects difficult. Small UI, different interaction paradigms.32 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 24. Graphics View• Manage 2D scenes with a scene graph – Can manage thousands of items with hierarchies – Collision detection, affine transformations, drag and drop support – Hardware acceleration and integration with QWidget possible High level Conceptually nice and flexible No ready-made common UI components available Qt 5 development focus on Qt Quick33 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 25. Qt Quick• Qt Quick – QML language and JavaScript – Declarative syntax, animations and states – Drag & drop UI designer Very easy to make slick, fluid UIs. Most important for mobile devices! UI components for desktop still experimental35 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl * Project page: http://bugreports.qt.nokia.com/browse/QTCOMPONENTS
  • 26. OpenGL• Very low level – Basic setup provided by Qt Angry Birds and Bounce by Rovio Complete control over GL Good if you have existing codebase & assets, cross-platform OpenGL is hard work (but there’s more Qt coming for that *)36 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl * Project page: http://doc.qt.nokia.com/qt-quick3d-snapshot/index.html
  • 27. QtWebKit• Open source browser engine – Display HTML(5) and JavaScript – Combine Qt QML / C++ and web code if needed to get best of both worlds Use your existing web skills to create the UI Reuse web components (online help, etc.) Complex UIs and interaction probably more difficult Less performance than native code (but improving)37 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 28. RecommendedRecommendations ... OK Not recommended Desktop App Mobile App Game QWidgets GraphicsView Qt Quick OpenGL Web38 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 29. Supported Platforms and UIs Not supported Limited Qt Quick Qt Quick QWidgets Direct graphics HTML (5) Components (OpenGL, GraphicsView)Symbian^3 / AnnaSymbian^1 / S60 5.0S60 3.1 / 3.2 (non-touch)MeeGo HarmattanMaemo 5Desktop 39 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 30. Hello World Qt QuickNative QtSymbian C++~ 300 lines of code, #include <QApplication> import QtQuick 1.0~ 15 files #include <QPushLabel> Rectangle { int main(int argc, char *argv[]) width: 360 { height: 360 QApplication app(argc, argv); QLabel helloLabel("Hello World"); Text { helloLabel.setAlignment(Qt::AlignCenter); anchors.centerIn: parent helloLabel.showMaximized(); text: "Hello World" } return app.exec(); } } QML language 40 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 31. User Interfaces with Qt Quick• Most cross-platform – Design and create any custom user interface – Same resolution: pixel precise on desktop, Symbian and MeeGo Maemo / MeeGo Windows 7 Symbian^3 Simulator41 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 32. QML import QtQuick 1.0 Rectangle { width: 200• Describe UI by tree structure height: 200 Image { of property bindings source: "QtLogo.png" – Properties dynamically anchors.centerIn: parent evaluated } } – Communication through signals & slots – Bindings to C++ code possible – Animate properties using states and transitions42 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 33. QML import QtQuick 1.0 Rectangle { width: 200 height: 200• Interactivity Image { source: "QtLogo.png" – Interact with anchors.centerIn: parent mouse / touch } MouseArea { – Execute JavaScript in anchors.fill: parent onClicked: parent.color = "green" signal handlers } }43 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 34. QML import QtQuick 1.0 Rectangle { width: 200 height: 200• Dynamic property update Image { source: "QtLogo.png" – Move image with mouse x: myMouse.mouseX y: myMouse.mouseY } MouseArea { id: myMouse hoverEnabled: true anchors.fill: parent onClicked: parent.color = "green" } }44 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 35. Qt Quick & Qt C++ Quick Prototype Deployable App Viewer on PC & mobile: Qt C++ app to load and show QML Testing 100% pure QML directly Can include C++ for app logic E.g., created by Flowella, Photoshop export45 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 36. Qt Quick Components• Simplify building rich UIs with Qt Quick – Provides widgets for Qt Quick – Title bar, actions, list items, buttons, etc. – Styles to integrate with native look & feel – MeeGo / Symbian slightly different46 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 37. Qt Quick Components import QtQuick 1.1 import com.nokia.symbian 1.1 PageStackWindow { id: window initialPage: mainPage showStatusBar: true; showToolBar: true Page { id: mainPage tools: toolBarLayout Button { anchors.centerIn: parent text: “Click me" } } ToolBarLayout { id: toolBarLayout ToolButton { flat: true iconSource: "toolbar-back" onClicked: window.pageStack.depth <= 1 ? Qt.quit() : window.pageStack.pop() } } }47 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 38. Qt Mobility Mobility 1.1 Mobility 1.0 Camera Bearer Management API Document Gallery Contacts Feedback Location Landmarks Messaging Maps/Navigation Multimedia Organizer Publish and Subscribe Service Framework – Out of process Service Framework Mobility 1.2 Sensors System Information Connectivity (Bluetooth, NFC) Versit49 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 39. Qt – When?50 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 40. Qt Versions for Symbian Qt Quick Components Qt 4.7.4 Qt Quick 1.1 Qt SDK 1.1.4 * Qt Mobility 1.2 Symbian Belle Qt 4.7.3 Qt Quick 1.0 Qt SDK 1.1 *Qt Mobility 1.1.3 Symbian Anna ** Qt 4.6.3 Nokia Qt SDK 1.0Qt Mobility 1.0.3 Symbian^3 No Qt Symbian^1 S60 3.1 S60 3.2 S60 5.0 52 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl * Qt SDK 1.1+ also includes a Qt 4.6.3 target for Symbian^1 and Symbian^3 ** The Nokia 500 does not have HW 3D acceleration, and therefore can’t be updated to Belle.
  • 41. Qt Support in the Nokia Store * S^3 / Anna / Belle S60 5th Edition S60 3rd Edition (Qt 4.6) MeeGo / Maemo E7-00 X6-00 E72 N900 (>= PR1.3) N8-00 / T7-00 C6-00 E71 N9 C7-00 / Astound / Oro C5-03 E66 C6-01 N97 (mini) E63 E6-00 / 702T 5800 XpressMusic E52 X7-00 5530 XpressMusic 801T 5250 500 5235 603 5233 700 5230 701 522854 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl * Status: 17. January 2012. Source: http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml#article1_a
  • 42. Symbian: Smart Installer Qt Install App (& SI) Required Qt version not already installed? Download and install Qt & dependencies http://wiki.forum.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian Note: Symbian Belle ships with Qt in the firmware and not on user memory – new firmware releases update Qt; however, the Smart Installer is still needed for updating (for example) Qt Quick Components.55 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 43. Qt – Now!60 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 44. Free Remote Device Access Reserve time on a real device Full access to install and test your apps www.developer.nokia.com/rda61 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 45. Nokia Store Access reports. You get 70%, Nokia 30%. Quality Assurance. Create content items. Add meta data. Register at publish.nokia.com (one-time fee of €1)62 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl * Avoid the top 10 QA failures: http://support.publish.ovi.com/?p=1865
  • 46. Nokia Store Statistics190+ countries, 32 languages11 million downloads / day154 phone models supportedOperator billing in 46 countries(credit card: 192 countries)http://www.developer.nokia.com/Distribute/Statistics.xhtml63 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 47. Where to find help?• Qt SDK – Help, examples• Discussion boards, wikis – Nokia Developer: www.developer.nokia.com/Develop/Qt/ – Qt Developer Network: developer.qt.nokia.com/• e-Learning materials – www.developer.nokia.com/Develop/Qt/Getting_started/ – qt.nokia.com/learning• Community – www.qtcentre.org64 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 48. Qt Books (some recommendations) Beginning Nokia Apps Development Ray Rischpater, Daniel Zucker. Apress. Complete end-to-end story of developing for Symbian and MeeGo with Qt (Quick) and HTML 5. Status: Qt 4.7, December 2010 Foundations of Qt Development Johan Thelin. Apress. More in-depth and technically oriented explanation of Qt – different approach to many other books. Generic Qt, no mobile. Status: 2007 C++ GUI Programming with Qt 4 (2nd edition) Jasmin Blanchette, Mark Summerfield. Prentice Hall. Official book for generic Qt development (no mobile). Good for looking things up or for enhancing your knowledge, average for learning from scratch. Status: Qt 4.3, 200865 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 49. Nokia Certified Qt Developer• Official accreditation for individual developers – Confirms your development skills in Qt – Become more attractive in the job market! – Qt Essentials exam: 50 multiple choice questions, 60 minutes – Qt Advanced exams: widgets and C++66 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 50. Nokia Developer Champion & Qt Ambassador• Active community member? – Be even more involved, improve your network and get rewarded! – Nokia Developer Champion http://www.developer.nokia.com/Community/Champions/ – Qt Ambassador http://qt.nokia.com/qt-in-use/ambassadors/qtambassador/67 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 51. Universities• Qt is a good way to teach software development – Instant results to motivate attendees – Graphical tools make entry easier – Flexible system, extensible with own libraries – … and still standard C++!• University support – Free Qt course materials under Creative Commons (PPT and OpenOffice) http://qt.nokia.com/learning/education/course-materials – Nokia Developer University support http://www.developer.nokia.com/Developer_Programs/Nokia_Developer_for_univ ersities/ 68 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 52. Your Feedback Counts!• Not happy with the way something works? Found a bug? – Submit your Qt bug report or suggestion to: http://bugreports.qt.nokia.com/ – Unsure about what to include? The guide is here: http://developer.qt.nokia.com/wiki/ReportingBugsInQt – Found a bug somewhere outside of Qt? Report it here: http://www.developer.nokia.com/Support/ – Also go to the above URL to buy a commercial support ticket if needed! 69 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
  • 53. Thank You.Want to learn more?http://developer.nokia.com/QtAndreas Jakl [@mopius]Senior Technical ConsultantNokia Developer70 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl