Slide 1

Slide 1 text

Native QML Controls Attila Csipa, Qt Contributor Summit 2015

Slide 2

Slide 2 text

The Way of the Desktop  Largely styling differences  Similar input methods  Limited number of platforms … not easy, but doable

Slide 3

Slide 3 text

The evolutionary explosion  Vastly different interaction paradigms  Mouse + keyboard desktop  Touch enabled desktop/laptop  Tablet  Mobile phone  Embedded  Automotive  Smartwatches …don’t… even… try… to… cover them all

Slide 4

Slide 4 text

The heartlant of Qt UIs CUSTOM 60FPS NIRVANA

Slide 5

Slide 5 text

Common controls story… a bridge too far?  Vastly different interaction paradigms  Mouse + keyboard desktop  Touch enabled desktop/laptop  Tablet  Mobile phone  Gesture-driven (Kinect, Leap motion, Sprout)  Voice-driven (Cortana, GNow, Siri)  Embedded  Automotive  Console  Smartwatches  … my list will go oooon!

Slide 6

Slide 6 text

Common controls story… a bridge too far?  Interaction development pace is increasing  New iOS every year  New Android each year  Win10 switching to iterative releases  Feature/style creep (bloat)

Slide 7

Slide 7 text

It’s not about sharing code It’s about sharing technology  QML is a good fit – Syntax  Declarative  Terse  Generic  Familiar (JSON/Qt)  QML is a good fit – Object model  Introspective  Dynamic

Slide 8

Slide 8 text

Native demos A.k.a. this is not just wishful thinking https://speakerdeck.com/achipa/fast-qml-ui-prototyping-for-platforms-without- qt-or-qtquick-support https://www.youtube.com/watch?v=Mo8J-g5XPGQ

Slide 9

Slide 9 text

To awesome UIs… and beyond! (node.js + Meteor + qmlviewer) http://achipa.blogspot.no/2014/12/meteor-and-qt-match-made-in-heaven.html

Slide 10

Slide 10 text

Pitfalls  imports are pain  QML lacking support conditionals  It’s a ”lesser evil” choice (multiple source files versus “almost works everywhere”)

Slide 11

Slide 11 text

Thanks! (Discuss) Qondrite (the nodejs+Meteor+QML thing - https://github.com/achipa/Qondrite Android native controls - http://code.qt.io/cgit/playground/qtqmlandroid.git/