Integrating Mobile into Your Cross-Platform Strategy with Qt
Tuukka Ahoniemi
Technical Product Marketing Manager
Qt Developer Days 2014
© 2014 The Qt Company
© 2014The 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
© 2014The Qt Company
2012 ->2008 - 2012<- 2008
QtopiaWindows Mobile
SymbianMeeGo
AndroidiOS
Windows Store Apps
Sailfish OSBlackBerry 10Ubuntu touch
Nokia XTizen
Trolltech Nokia
2012 ->2008 - 2012<- 2008
Nokia The Qt Company + community
Opportunities with Qt on Mobile
© 2014The Qt Company
© 2014The Qt Company
© 2014The Qt Company
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 UI elements
Web documents
Cross-Platform WebView element
QtWebEngineAndroid
ChromiumSafari
iOS AndroidDesktop
OSsEmbedded
OSs
Coming later
Native
© 2014The Qt Company
Qt for Windows Store Apps
• Windows Runtime / WinRt => Windows Store Apps
• PCs (Modern UI), Tablets (Surface) and Smartphones (Windows Phone)
• All major Qt modules supported
• Qt 5.4 – Fully supported
• New Modules
• Geopositioning
• Qt Quick Enterprise Controls
• Engin.io
• Qt Quick Compiler
• Multimedia
• Qt 5.5
• Bluetooth, BT LE, …
• Integrated to Qt Creator
• Qt 5.4 for WinRT will support
• Windows 8.1 and upwards
• Windows Phone 8.1 and upwards
• User is able to publish applications for WinRT, Windows store apps, Windows Phone
• Possible Roadmap items
• In-app purchasing (Qt Purchasing)
• Adopting to Windows 10
© 2014The Qt Company
Use Cases
Let’s Look at a Larger Picture of What Does This Actually Enable!
© 2014The Qt Company
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
© 2014The Qt Company
© 2014The Qt Company
© 2014The Qt Company
Qt is Not Just Mobile
© 2014The Qt Company
© 2014The Qt Company
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
© 2014The Qt Company
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 desktop app
Qt Quick for mobileQt Widget
desktop app
Common Qt / C++ engine
Qt Quick for all
Common Qt / C++ engineQt Widget mobile app
© 2014The Qt Company
Migrating to Qt Quick
• Qt Quick Controls
• Regular + Enterprise
• Native LAF (5.4 adds Android!)
• Easy customization
• Mix and Match
• QQuickWidget
• QOpenGLWidget
© 2014The Qt Company
Use Case: MuseScore
MuseScore Player for Mobile DevicesMuseScore for Desktop
© 2014The Qt Company
Use Case: Mobile Clients for an Existing Enterprise Systems
Publishing framework (eg. MS Sharepoint)
Data
Qt client
Browser interface
ERP system
© 2014The Qt Company
Use Case: Wider Usage of Qt in Internal systems
Existing ERP systems
Data
Qt client (common parts)
External Consumer Apps
Internal applications
Internal, proprietary devices
”BYOD”
© 2014The Qt Company
Internet of Things
© 2014The Qt Company
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
© 2014The Qt Company
Bluetooth LEM2M Protocols
Low power SoCs / processors
RFID / NFC
Wi-Fi CoverageSecurity
2G/3G/4G
© 2014The Qt Company
How About Software Developers?
Why isn’t anyone thinking about the software developers?
© 2014The Qt Company
© 2014The Qt Company
© 2014The Qt Company
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
© 2014The Qt Company
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
© 2014The Qt Company
Qt Weather Station, Simple Use Case of an IoT System
© 2014The Qt Company
Qt Weather Station, Architecture
QtCloudServices.com
© 2014The Qt Company
Getting Started
So how do I then take my software into mobile?
© 2014The Qt Company
Tooling Setup – Android
© 2014The Qt Company
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
© 2014The Qt Company
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
© 2014The Qt Company
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)
© 2014The Qt Company
Questions?