arcgis runtime sdk for qt: building apps · agenda for today •intro to qt framework and arcgis...

22
ArcGIS Runtime SDK for Qt : Building Apps Koushik Hajra and Thomas Dunn

Upload: others

Post on 25-Jul-2020

46 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

ArcGIS Runtime SDK for Qt:

Building AppsKoushik Hajra and Thomas Dunn

Page 2: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Cross-platform

apps

Page 3: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Agenda for today

• Intro to Qt Framework and ArcGIS Runtime SDK for Qt

• App design patterns with this SDK

• Resources for developers

• This is an intro-level tech session

Page 4: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

What is the Qt Framework?

• Write once, run anywhere

• Builds as native C++Portable

• Cross-platform libraries

• High-level abstractionsApproach-

able

• Pre-built some platforms

• Source code availableOpen

http://qt.io/whitepapers

Page 5: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Qt

Creator

IDE

Page 6: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

What kind of apps can you build?

• Advanced, native mapping apps

for mobile & desktop clients

- Linux, Windows, Android, iOS and

OS X

- Take advantage of Runtime’s C++

core and GPU acceleration

• Leverage the power and versatility

of the ArcGIS platform

• Build apps that work whether

connected or disconnected

Page 7: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

ArcGIS Runtime session tracks at DevSummit 2017

• ArcGIS Runtime SDKs share a common core, architecture and design

• Functional sessions promote common capabilities and workflows

- An Introduction to the API and Architecture

- Working with Your Portal

- Building Great User Experiences

- Styling Maps

- Working with Maps Online and Offline

- Editing Your Data Online and Offline

- Maximizing Performance of Your Apps

- Analysis

- Building 3D Applications

• Product sessions promote specific development experiences

• Demo theaters highlight examples of specific technical capabilities

Shared workflows, any platform, any device

.NET iOS macOS Android Java Qt

ArcGIS Runtime core

Page 8: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Consider using the ArcGIS Runtime SDK for Qt

• When you are building apps for more than one O/S and want

- Same code

- Same workflow

- Access to device’s sensors

- Support of a vibrant open-source community and Qt ecosystem

• When you have in-house experience with Qt Framework, QML, JavaScript, or C++

Page 9: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Getting ready to write some code

• Install the Qt Framework from the Qt Company

• Log onto ArcGIS Online with your developer subscription

• Download ArcGIS Runtime SDK for Qt

• Run the installer and the post installer

Page 10: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Developers.ArcGIS.com

Page 11: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

App patterns

Page 12: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Using the C++ API

• Provides all Runtime capabilities

• Create your UI with Qt Quick (all platforms)

• Create your UI with Qt Widgets (desktop platforms)

• The C++ API provides access to Local Server (Windows and Linux only)

Page 13: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

C++ / Qt Quick

Travel planner app

Page 14: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Using the QML API

• The declarative language from The Qt Company

• Declare components similarly to writing JSON or CSS

• Write procedural code as JavaScript functions

• Create UI rapidly with Qt Quick, with animation and prebuilt controls

• ArcGIS Runtime extends QML with types encapsulating ArcGIS functionality

Page 15: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Default properties in QML

• Declaring within a component another component of a specific type sets a specific

default property associated with that type

• Example: Map type

- Basemap – Sets the basemap property

- Viewpoint – Sets the initialViewpoint

property

- Layer - Appended operationalLayers

property (a list of layers)

Page 16: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

QML / Qt Quick

Travel planner app

Page 17: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

QML and C++ app patterns

App pattern API to use

Map view

QML type (class)

Runs on

Windows and

Linux and macOS

Runs on iOS and

Android

QML with Qt Quick QML MapView Yes Yes

C++ with Qt Quick C++ MapQuickView Yes Yes

C++ with Qt Widgets C++ MapGraphicsView Yes No

Commonly-used pattern

Page 18: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Qt Framework licensing

• The Qt for Application Development license model applies in most cases

• Dual-licensed under commercial and open source licenses

- Commercial

- Full rights to create and distribute software

- Open-source

- Qt 5.6.x – LPGLv2.1

- Qt 5.7.x and up – GPL and LGPLv3

• For details, visit https://www.qt.io/licensing

Page 19: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

ArcGIS Runtime SDK v100.x License Model

Standard

• License Key

• All capabilities of Basic

• Access to additional data

• Raster layers

• Raster elevation sources

• Local Server

• Map services

• Feature services

• Edit file geodatabases

• GP services

• Subset of ArcGIS Desktop

basic tools

Advanced

• License Key

• All capabilities of Standard

• Local Server

• Feature services

• Edit enterprise geodatabases

• GP services

• Subset of ArcGIS Desktop

standard and advanced

tools

Basic

• Named User – Level 2

• License Key

• All capabilities of Lite

• Simple feature editing

• Add, update, delete content on

portals

• Use of ArcGIS Online analysis

services

Lite

• Named User – Level 1

• License Key

• View maps, scenes, layers, packages

from the ArcGIS Platform

• Routing

• Place finding

Analysis Extension

• License Key

• Local Server GP tools

• 3D Analyst

• Spatial Analyst

• Network Analyst

Page 20: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Where to from here?

• Create a developer account

- https://www.arcgis.com/home/signin.html

• Download Qt Framework and ArcGIS Runtime SDK for Qt

- https://developers.arcgis.com/qt/latest/qml/guide/install-and-set-up-on-windows.htm et al

• Read the guide fundamental topics

- https://developers.arcgis.com/qt/latest/qml/guide/arcgis-runtime-sdk-for-qt.htm

• Study and modify the samples

- https://github.com/Esri/arcgis-runtime-samples-qt

• Use the Forum and join the community discussion

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

for-qt/

Page 21: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

AppStudio Sessions

Wednesday, March 8

4:00 PM – 5:00 PM

Primrose A (PSCC)

Developing Cross-Platform Native Apps

with AppStudio for ArcGIS (The Basics)

5:30 PM - 6:30 PM

Primrose A (PSCC)

Developing Cross-Platform Native Apps

with AppStudio for ArcGIS (Advanced)

http://bit.ly/devsummit2017

Thursday, March 9

10:30 AM – 11:00 AM

Demo Theater 3 – Oasis 1

AppStudio for ArcGIS: Quick Guide for

JavaScript Developers

11:00 AM – 11:30 AM

Demo Theater 3 – Oasis 1

Building Effective User Experience with

AppStudio for ArcGIS

Page 22: ArcGIS Runtime SDK for Qt: Building Apps · Agenda for today •Intro to Qt Framework and ArcGIS Runtime SDK for Qt •App design patterns with this SDK •Resources for developers

Give us your feedback!