« | Blog Home | »

Qt Dev Days 2011, Day 1: Training

Qt Dev Days 2011 – Training Day
Tues 11.29.11 – I am at the Qt Dev Days 2011 in San Francisco(-ish) for the next three days and per my usual, I will be taking notes during the sessions and posting them here.
Today was the Training Day where one could choose one of five training tracks and I chose the Qt Apps with Nokia track and I am glad I did as the Digia trainer, Tuukka Ahoniemi, was funny, thorough, and informative on Qt Quick/QML matters big picture and small details.
The day started with Nokia’s Kenny Mathers talking about the best way to make money from mobile apps and the Nokia app store. He talked about ‘Next Billion’ a favorite unspecified key phrase of Nokia presenters of the last year and I had an opportunity to ask him to clarify. And he did.
The day ended with Gordon Thornton walking us through how one submits one’s app to the Nokia Store and demystified the process.
Now to go off to the Welcome Reception.
My notes are mostly a transcription but sometimes a paraphrase of what the speaker said and what their slides said, if exact quote then I will put it in “”. The use of () is my notes or asides or thoughts.

Kenny Mathers up first to talk about monetization opportunities.
THAT slide is The One that says:
Qt for the next billion
Qt will be a core component in the Nokia strategy to bring apps to the next billion
Kenny reminds us the 3 part Nokia Strategy as delivered Feb 11th. 3rd part is the ‘next billion’.
Kenny wants it to be clear that Qt is a part of that next billion.
Kenny says Will not be to Asha or S40, but devices that have smartphone capabilities. Strategy will be announced next year.
Kenny now building case for publishing to the Nokia store and for the BRIC countries using Qt.
Today, touchscreen phone app downloads from the Nokia Store: 49% of S60 5th Edition, 49% S^3, 2% rest (Jen wonders if ‘rest’ is Touch & Type)
Now Mr. Kenny is talking about Operator Billing and how Nokia has 125 operators in 43 markets. Then he talked about sales tax. (Incorporate in Nevada… ;o) )
He thinks the freemium model is the way to go with in App purchases. (Jen says: Or have a great app with great UX that makes it better than all the others and charge for app, Gravity is example of this.)
Next up is Tuukka Ahoniemi
Qt Apps with Nokia
What is Qt?
* C++ application & UI framework, originally started as a GUI framework for C++
– Open source
* Cross-platform
– Both desktop and embedded (mobile) systems!
– Wrtie once, deploy everywhere
– Tools to support different platform LAF UI features
* Integrated cross-platform toolset
– Qt Creator, Qt Assistant, etc
Qt is available for these platforms:
Embedded Linux, Mac OS X, Windows, Linux/X11, Windows CE Mobile (old school), Symbian, Meego
Qt Combines Languages & Technologies
QML, HTML5/CSS3/Javascript, C++/OpenGL -> Qt Application
(Jen says: Python, too!)
Qt Applications are Native
* Better performance
* All native services available
* No sandbox model – Native security model
* Optimized memory consumption – Not any additional runtime environment
The Qt Stack on Nokia Platforms (top to bottom)
Qt Quick Components
Qt Mobility APIs
(more deep phone magic that I could not type fast enough for)
Latest Features in Qt
Qt 4.8 (RC)
* Qt Quick 1.1 – PinchArea, new poroterties, support split-screen VKR, etc
* Lighthouse – Qt Platform Abstraction, QPA – creates another level of abstraction in the middle, then when you port to another platform it brings everything in one single space (ie to port to Android)
* Qt WebKit 2.2
Qt and Symbian
* Symbian as a mobile OS goes back a long way
– Highly optimised, well performant and resource-wise OS – designed for resource limited mobile devices
– S60 is/was a UI Layer/software platform
* Qt came into the picture to provide a more convenient native software platform
– S60 3rd ed – first version of Qt on Symbian in 2008
– Symbian^1 (S60 5th ed.)
– Symbian^3 (+ Symbian Anna and Symbian Belle updates)
* The one and only Symbian platform
– No more fragmentation
* Introducded in H2/2010
* Qt is the key for Symbian platform evolution with Anna, Belle, and furture releases tracking the latest Qt 4.x
S60 3rd Edition, Feature Pack 1 is Qt 4.6 compliant only (Qt Quick is not for this, as it does not work in)
What is MeeGo Harmattan?
N900 – Maemo 5, Fremantle, UI: Hildon, Debian packaging
N9 (+N950) – Meego 1.2 Harmattan API
Qt SDK 1.1.4
* Combiles all Qt development under one SDK!
* Main Features: Qt 4.7.4, Qt Quick 1.1, QtMobility APIs 1.2, Qt Creator 2.3.0, Qt/QML Designer, etc.
…. (was out talking and missed the 1st 20 mins after lunch)
* Or use Remote Compiler (love the RC now that I have found how to make it work with my Mac)
Parts of Qt Applications
UI w/ Compolnents, Logic w/ QML > QML (Qt Quick)
Extended engine code, UI extensions, etc. > Qt/C++
Native access > OS Serivces
Tuukka gives a demo on how to start a Qt app for Symbian
T – Can only have one root element per QML file
Qt Quick also have signals, but not like signals&slots in Qt
The interesting part of the QML language is that it is javascript based
Application Types – “This is one of those b.s. slides that says nothing.”
(The slide talked about Productivity apps vs Immersion apps)
Tuukka has fun showing demos on Qt Components
Qt Component Hierarchy:
Window – root element, orientation changes, singular – Window also handles StatusBar and ToolBar
Page – one screen, application content, can be plural
Basic Interface Elements
* First, import the Qt Components API
* Window
* StatusBar
* ToolBar
Fun keyboard shortcut: To comment out selected text ctl+z+/
Window with PageStack
PageStackWindow – Convenience subelement, has PageStack
T parses out the “onClicked: window.pageStack.depth <= 1 ? Qt.quit() : window.pageStack.pop()" code PageStack Element * Pages are pushed (forward navigation) and popped (backward) from the stack: * Replacing (replace()) is pop() +push(), side ways movement * If you push the page from an inline component the stack instatiates new page - And: deletes the page on pop! Tuukka says what he is showing today is the new stuff and does not deprecate Qt & Qt Quick ways of doing things of the last year or so, such as QWidgets. QWidgets work well in desktop apps but Qt Components work best for mobile. Tuukka demos how to have different toolbars on different pages he takes out 'tools:toolBarLayout' on line 6 of main.qml and then adds a ToolBarLayout on the qml file of the page in question. Now shows Tabs Example. (Jen note: not fond of tabs on the small screen of a mobile, but each to their own.) Animations Animation types demo QML Model/View - will show demos later Getting the Most out of the Device * Using Mobility APIs with QML - Sensors - Location * NFC * Communicating with QML and C++ - Idea of plugins Capabilities and Signing [chart] for Symbian Demos with Map api and uses the Flickable element Meego Harmattan Aegis Manifest File - security cases Example - Sensors Import QMobility.sensors 1.1 QML elements: Accelerometer, Gyroscope, AmbientLightSensor, Compass, LightSensor, Magnetometer, OrientationSensor, ProximitySensor, RotationSensor, TapSensor Handle signal ReadingChanged Model View demo Tuukka shows ListModel, XmlListModel, et al ListModel { ListElement { title: ... } } What can I do with a data model? I can give it to an existing view ListView Then Tuukka shows a carousel view (not a component) as an example as another type of view Then he shows PathView where the items in the model follow a path Now on to Gordon Thorton who is talking about Publishing a Qt App publish.ovi.com Overview Preparation: Planning ahead support.publish.ovi.com developer.nokia.com - support documentation is also available on our developer portal knowledge center - look at the guidelines Avoid the top 10 QA failures Publishing Basics: Publishing a Qt App publish.ovi.com/login Walks through the entering of metadata that is the 'digital' packaging of your app and how to best choose the best wording & categories Promoting Your App: Help to create banner to promote your app on the Nokia Store snac.nokia.com/2/omt Creating In App Purchase Uploading your App Request a UID from: developer.support@nokia.com Distribution Content guidelines for certain countries If app supports English, you can select all languages

One Response to “Qt Dev Days 2011, Day 1: Training”

  1. RajaRaviVarma

    Latest Qt (E.G. Qt 4.7.3) works in Symbian 3rd Ed FP1. The only thing is, it is not officially supported, for example you cannot use the latest Qt editions for Symbian 3rdFP1 and distribute it to OVI Store.
    For development, you can use it (Qt Quick too) and deploy it to any device which has latest Qt