Más contenido relacionado La actualidad más candente (20) Similar a Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012) (20) Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)1. Qt App Development
for Symbian & MeeGo
Andreas Jakl [@mopius]
Senior Technical Consultant
Nokia 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
Web
3 © 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, Linux
6 © 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, Linux
7 © 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 apps
Complete 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 support
13 © 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
Symbian
15 © 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 Harmattan
17 © 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 MeeGo
26 © 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.
– Skins
28 © 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
OpenGL
31 © 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 Quick
33 © 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 experimental
35 © 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. Recommended
Recommendations ... OK
Not recommended
Desktop App Mobile App Game
QWidgets
GraphicsView
Qt Quick
OpenGL
Web
38 © 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 / Anna
Symbian^1 / S60 5.0
S60 3.1 / 3.2 (non-touch)
MeeGo Harmattan
Maemo 5
Desktop
39 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl
30. Hello World Qt Quick
Native
Qt
Symbian 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 Simulator
41 © 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 transitions
42 © 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 export
45 © 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 different
46 © 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)
Versit
49 © 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.0
Qt 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 5228
54 © 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/rda
61 © 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 Statistics
190+ countries, 32 languages
11 million downloads / day
154 phone models supported
Operator billing in 46 countries
(credit card: 192 countries)
http://www.developer.nokia.com/Distribute/Statistics.xhtml
63 © 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.org
64 © 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, 2008
65 © 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/Qt
Andreas Jakl [@mopius]
Senior Technical Consultant
Nokia Developer
70 © 2011 Nokia Qt App Development v. 3.4.6 January 17, 2012 Andreas Jakl