ArcGIS Runtime SDK for Android An Introduction. Xueming

Similar documents
Hit the Ground Running. ArcGIS Runtime SDK for Android

Building Android Apps Runtime SDK for Android

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

ArcGIS Runtime SDK for Java: A Beginner s Guide. Mark Baird JC Malott

Building Applications with ArcGIS Runtime SDK for Android Part II. Will Crick Dan O Neill

Developing mapping applications with ArcGIS Runtime SDK for ios. Divesh Goyal Eric Ito

Developing Mobile Apps with the ArcGIS Runtime SDK for.net

Getting Started with ArcGIS Runtime SDK for Java SE

ArcGIS Runtime SDK for ios and macos: Building Apps. Suganya Baskaran, Gagandeep Singh

Getting Started with ArcGIS Runtime SDK for the Microsoft.NET Framework. Morten Nielsen Mike Branscomb Antti Kajanus Rex Hansen

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

Best Development Practices and Patterns Using ArcGIS Runtime SDK for Android. Xueming Wu Puneet Prakash

Building Java Apps with ArcGIS Runtime SDK

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

ArcGIS Runtime SDK for WPF

Collaborate. w/ ArcGIS Runtime SDK for Android

Getting Started with ArcGIS Runtime SDK for Qt. Thomas Dunn & Nandini Rao

ArcGIS Runtime SDK for Qt: Building Apps. Koushik Hajra and Lucas Danzinger

Building WPF Apps with the new ArcGIS Runtime SDK for.net. Antti Kajanus Mike Branscomb

ArcGIS Runtime: Working with Maps Online and Offline. Will Crick Justin Colville [Euan Cameron]

Developing Qt Apps with the Runtime SDK

Transitioning to the ArcGIS Runtime SDK for.net. Antti Kajanus & Mike Branscomb

ArcGIS Runtime SDK for Java: Building Apps. Tyler Schiewe

ArcGIS Online: Best Practices for High-Demand Web Applications. Kelly Gerrow-Wilcox Bonnie Stayer Beth Romero

ArcGIS Runtime SDK for.net Building Apps. Rex Hansen

ArcGIS Enterprise Security: An Introduction. Gregory Ponto & Jeff Smith

ArcGIS API for JavaScript: Getting Started Andy René

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella

Bringing your Data to Life in the ArcGIS API for JavaScript: Vector Tiles. Craig Williams &

Navigator for ArcGIS Presented by

ArcGIS Runtime SDKs Building Offline Apps. Nick Furness

Getting Started with the ArcGIS Runtime SDKs. Dave, Will, Euan

Collector for ArcGIS: What s New. Chris LeSueur & James Tedrick

Web AppBuilder Presented by

ArcGIS Runtime SDK for.net: Building Xamarin Apps. Rich Zwaap Thad Tilton

Best Practices for Designing Effective Map Services

Desktop Mapping: Creating Vector Tiles. Craig Williams

An introduction to ArcGIS Runtime

Desktop Mapping: Creating Vector Tiles. Craig Williams &

Integrate GIS Functionality into Windows Apps with ArcGIS Runtime SDK for.net

Developing ios & Mac apps with ArcGIS Runtime SDK. Suganya Baskaran, Divesh Goyal

ArcGIS Server and Portal for ArcGIS An Introduction to Security

Architect your deployment using Chef

Getting Started ArcGIS Runtime SDK for Android. Andy

Developing Advanced Web Applications Which Utilize Image Services and the JS API. Naila Khan, Wenxue Ju

Getting Started with ArcGIS for Server. Charmel Menzel and Ken Gorton

Imagery in a WebGIS. Wenxue Ju & Naila Khan

Building Apps with the ArcGIS Runtime SDK for ios

ArcGIS Runtime SDKs: Building a Routing Application. Frank Kish Konstantin Kutsner

Getting Started with ArcGIS Runtime SDK for ios and OS X. Divesh Goyal & Mary Harvey

Introduction to ArcGIS API for Flex. Bjorn Svensson Lloyd Heberlie

Creating Web Mapping Applications. Nikki Golding

Building Mashups Using the ArcGIS APIs for FLEX and JavaScript. Shannon Brown Lee Bock

