ArcGIS Runtime SDKs: Using QML to Build Native Cross-Platform...

Preview:

Citation preview

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?

Recommended