ArcGIS Runtime SDKs: Using QML to Build Native Cross-Platform...
Transcript of ArcGIS Runtime SDKs: Using QML to Build Native Cross-Platform...
ArcGIS Runtime SDKs: Using QML to Build Native Cross-
platform Apps
Eric Bader@ECBader
DevSummit DCFebruary 26, 2016 | Washington, DC
Agenda
• What we mean by Cross-platform• QML, Apps, and the ArcGIS Runtime SDK for Qt• Build once, compile it for many• What’s ahead• Questions
Runtime Platforms and APIs
Qt
OS X
Windows Store
JavaSEiOS
Android
Windows Phone
WindowsDesktop
Mobile
Desktop
Embedded
Runtime Platforms and APIs
OS X
Windows Store
JavaSEiOS
Android
Windows Phone
WindowsDesktop
Qt
Mobile
Desktop
Embedded
Runtime Platforms and APIs
OS X
Windows Store
JavaSEiOS
Android
Windows Phone
WindowsDesktop
Mobile
Desktop
Embedded
Qt
QML was designed to build apps
QML
• A User Interface framework and declarative language- Collection of UI components- Model-view support- JavaScript engine- Animation framework- Properties- Property bindings- Can talk to C++
• A bit like CSS, HTML and JSON
Rectangle{id : rectcolor : “red”onColorChanged : titleText.text = “We changed the color”
}Text{
Id : titleTextText : “My First Map”
}Map{
id : myMaponStatusChanged : rect.color = “green”mapScale : rect.colorChanged ? 40000 : 10000
}
Property
Property Signal handler
Component signal handler
Property Signal
QML
ArcGISRuntime API
Qt QuickFramework
• Core QML Components• UI Controls• Positioning• Sensors
• Map Control• Layers• Geometry• Portal• Geocoding• Network Analysis• Geodatabase• Symbology
ArcGIS Runtime Extends the Qt framework
Qt Framework
Android iOS WindowsOS X Linux
Runtime Core
Runtime API for Qt (C++)
Runtime API for Qt (QML)
Windows Universal
Embedded SystemsWindows CE6, EC7
Qt apps are native
• Wrappers around native services- Native compiler- Possibility to mix code *- Native performance
Hardware
Windows Kernel Mac Linux Kernel
Win32 GDI Carbon / Cocoa X11
Qt Windows Qt Mac Qt Linux
Qt
Qt APIs
Application Application Application
Esri QML API
About the QML API in ArcGIS Runtime SDK for Qt
• No C++ development is required• JavaScript skills come in handy• You can use Qt QML Types with Esri’s
- States, Transitions
• Functionally, almost equivalent to CPP API *
* No LocalServerNo GeoprocessingNo Military Standard Symbology
What You Need for Development
• Windows + Visual Studio, Linux, or Mac OS • Qt SDK and Qt Creator from The Qt Company – http://qt.io
• Building for Android devices? - The Android SDK & NDK bits- Ant- JDK (8)- Do NOT WORRY – you don’t need to know how to use these!
• Building for iOS devices? - Xcode- Apple Developer Subscription
• ArcGIS Runtime SDK for Qt - http://developers.arcgis.com/qt
Installing the Qt SDK on Windows
Installing the Qt SDK on Mac
Let’s see it in action
What’s ahead…
Direct Read of Files Local Analysis 3D Map AuthoringCross Platform
ArcGIS Runtime 2016Adding Critical Functionality
Final release:Android, iOS
Betas: Java, Qt, .NET,
Xamarin
Today Q22016
ArcGIS Runtime Quartz Release Schedule
Q32016
Final release:Java, Qt, .NET,
Xamarin
Update 1:Android, iOS
March -April
Beta 2:Android
iOS
Beta 1 (Aug 2015):Android
iOSJava
Blogs on Quartz
Quartz Deep Dive - https://blogs.esri.com/esri/arcgis/2015/09/10/quartz-architecture-deep-dive/
Quartz Announcement - https://blogs.esri.com/esri/arcgis/2015/08/26/quartz-beta-1-is-now-available/
Resources
• Developer Resources –- http://developers.arcgis.com/qt- http://doc.qt.io/qt-5/qmlfirststeps.html
• Blogs –- Qt and JavaScript - https://blogs.esri.com/esri/arcgis/2015/08/19/qt-and-javascript-a-native-
match-made-in-heaven/
• Connect with us on GeoNet –- https://geonet.esri.com/community/developers/native-app-developers/arcgis-runtime-sdk-
for-qt
Questions?