Getting Started with the ArcGIS API for JavaScript. Julie Powell, Paul Hann

ArcGIS Enterprise: Portal Administration BILL MAJOR CRAIG CLEVELAND

The Road to Runtime. Mark Cederholm UniSource Energy Services Flagstaff, Arizona

Sharing Web Layers and Services in the ArcGIS Platform. Melanie Summers and Ty Fitzpatrick

Building Basemaps: MapCaches and VectorTiles. Matthias Schenker Gerhard Trichtl

TRAINING GUIDE. Lucity GIS. Web Administration

ArcGIS GeoEvent Server: Making 3D Scenes Come Alive with Real-Time Data

Advanced Development with ArcGIS API for Silverlight. Morten Nielsen Rex Hansen Jennifer Nery

Enabling High-Quality Printing in Web Applications. Tanu Hoque & Jeff Moulds

Working with Feature Layers. Russell Brennan Gary MacDougall

ArcGIS Runtime: Styling Maps. Ralf Gottschalk, Daniel Lee, Lucas Danzinger

Sharing 3D Content on the Web

Basic Steps for Creating an Application with the ArcGIS Server API for JavaScript

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

ArcGIS Apps for the Mobile Worker. Presented by: Sue Enyedy-Goldner

ArcGIS Apps for the Mobile Worker. Presented by: Sue Enyedy-Goldner

ArcGIS Apps for the Mobile Worker. Presented by: Sue Enyedy-Goldner

1. License. 2. Introduction. a. Read Leaderboard b. Write and Flush Leaderboards Custom widgets, 3D widgets and VR mode...

ArcGIS for Developers: An Introduction. Moey Min Ken

Building Applications with the ArcGIS Runtime SDK for WPF

ArcGIS Viewer for Flex An Introduction

ArcGIS Online: Developing Web Applications with Routing Services. Deelesh Mandloi Dmitry Kudinov

Getting Started with ArcGIS Runtime. Jeff Shaner David Cardella

EUCOM/AFRICOM DEFENSE USER GROUP MEETING MARCH 2010 STUTTGART WELCOME!

ArcGIS Viewer for Microsoft Silverlight An Introduction

What s New in ArcGIS 10.4 for Server

Esri Developer Summit in Europe Building Applications with ArcGIS Runtime SDK for Java

Navigator for ArcGIS an Introduction

3D in the Browser with WebGL. Chris Andrews 3D Product Manager Javier Gutierrez 3D Product Engineer

Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

ArcGIS Enterprise Security: An Introduction. Randall Williams Esri PSIRT

Administering Your ArcGIS Enterprise Portal Bill Major Craig Cleveland

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird

A Developers Guide To Mobile GIS. David Cardella, Jeff Shaner

Securing ArcGIS for Server. David Cordes, Raj Padmanabhan

ArcGIS API 4.x for JavaScript Advanced Topics. René

Getting Started with the Smartphone and Tablet ArcGIS Runtime SDKs. David Martinez, Kris Bezdecny, Andy Gup, David Cardella

ArcGIS Runtime: Maximizing Performance of Your Apps. Will Jarvis and Ralf Gottschalk

Configuring ArcGIS Enterprise in Disconnected Environments

Introducing Survey123 For ArcGIS

ArcGIS for the Military: MIL-STD-2525D Joint Military Symbology. Andy Bouffard Jim Weakland

Implementing a Hybrid Approach to ArcGIS. Philip McNeilly and Margaret Jen

Developing Imagery Apps Using the ArcGIS API for JavaScript and WebApp Builder. Naila Khan, Chayanika Khatua

ArcGIS Runtime: Building 3D Apps. Rex Hansen Adrien Meriaux

ArcGIS Viewer for Silverlight Advanced Topics

ArcGIS Online. The Road Ahead Geoff Mortson

What s New for Developers in ArcGIS Maura Daffern October 16

Transcription:

ArcGIS Runtime SDK for Android An Introduction Dan O Neill @jdoneill @doneill Xueming Wu @xuemingrocks

Agenda Introduction to the ArcGIS Android SDK Maps & Layers Basemaps (Portal) Location Place Search Routing Authentication Maps App Quartz

