34
Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Embed Size (px)

Citation preview

Page 1: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Developing Offline Apps with ArcGIS Runtime SDKsEuan Cameron

Justin Colville

Will Crick

Page 2: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Offline App CapabilitiesDisconnected Use of the ArcGIS Platform

• Viewing and Interacting with Maps

• Querying Data

• Editing Features- Synchronization

• Find places and locations

• Get directions

• Pre-planned or On-demand Workflows

• Occasionally Connected Scenarios

• All Runtime SDKs*

Developing Offline Apps with ArcGIS Runtime SDKs

Page 3: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

ArcGIS Runtime Architecture

Application

Smartphones

Tablets

Desktops

ArcGIS

Local Server

API

Core

Developing Offline Apps with ArcGIS Runtime SDKs

Page 4: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

ArcGIS Runtime Architecture

Application

ArcGIS

Smartphones

Desktops

Core

Local Server

API Tablets

Developing Offline Apps with ArcGIS Runtime SDKs

Page 5: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

Offline Capabilities

Demo

Developing Offline Apps with ArcGIS Runtime SDKs

Page 6: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

Maps and Data

Developing Offline Apps with ArcGIS Runtime SDKs

Page 7: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

The ArcGIS Platform – Working Offline

• Offline Apps Need Maps and Data!

• All Compute Platforms Support Going Offline- Online and Portal

- Server

- Desktop

• New Workflows- Critical for You to Understand These Workflows

Developing Offline Apps with ArcGIS Runtime SDKs

Page 8: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

From ArcGIS Online and Portal

Developing Offline Apps with ArcGIS Runtime SDKs

Author Prepare

ViewQuery

AnalyzeEdit

Synchronize

Download

Page 9: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

ArcGIS Online Data Licensing

• Always Review Data Usage Restrictions

• Supported Esri Services- Basemaps

• Esri Services Not Supported Offline- Geocoding

- Routing

Developing Offline Apps with ArcGIS Runtime SDKs

Page 10: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Offline With ArcGIS Server

Developing Offline Apps with ArcGIS Runtime SDKs

AuthorMap

PublishService

ViewQuery

AnalyzeEdit

Synchronize

Download

ArcGISDesktop

Page 11: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Offline With Desktop

Prepare Runtime Content

ViewQuery

AnalyzeGeocodeDirections

Provision

AuthorMap

ArcGISDesktop

Developing Offline Apps with ArcGIS Runtime SDKs

Page 12: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

Data Preparation

Demo

Developing Offline Apps with ArcGIS Runtime SDKs

Page 13: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Mixing and Matching

• Possible to Take a Hybrid Approach- Online basemaps

- ArcGIS Server feature services

- Geocoding and routing from Desktop

• The Hybrid Approach Will Be Common in Your Solutions- Optimize content delivery to match solution

Developing Offline Apps with ArcGIS Runtime SDKs

Page 14: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Optimizing The Data Provisioning Process

• Features and Basemap Content- On Demand – Retrieves data from the server when requested

- Uses server processing power and bandwidth for every client request

- Side-loading - Content created ahead of time and provisioned onto the device- Can help alleviate server load at busy times of the day

- Commonly used for basemaps

- Can work with feature data if the workflow is right- How often and how many features change on the backend?

• Networks and Locators- Side-loading is the only option

Developing Offline Apps with ArcGIS Runtime SDKs

Page 15: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

APIs for Building Offline Apps

Developing Offline Apps with ArcGIS Runtime SDKs

Page 16: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Working With Basemaps Offline

• ArcGIS Desktop Can Create Tile Caches

• Esri Basemaps- http://tiledbasemaps.arcgis.com/…

- AGOL basemap group

• ArcGIS Server Tiled Map Services

• Services Limit Extent- Administrator Sets the Limit

- Workable Size- Compression quality

- Estimations

• Consider Reusing Offline Basemaps

Developing Offline Apps with ArcGIS Runtime SDKs

Page 17: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

Taking ArcGIS Online Basemaps Offline

Demo

Developing Offline Apps with ArcGIS Runtime SDKs

Page 18: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Working With Operational Data OfflineIt is all about the features

• Read only access

• Work with Attachments and Relates

• Edit Features

