2. Biography
● Johan Thelin
● Worked with Qt for 10+ years
● Foundations in Qt Development
● Also worked embedded, embedded Linux, enterprise software, web
● Today – senior developer at Pelagicore
3. Pelagicore
● Open source based in-vehicle infotainment
● Member of Linux Foundation
● Ubuntu Core member
● GENIVI member
● Active within MeeGo, etc
● Uses Qt and QtQuick extensively
● Also HTML5, JavaScript and Android
4. What is Qt
“Code less, create more, deploy everywhere”
● A great framework for creating applications
● Truly cross-platform
● Desktop
● Devices
● Licensed for everyone – GPL, LGPL or closed
6. Qt on Devices
● Linux with X11
● N900, N9
● Linux without X11
● industrial, etc
● Symbian
● WinCE
● more...
7. Who runs Qt?
● Trolltech
● Bought by Nokia
● Nokia Qt Development Frameworks
● Digia develops and licenses Qt Commercial
● Qt is open source – www.qt-project.org
● True open governance!
8. Qt on Devices
● More than the official ports
● Android
● RIM Blackberry
● WebOS
● iOS
● Kindle
● WP7 can support native code mid-2012 :-)
9. Qt on Devices
● More verticals
● Set-top boxes
● Industrial panels
● Tablets
● Your car
13. Portability between Devices
● QPA – Qt Platform Architecture – or something
● Formerly known as Lighthouse
● A backend for porting Qt to new platforms
● Focused at minimal effort, but with possibilities
14. Qt on Android
● Based on Android SDK / NDK
● QPA
● Necessitas - the actual Qt Port
● QtCreator (IDE) adaptations
● The tooling
● Ministro
● The deployment
15. Current Status
● Alpha 3 was just released
● Most of Qt is ported
● OpenGL rendering
● WebKit
● Missing
● Mobility (for many Android Versions)
● Rewriting soft keyboard support
● Android Style and Android Menus
● Development support in non-Linux environments
● Documentation
16. The Near Future
● Planning to release First Beta soon
● Will give a stable API/ABI
“...meaning that an application which uses that version will
run without *any* change, on any further releases! It also
means you can target a billion devices using Qt, much sooner
than you expected :)”
17. Getting Started
● Installation party!
● OpenJDK
● ant 1.8+
● The necessitas installer downloads and installs
– Android SDK + NDK
– Platforms for the SDK, etc
● Setup QtCreator
– Add path to ant
26. More on Ministro
● Qt libraries are shared among all Qt apps on
the device
● From the beta release, the ABI is stable, i.e. Qt
can be upgraded separately from apps
27. Configurability
● Android target SDK
● API levels
● Application icon
● Permissions
● What your app wants to be able to do
● Libraries
● Which Qt modules are needed
● More...
28. Debugging
● Yes! :-)
● Android NDK comes with gdb
● Works with QtCreator
● Requires some tweaking
● Described in the Necessitas Wiki
30. User Interface Development
● Classic – standard widgets, etc
● Rectangular areas
● Non-overlapping
● Clipping their children
● Provides familiarity
● Device UIs
● Blend with the device
● Provide a brand feel
● etc
31. Building Modern UIs
● No more widgets!
● Canvas / scene
● Timers everywhere
● Multiple simultaneous transitions
● Complex, interconnected state machines
● Pain! :-)
32. History of Qt and Modern UIs
● QCanvas
● QGraphicsView
● QTimeLine
● QGraphicsItemAnimation
● An animation framework
● A state machine framework
● The birth of QtQuick
33. QtQuick
● What is QtQuick?
● A run-time for QML
● Tooling
● What is QML
● Declarative
● JavaScript
42. Integrate with C++
● QObjects to QtQuick
QObject *foo = …;
setProperty(“foo”, foo);
● C++ classes in QtQuick
class Foo : public QObject { … };
qmlRegisterType<Foo>("FooLib", 1, 0, "Foo");
Foo { property: value }
● QtMediaHub - http://gitorious.org/qtmediahub
44. Of course QtQuick works on Android too.
With hardware accelerated graphics.
45. Qt 5
● A great opportunity to …
● … get rid of API limitations
● … split the repos into more independent parts
● … take advantage of modern C++
● Widgets and QML are peers
● More acceleration, shaders, etc – amazing
performance
46. A new Dawn
● Truly Open Source – a www.qt-project.org
● Qt for Desktop
● Windows / X11 / OS X... more
● Qt for Devices
● Symbian / Maemo / MeeGo / Android / Blackberry /
iOS / Kindle... more