Intro to SDK ArcGIS Runtime SDK for Android

SDK Introduction - Features of the ArcGIS Android SDK High performance Mapping and GIS capabilities Add and query content from your Organization Work offline with Basemaps and operational data Display maps in support spatial references Work with your device GPS Offline/Online routing Add graphics to maps Advanced geometric and spatial analysis operations

SDK Introduction - What you get Rich mapping API for native Android app development - multiple ways to get API Android Library module (AAR) from a public maven repository - Preferred way to work with the SDK API Reference (Javadoc) & Guide documentation - developers.arcgis.com/android Suite of samples - GitHub samples User Forum - GeoNet/GIS Stack Exchange Blogs - Developer blogs for Android

SDK Intro - How to get the SDK Android Studio - Official IDE for Android development - Based on IntelliJ IDEA - Project & File Structure - Android project view Gradle - Android plugin for Gradle - Groovy Goodness - Flexible build system - custom build logic - Manage dependencies - Runs independent of Android Studio

SDK Intro - How you get the SDK Add repository URL Add ArcGIS Android dependency

DEMO Your first android app - Hello World

SDK Introduction - Samples Open Source Samples Get an account (if you don t already have one) Fork the repo Clone the repo locally Import project into Android Studio Run Sample

DEMO Fork/Clone the Samples

SDK Intro - What s in the local SDK SDK Download doc - API Ref - Javadoc legal - license info libs - dependency jars and native libs - local ArcGIS Android SDK Library Module AAR res - localization files resources - Military symbol dictionaries samples - archive snapshot of samples from GitHub

SDK Intro - What s exclusive in the local SDK Localization resources - Localization of Popups Advanced Symbology symbol dictionaries - APP6B and MIL2525 C symbol dictionaries Beta Analysis libs - Native libs to support offline Spatial Analysis

Maps & Layers

Maps & Layers Layer Types DynamicLayer FeatureLayer GraphicsLayer GroupLayer KmlLayer RasterLayer TiledLayer

Maps & Layers Dynamic Layers Abstract Base Class Sub-classes - ArcGISDynamicMapServiceLayer - ArcGISImageServiceLayer - WMSLayer

Maps and Layers TiledLayer Abstract Base Class Direct sub-classes - ArcGISLocalTiledLayer - TiledServiceLayer Indirect sub-classes - ArcGISTiledMapServiceLayer - BingMapsLayer - OpenStreetMapLayer - WMTSLayer

Maps & Layers Graphics Layer Layer representing one or more Graphics - Dynamically display Graphics on a MapView - Graphics can be geometries or features MapView can contain one or more GraphicLayers

Basemaps Portal

Basemaps ArcGIS Online provides a living atlas of the world Delivered as map service Freely available to anyone Include World Imagery World Street Map World Topographic Map Ocean Basemap and more

Basemaps - From Portal How to get them in your app Portal Provides the connection information to the portal PortalInfo Name, logo, featured items, etc PortalGroup Represents a group in a portal PortalItem Represents an item in a portal PortalQueryParams Creates query parameters for finding content PortalQueryResult Results of the queries performed on a portal

Location

Location - GPS Use the power of your device to show where you are Knowing where you are allows apps to return smarter information back LocationDisplayManager provides the current location - Device location on a Map - Auto pan - Listen to events - pause - resume

DEMO BASEMAP & Location https://github.com/esri/arcgis-runtime-demos-android/tree/master/2015- DS/MaterialBaseMaps

Place Search

Place Search - Geocoding ArcGIS Online Geocoding service - Global coverage Locator uses this in default constructor Find method allows for address and POI search LocatorFindParameters - Set source Country - Point and radius parameters - Set Max returned location candidates Locator.find(LocatorFindParameters)

Place Search search suggestions LocationSuggestionParameters - Results in radius are promoted - Sorted by distance to point - Results outside radius still returned Locator.suggest(LocationSuggestionParameters)

Place Search Toolkit Simplification ArcGIS Android Toolkit API Provides GeocodeHelper class Find location for a given address Simplifies the workflow - No need to set parameters and get result from a Locator

DEMO Place Search

