Post on 25-Jul-2020
transcript
ArcGIS Runtime SDK for Qt:
Building AppsKoushik Hajra and Thomas Dunn
Cross-platform
apps
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
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
Qt
Creator
IDE
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
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
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++
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
App patterns
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)
C++ / Qt Quick
Travel planner app
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
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)
QML / Qt Quick
Travel planner app
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
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
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
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/
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
Give us your feedback!