Integrating Mobile into Your Cross- Platform Strategy with Qt Tuukka Ahoniemi Technical Product Marketing Manager tuukka.ahoniemi@theqtcompany.com Qt Developer Days 2014
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
Opportunities with Qt on Mobile Symbian MeeGo Android ios Windows Store Apps Sailfish OS BlackBerry 10 Ubuntu touch Nokia X Tizen Qtopia Windows Mobile <- 2008 Trolltech 2008-2012 Nokia 2012 -> + community
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 Safari Android Chromium Native QtWebEngine ios Android Desktop OSs Embedded OSs Coming later
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 Qt 5.5 Geopositioning Qt Quick Enterprise Controls Engin.io Qt Quick Compiler Multimedia 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
Use Cases Let s Look at a Larger Picture of What Does This Actually Enable!
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
Qt is Not Just Mobile
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
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 mobile Qt Widget desktop app Common Qt / C++ engine Qt Widget mobile app Qt Quick for all Common Qt / C++ engine
Migrating to Qt Quick Qt Quick Controls Regular + Enterprise Native LAF (5.4 adds Android!) Easy customization Mix and Match QQuickWidget QOpenGLWidget
Use Case: MuseScore MuseScore for Desktop MuseScore Player for Mobile Devices
Use Case: Mobile Clients for an Existing Enterprise Systems Browser interface Publishing framework (eg. MS Sharepoint) Qt client ERP system Data
Use Case: Wider Usage of Qt in Internal systems Internal, proprietary devices BYOD External Consumer Apps Internal applications Qt client (common parts) Existing ERP systems Data
Internet of Things
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
RFID / NFC M2M Protocols Low power SoCs / processors 2G/3G/4G Bluetooth LE Security Wi-Fi Coverage
How About Software Developers? Why isn t anyone thinking about the software developers?
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
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
Qt Weather Station, Simple Use Case of an IoT System
Qt Weather Station, Architecture
QtCloudServices.com
Getting Started So how do I then take my software into mobile?
Tooling Setup Android
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
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
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)
Questions?
Thank You! tuukka.ahoniemi@digia.com @tuukka_a www.qt.io Digia