Routing

Routing API - Workflow Create a Route Task Set up Route Task Parameters Set stops Calculate route Get results Display route on map Get directions and display to user

DEMO Routing

Authentication

Authentication When do you need to authenticate - Access users private content - Create and publish content - Access premium content on ArcGIS Online Authentication modes - Token-based - HTTP/Windows - PKI

OAuth Have you heard about OAuth? Authentication patterns - User login - App login User login - Allow ArcGIS Online users to authorize your application on their behalf - Two steps process: - authorization authorization code - exchange code for tokens access token and refresh token

OAuth Create an OAuthView in code or from xml - portal url - client id - CallbackListener Get credentials from CallbackListener.onCallback Handle error in CallbackListener.onError() Customize the http authentication request dialog

Maps App

Maps App Material Navigation Drawer Search Widget Floating Compass Button Fragments Routing Dialog Directions Dialog Basemaps Dialog

Maps App on GitHub https://github.com/esri/maps-app-android Get involved Report Issues Contribute Code Fork it Clone it Configure remotes Send pull requests

DEMO Maps App

Offline support Take a map offline View Edit Sync Perform offline tasks Analysis (Beta) Routing/Geocoding Query

Quartz

Map Decoupled from MapView Content and presentation are separated Map is now a separate class (model object) -Declare in code only -Defines the data displayed by the MapView -Contains content - layers, basemap, bookmarks -Open an existing map or build in code, modify, save MapView (view object) Has a map set on it Extends android.view.viewgroup Control visible area of Map using Viewpoints GraphicsOverlay(s), LocationDisplay,

Asynchronous methods 10.2.x had sync & async methods -Result execute(parameters params) - Future<Result> execute(parameters params, CallbackListener<Result> callback) In Quartz it s just one async method - ListenableFuture<Result> execute(parameters params) Advantages: - Reduces API clutter -Promotes asynchronous programming -We think you prefer async methods (we take care of executing operations on background threads) -Do you agree?

Vector Tile Layer Optimized data format -Small in size -Can be up to 1000 times smaller that Raster Tiles -Update to data takes minutes instead of days Because it vectors, it looks great on all devices -DPI of data not really an issue Dynamic labeling -Clearer, more readable text - On the fly labeling for heads up display Ability to style - Streets, Topographic, Canvas from one dataset - Day and Night mode

Mobile Map Package Consolidates maps or basemaps into a single file (.mmpk) Use ArcGIS Pro 1.2 or later to create one Easy and fast to share Common uses - Geocoding - Navigation Can be used in Navigator for ArcGIS 2.0 Or any application built using ArcGIS Runtime (Quartz Beta 2)

New Security Pattern AuthenticationManager - Set AuthenticationChallengeHandler - Manage in-memory credential cache - Set server and client certificate - Manage a set of OAuthConfiguration Default implementation of challenge handling - Token-based, HTTP/Windows, PKI - Prompt for credentials or client certificates - Trust self-signed certificate - OAuth user login - Greatly simplify authentication workflows AuthenticationManager.setAuthenticationChallengeHandler(new D f lta th ti ti Ch ll H dl (C t t))

New Security Pattern No longer constructors taking Credential Testing with credentials - (Because you don t hard code credentials into your apps right?) - RemoteResource has setcredential() - set before it is loaded

Quartz Demo

Agenda Introduction to the ArcGIS Android SDK Maps & Layers Basemaps (Portal) Location Place Search Routing Authentication Maps App Quartz

Sessions to attend Related to Runtime and/or Android ArcGIS Runtime SDKs: Building Offline Apps Room 31 A Wed: 10:15AM - 11:30AM Designing a Great User Experience for Your ArcGIS Runtime Apps Demo Theater 3 Wed: 1:30PM - 2:15PM Optimizing your ArcGIS Runtime Apps for Performance Demo Theater 3 Wed: 2:30PM - 3:15PM Integrating ArcGIS Runtime with Devices and Sensors Demo Theater 3 Wed: 4:30PM - 5:15PM Road Ahead: ArcGIS Runtime SDKs Ballroom 06 E Thur: 3:15PM - 4:30PM

THANK YOU QUESTIONS