arcgis runtime sdk for android - esri · android building apps dan o’neill rama chintapalli....
TRANSCRIPT
![Page 1: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/1.jpg)
ArcGIS Runtime SDK for Android
Building Apps
Dan O’NeillRama Chintapalli
![Page 2: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/2.jpg)
Agenda
• Introduction
• Developer Patterns
• Maps & Layers
• Geometry & Graphics
• Portal & Authentication
• Offline
• Geocoding and Routing
![Page 3: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/3.jpg)
ArcGIS Android SDK
Introduction
![Page 4: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/4.jpg)
Getting startedIn 5 minutes
![Page 5: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/5.jpg)
Getting started with the SDK
1. Sign up for free Developers testing account
- 50 credits a month, premium content, register apps, test
tokens
2. Install Android Studio IDE
- https://developer.android.com/studio
3. Get dependencies automatically with Gradle and try it out
- Write an app!
![Page 6: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/6.jpg)
New developers - Follow first map app
tutorial• Developers site > Android > Guide
- http://developers.arcgis.com/android/latest/guide
- Help topics
• Getting started > Develop your first map app
• Step-by-step guide
![Page 7: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/7.jpg)
Existing developers - fork samples or example apps
• API samples
• Example apps
- Maps App
- Nearby
- Ecological Marine Units
GitHub Workflow• Fork
- The repo to have a local mirror of the repo
• Extending for your own use
- Use as a starting point to add specific features for your org
• Extend to contribute
- Create pull requests against your upstream to have your
contributions reviewed by the Example Apps team.https://esri.github.io/#Android
![Page 8: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/8.jpg)
Gradle: Add AAR dependency
• Maven repository hosted by Bintray
- AARs, Version history
• Project build.gradle
repositories {
maven {
url 'https://esri.bintray.com/arcgis'
}
• App module build.gradle
dependencies {
compile 'com.esri.arcgisruntime:arcgis-android:100.0.0'
}
![Page 9: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/9.jpg)
SDK resources• Developers site - http://developers.arcgis.com/android
- Doc – guide, API Reference
- Downloadable SDK
- Application support
• GitHub
- Samples - http://github.com/Esri/arcgis-runtime-samples-android
- Example apps
• GeoNet user community
- http://geonet.esri.com/community/developers/native-app-developers/arcgis-runtime-sdk-for-android
Stack Exchange #arcgis-android
![Page 10: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/10.jpg)
Features
• Build apps for Android devices
• Visualize geographic data – maps, layers, graphics
- feature, dynamic, tiled, raster, …
• Identify features, query data, and display info pop-ups
• Share maps and content across ArcGIS platform
• Offline maps, data, routing, geocoding
• Powerful analysis and local geometric operations
• Loadable resources
• Async APIs using ListenableFutures
![Page 11: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/11.jpg)
Dan
Developer Patterns
![Page 12: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/12.jpg)
Loadable
• A pattern for classes that asynchronously load data
- Service calls, disk I/O, data processing…
- Layers, Map, Portal Items, Geodatabase, Tile Cache, Features etc
• Formalizes, enhances, and improves upon concepts that we had
before
- Provides a generic API across different types of classes
Loading
Failed To
LoadLoaded
Not
Loaded
![Page 13: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/13.jpg)
Loadable pattern
• Loadable is async
- Specific pattern for load errors
- Has additional states
- Can reload if failed
- Supports chaining of loading
- Uses listeners
https://developers.arcgis.com/android/latest/guide/loadable-pattern.htm
![Page 14: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/14.jpg)
Map Loaded
● LoadStatusChangedListener
● LoadStatusChanged
● Status
○ Loading
○ Not Loaded
○ Failed to Load
○ Loaded
![Page 15: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/15.jpg)
ListenableFuture pattern
• Asynchronous methods use ListenableFuture
- A promise to return a result
- Add done listener, or call get (blocking)
• Can simplify asynchronous programming
- we take care of executing operations on
background threads
- standard pattern for errors
![Page 16: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/16.jpg)
LocatorTask
● Future is a proxy or wrapper
around an object that is not
there yet
● geocodeFuture
○ Returns future
GeocodeResult
○ The promise that a
GeocodeResult will be
available in the future
○ Retrieve it with
geocodeFuture.get()
![Page 17: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/17.jpg)
ListenableList pattern
• Bind to data
• Add Listener to know when content changes
• Implemented on
- Graphics in a GraphicsOverlay
- LayerList (operational, base, reference layers)
- Sublayers in SublayerList
- Bookmarks
![Page 18: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/18.jpg)
Add Graphic to GraphicsOverlays
![Page 19: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/19.jpg)
Dan
Maps & Layers
![Page 20: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/20.jpg)
Map/MapView split
• MVC architecture
• Maps as a first class citizen
• GraphicsOverlay
MapView ArcGISMap
Layer
RasterLayer MapImageLayer TiledLayer
GraphicsOverlay
FeatureLayer
![Page 21: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/21.jpg)
Map/MapView
• Content and presentation are separated
• ArcGISMap - separate class that defines content
- MapView references ArcGISMap
- Open a map, or build in code, modify, save
• MapView extends android.view.ViewGroup
- GraphicsOverlay(s), LocationDisplay, …
- Control visible extent of Map using Viewpoints
• Listenable lists of layers, bookmarks
![Page 22: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/22.jpg)
Where Do Maps Come From?
• Portal (web maps)
- Create with a PortalItem or URL
• Pro (mobile maps)
- Access maps inside a Mobile Map Package
• You!
- Create a map in code
- Save to a portal
- Web maps and mobile maps will be different portal item types
- Save locally
![Page 23: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/23.jpg)
Change Basemaps
DEMO
![Page 24: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/24.jpg)
Rama
Geometries & Graphics
![Page 25: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/25.jpg)
Geometry
• Immutable
• Has a spatial reference
• Can have z and m values
• Can be converted to/from Json
• Can create or modify with Builders
• Curves…
![Page 26: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/26.jpg)
Geometry Builder - An Example
![Page 27: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/27.jpg)
Geometry Operations
• Geometry Engine
- Buffer
- Clip
- Area
- GeodeticArea
- Project
- DistanceGeodetic
...more
Coordinate Conversion & Geographic Transformations in coming
releases
![Page 28: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/28.jpg)
Graphics Overlay
• Temporary graphics added to MapView ONLY
• Contain List of Graphics
- Graphic (Attributes, symbol, geometry)
• Renderer
• Rendering mode
-Dynamic – better UX for display
-Static – good for lots of graphics
![Page 29: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/29.jpg)
Map Sketching
DEMO
![Page 30: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/30.jpg)
Rama
Portals & Authentication
![Page 31: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/31.jpg)
AuthenticationManager & Authentication Challenge Handler
• Authentication Manager
- Manages user authentication for secured resources
- Central place for
- Setting an authentication handler
- Manage in-memory credential cache
- Manage OAuth Configuration
- Manage certificates
• AuthenticationChallengeHandler
• UX for challenge
• Credentials (http, token-based)
• PKI certificates
• Self signed certificates
![Page 32: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/32.jpg)
DefaultAuthenticationChallengeHandler
exampleAuthenticationManager.setAuthenticationChallengeHandler(
new
DefaultAuthenticationChallengeHandler(context));
![Page 33: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/33.jpg)
Security pattern – Oauth 2.0
• OAuthConfig
• Add to AuthenticationManager
• Use with DefaultAuthenticationChallengeHandler
• Also need to use DefaultOauthIntentReceiver
• Or use OAuthLoginManager directly
![Page 34: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/34.jpg)
OAuthManager with default challenge
handler example
AuthenticationManager.setAuthenticationChallengeHandler(
new DefaultAuthenticationChallengeHandler(context));
OAuthConfiguration config = new OAuthConfiguration(
<Portal URL>, <Client ID>, <Redirect URI>);
AuthenticationManager.addOAuthConfiguration(config);
![Page 35: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/35.jpg)
Portal API
• 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 36: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/36.jpg)
Portal - Workflows• Search for content and groups
• Portal.findItemsAsync(portalQueryParams)
• Portal.findGroupsAsync(portalQueryParams)
• Add, modify, and share content
• PortalUser.addPortalItemAsync(item, params, folder)
• PortalItem.updateDataAsync(json)
• PortalItem.shareWithGroupsAsync(groups)
![Page 37: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/37.jpg)
Portal - Workflows
• Access foundational content of a portal
• Basemaps
• Featured Groups
![Page 38: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/38.jpg)
Portal - Workflows
• Access user’s content and groups
• PortalUser.fetchContentAsync()
• PortalUser.fetchContentInFolderAsync(folder)
• PortalUser.getGroups()
![Page 39: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/39.jpg)
Authentication & Portal
DEMO
![Page 40: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/40.jpg)
Dan & Rama
Offline
![Page 41: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/41.jpg)
Offline Patterns - Create Offline Content
Desktop:
• Consume Mobile Map Packages
created in ArcGIS Pro
• Consume Runtime Content created
in ArcMap
• Best for single user
• Network datasets for offline routing
Service:
• Programmatic pattern to support
large number of users
• Can use map extent to select parts of
database to download to device
![Page 42: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/42.jpg)
Mobile Map Packages
• Share maps and basemaps with mobile apps
• Consolidates into a single file (*.mmpk)
• Can be shared with organizational account
• Use cases include navigation and geocoding
- Custom locators
- Custom networks
![Page 43: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/43.jpg)
Open MMPK
● Provide a path
● Loadable
● Get Maps
● Get descriptions
● Get Thumbnails
● Load Async
![Page 44: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/44.jpg)
Open Mobile Map Package
DEMO
![Page 45: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/45.jpg)
Service Pattern - Create Offline Content
• GeodatabaseSyncTask
- Can generate an offline geodatabase
- Can sync edits made to offline geodatabase
• ExportTileCacheTask
- Can generate a TileCache from a service
![Page 46: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/46.jpg)
ExportTileCacheTask - Sample Code
![Page 47: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/47.jpg)
GeodatabaseSyncTask - SampleCode
![Page 48: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/48.jpg)
Dan
Geocoding & Routing
![Page 49: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/49.jpg)
Geocoding API
LocatorTask
- Loadable
- Future - Promise
GeocodeResult
- List
![Page 50: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/50.jpg)
Geocoding API
Display Results
- ListenableList
- Add Graphic to
GRaphicsOverlay
s
![Page 51: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/51.jpg)
Routing API -
WorkflowRouteTask
- Loadable
- Future - Promise
RouteParameters
- List
- Get/Add Stops
SolveAsync
- RouteResult - List
Display
- Graphic from RouteResult
- Add to GraphicsOverlay
![Page 52: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/52.jpg)
Geocode and Route
DEMO
![Page 53: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/53.jpg)
Dan
Moving Forward
![Page 54: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/54.jpg)
What’s coming
• Supporting the ArcGIS Platform
- Webmap layers
• Supporting 10.2.x equivalency issues (not all of them!)
- Image services
- Related tables
• Adding key new capabilities related to the ArcGIS Platform
- 3D on mobile
![Page 55: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/55.jpg)
Agenda
• Introduction
• Developer Patterns
• Maps & Views
• Geometry & Graphics
• Portal & Authentication
• Offline
• Geocoding and Routing
![Page 56: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/56.jpg)
Thank You
![Page 57: ArcGIS Runtime SDK for Android - Esri · Android Building Apps Dan O’Neill Rama Chintapalli. Agenda ... •Asynchronous methods use ListenableFuture-A promise to return a result-Add](https://reader030.vdocuments.mx/reader030/viewer/2022011907/5f47977d54ca59264f0caacc/html5/thumbnails/57.jpg)