arcgis runtime sdks: building android apps€¦ · content and presentation are separated arcgismap...

36
ArcGIS Runtime SDKS: Building Android Apps Rama Chintapalli Xueming Wu

Upload: others

Post on 16-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

ArcGIS Runtime SDKS: Building Android Apps

Rama Chintapalli

Xueming Wu

Page 2: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Agenda

➢ Introduction

➢ Functional Overview of SDK

➢ Key SDK Components

➢ What’s Latest/Coming

Page 3: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Building ArcGIS Android Apps

ArcGIS Navigator ArcGIS Collector ArcGIS Explorer

Page 4: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Getting Started with SDKSetup Guide

➢ Sign up for free ArcGIS Developers account

○ 50 credits a month, premium content,

○ register apps

https://developers.arcgis.com/sign-up

➢ Install Android Studio IDE

https://developer.android.com/studio

➢ Get Runtime Android SDK

○ Add dependencies in Gradle (or)

○ Download the SDK locally

https://developers.arcgis.com/android/latest/guide/install-and-set-up.htm

Page 5: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Gradle: Adding Runtime SDK Dependency

➢ Available from a maven repository hosted on Bintray

➢ Add maven repository to project build.gradle

repositories {

maven { url 'https://esri.bintray.com/arcgis' }

}

➢ Add SDK dependency in app module’s build.gradle

dependencies {implementation 'com.esri.arcgisruntime:arcgis-

android:100.5.0'

}

Page 6: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Build Your First Map AppAdd Mapview to Layout

app > res > layout >activity_main.xml

Page 7: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Build Your First Map AppSet Map to MapView

Page 8: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

SDK Resources

➢ Developers site - http://developers.arcgis.com/android

○ Guide Doc

○ API Reference

○ Samples Details

➢ GitHub

○ Samples Code

http://github.com/Esri/arcgis-runtime-samples-android

➢ GeoNet Community

http://geonet.esri.com/community/developers/

Page 9: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

SDK Resources ...

➢ Sample Viewer App

○ Available in Android Playstore○ https://play.google.com/store/apps/details?id=com.esri.sampleviewer&hl=en_US

➢ Dev Labs

○ Step by Step instructionshttps://developers.arcgis.com/labs/browse/?topic=any&product=Android

➢ Open Source Apps

○ https://developers.arcgis.com/example-apps/

Page 10: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Open Source Apps

Maps App Ecological Marine Unit Nearby Your App!

Your App Here!

Page 11: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Android CPU Architectures

➢ Supports ArmV7, x86 32 bit native libraries

➢ Support for 64 bit native libraries added in 100.5

○ Google Play Store deadline is Aug 2019

➢ ABI Filter

○ Filters the native lib

○ Reduces APK Size

➢ Multiple APK’s to PlayStore○ https://developer.android.com/studio/build/configure-apk-splits

And reducing APK size

Page 12: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

https://developers.arcgis.com/android/

Demo

Introduction

Page 13: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Rama

Functional Overview - SDK

Page 14: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

View Components

SceneViewMapView

GeoView

ArcGISMap ArcGISScene

GraphicsOverlay

Grid (MapView)

AttributionText

Callout

LocationDisplay

Magnifier

SketchEditor

Toolkit Components

Functional Overview of SDK

SceneViewMapView

GeoView

ArcGISMap ArcGISScene

ViewGroup

(android)

Page 15: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Functional Overview of SDK ...Model (Map/Scene) Components and their Source

FeatureLayer

ArcGISMap

ArcGISScene

Layers /

Tables

ArcGISTiledLayer

ArcGISVectorTiledLayer

ArcGISMapImageLayer

RasterLayer

WebTiledLayer

….

MobileMapPackage

(Local)

Webmap

(Service)

WebScene

(Service) WMSLayer

WMTSLayer

BingMapsLayer

ENCLayer

OpenSteetMapLayer

KMLLayer

ServiceFeatureTable

GeodatabaseFeatureTable

ShapefileFeatureTable

GeoPackageFeatureTable

ArcGISSceneLayer

PointCloudLayerArcGIS Pro/Desktop

ArcGIS Online ArcGIS Entreprise OGC/ Third Party

WFSFeatureTableMobileScenePackage

(Local)

Page 16: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Tasks & Other Components

Functional Overview of SDK ...

Map

