ArcGIS
a Platform for Developers
What can developers do
with Esri technology?
Data Visualization
3D
Routing
Public Information
Traffic Alerts
Native 3D Interactive Analysis
Native Open Source Example Applications
Jupyter Notebook
ArcGIS Platform
Web GIS
Getting Started
ArcGIS Developer Resources
Building Web Apps
Intro to the ArcGIS API for JavaScript
- Guide
- API Reference
- Many Samples
Hello World + Examples
Python
Intro to the ArcGIS API for Python
- Guide
- API Reference
- Many Samples
Quick Overview of the ArcGIS API for Python
-
A Pythonic GIS API
- Corresponds to best practices
- Uses standard Python constructs
- Data structures with clean, readable idioms
- Easy for a Python programmer to use ArcGIS
- Easy for an ArcGIS user to script and automate their GIS
Why Python?
- Popularity
- Productivity
- Interoperability
- Solves the “two-language” problem
- Scientific Python ecosystem
- Community
ArcGIS + Jupyter =
Building Native Apps
ArcGIS Runtime Overview
Architecture
- ArcGIS Runtime APIs – public APIs for multiple platforms
- Same capabilities across all APIs
- API surface is tailored to the relevant dev stack
ArcGIS Runtime Overview
- Esri’s developer product for native app development
- Incorporate ArcGIS functionality into mobile and desktop applications
- Web service client and local (offline) capabilities
- SDKs for .NET (including Xamarin), Android, iOS, Java, Qt, and macOS
ArcGIS Runtime Overview
- High-performance 2D and 3D mapping
-
Integration with Portal, ArcGIS Online, and ArcGIS Server
- Load, edit, and save web maps
- Use map, image, and feature services
- Geoprocessing for complex custom analyses
-
Work offline with local data and functionality
- Read local data (.mmpk, .tpk, etc)
- Geocode and Routing
- Geometric operations (buffer, etc)
- Take web maps offline
- Feature service editing and sync
Offline vs Online
Performance vs Availability
-
Offline Data and Services
- Sideload data/geocoders/network models for highly interactive performance
- No round-trip to a server
- Consider hybrid online + offline if appropriate
-
Consider Network Availability & Data Qualities:
- Do you need to edit? If not, perhaps side-loading is an option.
- Will many people get the same data? Maybe generate once, sideload often.
- Lots of data changing often? Try to sync when on WiFi.
- How fast is the network in the field?
- How consistent is the network in the field? Patchy?
Perfomance
Work on the device
-
GeometryEngine
- Manipulate geometry on the device
- Buffer, Union, Difference etc.
- Projection
-
Offline Data
- Data on the device for highly interactive performance
- No round-trip to a server
-
Graphics Overlays
- Dynamic Mode (smaller number of moving graphics – good interactive performance)
- Static Mode (large number of graphics – less interactive performance)
ArcGIS Runtime and you
ArcGIS Runtime SDKs
Where to start?
-
Developers Site - developers.arcgis.com
- It is free with your developer account
-
Each SDK
- Guides
- Reference Docs
- Forums
-
GitHub Repos - github.com/esri
- Toolkits
- Samples
DevLabs
- Step-by-step labs
- Less than 20 minutes
- No experience needed
- Learn in any order
Example Apps
-
ArcGIS Runtime in real apps
-
Best practices
-
Kick-start your new app
-
Take what you want
-
Open Source
Example Apps
Example Apps
Developer Community
GeoNet
Esri's Online Community
geonet.esri.com
Github
Hundreds of open source repos
github.com/esri
ArcGIS for Developers
By Jim Barry
ArcGIS for Developers
workshop
- 1,672