Integrating Mobile into Your Cross- Platform Strategy with Qt
Tuukka Ahoniemi
Technical Product Marketing Manager
Qt Developer Days 2014
© 2014 The Qt Company Agenda
• Qt and Mobile Platforms – Status
• Use Cases, Mobile in Bigger Picture • Cross-Platform Mobile • Convergence into Multi-screen from Desktop or Embedded • Enterprise Mobility • Internet of Things
• Getting Started with Mobile Ports
The Qt Company © 2014 Opportunities with Qt on Mobile Android iOS Windows Store Apps Sailfish OS BlackBerry 10 Ubuntu touch Nokia X Symbian Tizen MeeGo
Qtopia Windows Mobile
<- 2008 2008 - 2012 2012 -> Trolltech Nokia The Qt Company + community
The Qt Company © 2014 The Qt Company © 2014 The Qt Company © 2014 Cross-Platform WebView
• Lightweight component for showing web content, coming with Qt 5.4
• Available through commercial Qt license and under LGPL v3 for community edition
Qt native Web documents UI elements Cross-Platform WebView element
Android Safari Native QtWebEngine Chromium
Desktop Embedded iOS Android OSs OSs
Coming later
The Qt Company © 2014 Qt for Windows Store Apps
• Windows Runtime / WinRt => Windows Store Apps • Qt 5.4 for WinRT will support • PCs (Modern UI), Tablets (Surface) and Smartphones (Windows Phone) • Windows 8.1 and upwards • All major Qt modules supported • Windows Phone 8.1 and upwards • User is able to publish applications for • Qt 5.4 – Fully supported WinRT, Windows store apps, Windows • New Modules Phone • Geopositioning • Qt Quick Enterprise Controls • Engin.io • Possible Roadmap items • Qt Quick Compiler • Multimedia • In-app purchasing (Qt Purchasing) • Qt 5.5 • Adopting to Windows 10 • Bluetooth, BT LE, … • Integrated to Qt Creator
The Qt Company © 2014 Use Cases
Let’s Look at a Larger Picture of What Does This Actually Enable!
The Qt Company © 2014 Cross-Platform Mobile Consumer Apps
• Natural, obvious target for Qt developers
• Target the whole market • Android, iOS, Windows Store • Phones and tablets • Future-proof
• Indie Mobile licensing
The Qt Company © 2014 The Qt Company © 2014 The Qt Company © 2014 Qt is Not Just Mobile
The Qt Company © 2014 The Qt Company © 2014 Enterprise Mobility
• Go Mobile with your existing Qt (or non-Qt!) application
• Share code between desktop, embedded and mobile clients
• Write a native mobile client for your enterprise backend system
The Qt Company © 2014 Extending Qt Desktop App into Mobile
• Your code will run there
• Qt Widgets can be used, but not really recommended for mobile
• Different user experiences on desktop than on mobile -> Different UI layouts anyway
Qt Widget Qt Quick for mobile desktop app Qt Widget desktop app Common Qt / C++ engine
Qt Quick for all Qt Widget mobile app Common Qt / C++ engine
The Qt Company © 2014 Migrating to Qt Quick
• Qt Quick Controls • Regular + Enterprise • Native LAF (5.4 adds Android!) • Easy customization • Mix and Match • QQuickWidget • QOpenGLWidget
The Qt Company © 2014 Use Case: MuseScore
MuseScore for Desktop MuseScore Player for Mobile Devices
The Qt Company © 2014 Use Case: Mobile Clients for an Existing Enterprise Systems
Browser interface
Publishing framework (eg. MS Sharepoint)
Qt client ERP system
Data
The Qt Company © 2014 Use Case: Wider Usage of Qt in Internal systems
Internal, proprietary devices
”BYOD”
External Internal Consumer Apps applications Existing ERP Qt client (common parts) systems
Data
The Qt Company © 2014 Internet of Things
The Qt Company © 2014 Use Cases for IoT
• Control any device remotely using a mobile device or tablet: Consumer Electronics, Automotive, Point-of-Sales, Industry Automation ( BYOD, Bring Your Own Device ) • Smart wall thermostats • Home appliances • TVs, Set-top-boxes • Auxiliary (mobile) screens for service or for completely headless devices
• Smart, connected sensors/sensor clusters with Cloud connection and server-side computation and remote adjusting: Industry automation
• Mobile Health (mHealth)
• Mash-Ups of global device networks, for smart applications, such as traffic control, logistics
• Remote monitoring and controlling of global manufacturing chains, improved inventory and stock management
The Qt Company © 2014 RFID / NFC
M2M Protocols Bluetooth LE
2G/3G/4G Low power SoCs / processors
Security Wi-Fi Coverage
The Qt Company © 2014 How About Software Developers?
Why isn’t anyone thinking about the software developers?
The Qt Company © 2014 The Qt Company © 2014 The Qt Company © 2014 Success Factors for IoT Software Vendors
• Managing the communication with connected devices/sensors;
• Providing middleware for integration to data repositories;
• Storing and securing the data; and
• Analyzing and visualizing the data
Goldman Sachs report: IoT primer, The Internet of Things: Making sense on the next mega-trend
The Qt Company © 2014 Problems for Creating an IoT System—from Software Perspective
• Creating an embedded device. Still as painful as always. • Boot to Qt, Embedded tooling, Qt Creator • Creating an extendable architecture for a system of embedded devices • Future-prooving software with Qt, platform independency • Creating a back-end for the embedded devices to hook into (OK, ”The Internet” IS already there) • Qt Cloud Services • Making the devices and the backend data somehow reachable to all consumers • Cross-Platform Software Framework • Big Data • Cloud computing, Data analysis and visualization libraries, Preparing the existing framework parts
The Qt Company © 2014 Qt Weather Station, Simple Use Case of an IoT System
The Qt Company © 2014 Qt Weather Station, Architecture
The Qt Company © 2014 QtCloudServices.com Getting Started
So how do I then take my software into mobile?
The Qt Company © 2014 Tooling Setup – Android
The Qt Company © 2014 Tooling Setup – iOS
• Xcode and Xcode command line tools are enough
• Apple developer id
• Register your device
• Developer/distribution provisioning profile • Associates together device id, application bundle id, and developer certificate • Developer/distribution certificate
The Qt Company © 2014 Deployment and Publishing
• Three deployment options in Android • Projects > Run > Deploy configurations • Publishing in Google Play • Signed APK can be created in QtCreator • Login to Goole Play and upload your app
• iOS • CtCreator plugin creates Xcode project too • Open the project in Xcode and set version number, icons, orientation etc. • Publish using iTunes Connect
The Qt Company © 2014 Windows Phone Pre-Reqs
• Visual Studio 2013
• Windows 8.1
• Tools have been mostly integrated into Qt Creator, but visual Studio is needed for debugging on phone
• Submitting to Windows Store • The web interface takes the package created by Visual Studio (or Qt Creator)
The Qt Company © 2014 Questions?
The Qt Company © 2014 Thank You! tuukka.ahoniemi@digia.com @tuukka_a
www.qt.io
© 2014 Digia