Scene

Layer

LocatorTas

k

(Geocode)

RouteTask

(Network Analysis)

GeodatabaseSyncTask

(Geodatabase)

OfflineMapTask

OfflineMapSyncTask

ExportTileCacheTask

ExportVectorTileCacheTask

GeoprocessingTask

Portal

Security

Geometry

Symbols

Page 17: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Rama & Xueming

Key SDK Components

Page 18: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

https://github.com/Esri/maps-app-android

Demo

Maps App

Page 19: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Maps AppSDK Features

➢Map/MapView

➢Portal & Authentication - OAuth

➢Please search

○ Place suggestion

○ Geocoding

○ Reverse Geocoding

➢Routing

➢Graphic & GraphicsOverlay

Page 20: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

➢Content and presentation are separated

➢ArcGISMap defines content

○ Composed of basemap and operational layers

○ Loadable

○ Listeners - DoneLoading, LoadStatusChanged, BasemapChanged

○ Can be persisted as a webmap

➢MapView renders map content

○ Extends GeoView (android.view.ViewGroup)

○ Control visible extent of map using Viewpoint

○ Control Magnifier, SketchEditor, ViewInset, WrapAoundMode

○ Listeners

■ DrawStatusChanged, LayerViewStateChanged, and etc

■ MapRotationChanged, MapScaleChanged

Map/MapView

Page 21: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

➢AuthenticationManager

○ Manages user authentication for secured resources

○ Central place for

■ Setting an authentication challenge handler

■ Manage in-memory credential cache

■ Manage OAuth Configurations

■ Manage client/server certificates

➢DefaultAuthenticationChallengeHandler

○ UX for challenge

○ Credentials (http, token-based, client certificate)

○ Self-signed server certificate

Authentication

Page 22: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Authentication

AuthenticationManager.setAuthenticationChallengeHanderl(

new DefaultAuthenticationChallengeHandler(context));

Page 23: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Portal

➢A developer’s gateway to the portal information model

➢High-level, coarse-grained APIs to access, use, create, and share content

➢Key classes

○ Portal

○ PortalUser

○ PortalItem

○ PortalGroup

Page 24: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Geocoding

➢LocatorTask

○ Loadable

○ ListenableFuture

➢GeocodeParameters

➢GeocodeResult

○ List

■ DisplayLocation

■ Label

■ Score

■ Attributes

Page 25: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Routing

➢RouteTask

○ Loadable

○ ListenableFuture

➢RouteParameters

○ Get/Add stops

➢solveAsync

○ RouteResult - List

■ Routes

■ Messages

■ Barriers

Page 26: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Rama & Xueming

Offline

Page 27: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Offline PatternsServices Pattern

➢Services Pattern

○ On-Demand

■ User Controlled

○ Preplanned

■ Admin Controlled

Area 1

Area 2

Page 28: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Offline PatternsDesktop Pattern

➢Desktop Pattern

○ MobileMapPackages

■ Entire Map

○ RuntimeContent

■ Individual Layers

Page 29: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Demo

Offline

Page 30: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Demo

3D

Page 31: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

3DSDK Features

➢Line of Sight GeoElement

➢Viewshed Location

➢Mobile Scene Package

➢Point Cloud Layer

➢Integrated Mesh Layer

Page 32: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

What’s Latest

➢3D

○ MobileScenePackages

○ Subsurface Navigation

○ Point Cloud & Point Scene Layers

○ Performance Improvement

➢OfflineMaps

○ Referenced Basemaps

➢WFS

➢KML/ KML Tours

➢Annotation Layers

➢Next Gen Raster Tiled Packages (TPKX)

➢Next Gen Locators (LOZ)

➢Enhanced Symbology Model

Page 33: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

What’s Coming

➢Toolkit for Android

○ compass

○ scalebar

➢AR

➢Utility Network

➢OfflineMaps

○ Scheduled Updates

Page 34: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Agenda

➢ Introduction

➢ Functional Overview of SDK

➢ Key SDK Components

➢ What’s Latest/Coming

Page 35: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Please Share Your Feedback in the App

Download the Esri

Events app and find

your event

Select the session

you attended

Scroll down to

“Survey”

Log in to access the

survey

Complete the survey

and select “Submit”

Page 36: ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap defines content Composed of basemap and operational layers Loadable Listeners -

Q & A