arcgis runtime sdk for qt: hit the ground running...build qml apps for linux, windows, android, ios...

24
ArcGIS Runtime for Qt: Hit the ground running! with Thomas Dunn and Koushik Hajra

Upload: others

Post on 17-Apr-2020

31 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

ArcGIS Runtime for Qt:Hit the ground running!

withThomas Dunn and Koushik Hajra

Page 2: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

What if ...?

Page 3: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Agenda for today

▪ Intro to Qt, QML and Runtime

▪ Qt Widgets (C++) development

▪ Qt Quick (QML) development

This is an intro-level tech session

Page 4: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

What is Qt?

• Cross-platform libraries• High-level abstractionsEasy

• Write once, run anywhere• Builds as native C++Portable

• Pre-built platforms• Source codeOpen

http://qt.io

Page 5: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Qt Creator

▪ The IDE for Qt development

▪ Use Qt Creator on Linux, OS X or Windows

▪ Qt Creator comes with the Qt SDK from the Qt Company

http://www.qt.io/download/

Page 6: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

What is ArcGIS Runtime SDK for Qt?

▪ Build advanced mapping apps for mobile & desktop clients

▪ Build apps that leverage the ArcGIS platform

▪ Build C++ apps for Linux and Windows

▪ Build QML apps for Linux, Windows, Android, iOS and OS X

▪ Build natively on top of Runtime’s C++ core and GPU acceleration

▪ Build apps that are connected to network services or disconnected

Page 7: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Runtime platforms

Qt

OS X

Windows Store

JavaSE

iOS

Android

Windows Phone

Mobile

Desktop

Embedded

.NET

Windows Desktop

Qt

Page 8: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Runtime platforms

QT

OS X

Windows Store

JavaSE

iOS

Android

Windows Phone

Mobile

Desktop

Embedded

.NET

Windows Desktop

Page 9: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

http://Developers.esri.com

Page 10: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

How do I install it?

▪ Install the Qt SDK from the Qt Company (use the latest: 5.4.1)

▪ Log onto ArcGIS Online with your developer account

▪ Download ArcGIS Runtime SDK for Qt

▪ Run the installer and the post installer

Page 11: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Installation tips

Demo

S

Page 12: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Qt Widgets ( C++ )development

Page 13: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Map layers

Layers are added to the map in order, bottom-to-top

Graphics layers: live / temporary data:Vehicles, people, events

Basemap layer: spatial contextImagery, topography

Operational layers: dynamic featuresFacilities, buildings, zones, networks

Page 14: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Where do I get data?

▪ Online Services: access these via a URL– ArcGIS Online: your organizations data or data available to the public

▪ http://services.arcgisonline.com/ArcGIS/rest/services

▪ Local Content: author packages and deploy them with your app– Use a tile package as a high performance base map layer– Query from a local map service build from a map package– Geocode using locator files

Page 15: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Task-based framework for asynchronous operations

1. Construct a task object

2. Provide parameters

3. Connect slots for completion

signals

4. Execute task

5. Grab results in slot when task

completes

Some Runtime tasks:o Locator (geocoding) o Routing o Geoprocessingo Geodatabase synco Findo Queryo Identify featureso Find closest facilityo Calculate service areao Tile cache generation

Page 16: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

C++ apps

Demo

Page 17: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Qt Quick ( QML )Development

Page 18: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

What is QML?

▪ The language for the Qt Quick product from The Qt Company

▪ A declarative language for building cross-platform apps

▪ Declaring components is similar to writing JSON or CSS

▪ Writing functions is similar to writing JavaScript

▪ Easy to read, easy to write

▪ Create UI rapidly with animation and prebuilt controls

http://qt.io/qt-quick/

Page 19: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

ArcGIS Runtime and QML

▪ Extends QML by adding QML types with much of the functionality of ArcGIS Runtime C++ API

https://developers.arcgis.com/qt/qml/guide/qml-and-esri-s-qml-api.htm `

Page 20: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

QML apps

Demo

Page 21: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Licensing levels

▪ DeveloperAll functionality available while you develop your app (with a developer account)Displays map watermark and debug messages to the console

▪ BasicThe basics for online app development, that is, all functionality except– Offline locators - Offline routing – Offline editing - Local geodatabase sync operations with an upload

▪ StandardAll functionality

https://developers.arcgis.com/qt/qml/guide/license-your-app.htm

Page 22: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Where to from here?

Log onto ArcGIS Onlinehttps://www.arcgis.com/home/signin.html

https://developers.arcgis.com/qt/

https://developers.arcgis.com/qt/cpp/sample-code/

https://geonet.esri.com/community/developers/native-app-developers/arcgis-runtime-sdk-for-qt

Page 23: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Sample apps

Demo

Page 24: ArcGIS Runtime SDK for Qt: Hit the Ground Running...Build QML apps for Linux, Windows, Android, iOS and OS X Build natively on top of Runtime’s C++ core and GPU acceleration Build

Related sessions

▪ Real-world Native App Design Using Qt/QML– Today 1:00 – 2:00 pm in the Santa Rosa Room

▪ Build and Android and iOS App in 20 Minutes– Today 2:30 – 3:00 pm in Demo Theater 1 (Oasis 1)

▪ C++ Unchained: Extending the QML API of ArcGIS Runtime for Qt– Today 4:30 – 5:00 pm in Mesquite B

▪ The Road Ahead: ArcGIS Runtime– Tomorrow 8:30 – 9:30 am in Primrose A

Rate this session at: www.esri.com/RateMyDevSummitSession