• Use Popups

• Sync Changes with a Server

Developing Offline Apps with ArcGIS Runtime SDKs

Page 19: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Syncing With a Server

• Send Edits

• Versioned Data – download only

• Per Layer Sync – non versioned data

• Per Geodatabase Sync – versioned data (download only)

• Control Over Sync Direction- None

- Download changes only

- Upload edits only

- Download changes and upload edits - bidirectional

Developing Offline Apps with ArcGIS Runtime SDKs

Page 20: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Generating a Geodatabase and Showing Features

GeodatabaseTaskGeodatabase

GeodatabaseFeatureTable

GdbFeature

FeatureLayer

Layer

Graphic

Feature

fetchFeatureServiceInfo()new GenerateParams(fsInfo) - generateGeodatabase(params)

Geodatabase.getSyncParams() - syncGeodatabase()isSyncEnabled()getFeatureTables()hasLocalEdits()

createNewFeature()queryRelated()getAttachments()getFields()

getFeatures(x,y)selectFeatures()get/setRenderer()hideFeature()

geometry()attributes()

FeatureTable

add()update()delete()query() getFields()

Developing Offline Apps with ArcGIS Runtime SDKs

Page 21: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Offline and Online Features

GeodatabaseFeatureTableGdbFeature

FeatureLayer

Layer

Graphic

FeatureFeatureTable

Developing Offline Apps with ArcGIS Runtime SDKs

GeodatabaseFeatureServiceTable

Page 22: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

• A Feature is a Feature- No Difference for Online and Offline

- Programming model in general is the same

• Editing Features is Different- Local Geodatabase saves edits in the database

- Feature Service posts edits to the server when you tell it

Working With Features

Developing Offline Apps with ArcGIS Runtime SDKs

Page 23: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

Offline Features

Demo

Developing Offline Apps with ArcGIS Runtime SDKs

Page 24: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

How Does Sync Work?The Flow of Data

Generategeodatabase

enabled for sync

Feature servicewith sync enabled

Adds, edits, deletes Generate delta geodatabase

Upload delta

Retrieve response

Apply response to geodatabase

Developing Offline Apps with ArcGIS Runtime SDKs

Page 25: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Working With Locators Offline

• Prepared for Offline Use Using ArcGIS Desktop

• Programming Model Similar to Online Locators

• High Performance

Developing Offline Apps with ArcGIS Runtime SDKs

Page 26: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

Offline Locators

Demo

Developing Offline Apps with ArcGIS Runtime SDKs

Page 27: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

• Prepared for Offline Use Using ArcGIS Desktop

• Programming Model Similar to Online Networks

• High Performance

Working With Networks Offline

Developing Offline Apps with ArcGIS Runtime SDKs

Page 28: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |Esri UC 2014 | Technical Workshop |

Offline Networks

Demo

Developing Offline Apps with ArcGIS Runtime SDKs

Page 29: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

App development

• Killed/exited apps- Hold on to params (or with iOS jobid) and resubmit same job (with use cached

job=true)- If job still exists on the server, will not resubmit job

- If partial download on disk, will not resubmit job

- If error, will resubmit job

• Backgrounded iOS apps- Go to iOS session!

• Large data over 3G- Check for wifi access for ExportTilecCacheTask??

Developing Offline Apps with ArcGIS Runtime SDKs

Page 30: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Licensing Offline Capabilities for Your Apps

• Viewing Vector and Raster Data- Basic License

• Offline Feature Editing, Geocoding and Networks- Standard License

Developing Offline Apps with ArcGIS Runtime SDKs

Page 31: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Your Common Questions

• Is Versioned Data Supported?

• Are Related Tables Supported?

• What About Attachments?

• Will My Existing ArcGIS Services Work?

• How Does Conflict Detection Work?

Developing Offline Apps with ArcGIS Runtime SDKs

Page 32: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Questions?

Developing Offline Apps with ArcGIS Runtime SDKs

Page 33: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop |

Thank you…

• Please fill out the session survey:

First Offering ID: 2308

Online – www.esri.com/ucsessionsurveys

Paper – pick up and put in drop box

Developing Offline Apps with ArcGIS Runtime SDKs

Page 34: Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick

Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs