getting started with the arcgis smartphone runtime sdks · • arcgis for android sdk v1.0.1 •...

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

Upload: others

Post on 18-Jul-2020

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Getting Started with the Smartphone and Tablet ArcGIS

Runtime SDKs David Martinez, Kris Bezdecny, Andy Gup, David

Cardella

Page 2: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Agenda

• Intro - Trends - Overview

• ArcGIS for …

- iOS - Windows Phone - Android

• Wrap up - Q and A

Page 3: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Recent Trends - Mobile

Mobile internet is now the foundation for services, content, and apps

It’s mobile and wireless together

This is the new computing phase

Page 4: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

More than Just Phones

WIRELESS

CONSUMER

CONVERGED

COMPUTING

Most Internet user will be mobile

Page 5: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Mobile Trends - Consumer Increased Usage of Smartphones

GIS Is Accessible to a Larger Market

Source: The Nielson Company

Feature Phones

Smartphones

U.S. Smartphone Market Penetration

%

Page 6: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Mobile Trends - Consumer 50% of people use maps/search on their phones

New market potential Source: Biz Tech Day

Page 7: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Trending towards iOS and Android Platforms

Mobile Trends - Enterprise

Enterprise usage of Smartphones and tablets on the rise

Why?

- Executives

- Bring-your-own-device

- Cost

- More control over admin

Page 8: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

How is this affecting Mobile GIS?

• Enterprise - Extend the reach of GIS

- Improve field productivity

- Replace paper based workflows

- Make timely and accurate decisions

- Advanced analysis

- GIS to your whole organization

• Consumer - Huge market potential

- Your data/analysis to consumers

• Citizen and organizational engagement

- Volunteered Geographic Information (VGI)

Page 9: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Mobile Applications

ArcGIS running on …

iOS Microsoft Windows Phone

Android Windows Mobile

Windows

Rugged and Embedded Devices Smartphones and Tablets

Page 10: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

ArcGIS on Smartphones and Tablets

iOS, Windows Phone and Android Devices

• Designed for touch-screen phones • One handed use • Connected Workflows (Wifi, 3G) • Assisted-GPS Integration • Replace Paper Surveys

- Intelligent forms - Field Validation - Media Integration

Service Requests

Parcel Valuation VGI

Campus Maps

Emergency Operations

Page 11: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Emergency Operations

ArcGIS on Rugged Devices

Windows and Windows Mobile Devices

• Designed for harsh field conditions • One handed/vehicle-mounted use • Occasionally connected

workflows • High accuracy data collection

- GPS integration - Laser integration

• Replace Paper Surveys - Intelligent forms - Barcode integration

Water Facilities Mapping

Asset Maintenance/Inspection

Land Management

Service Requests

Page 12: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Smartphone Strategy ArcGIS accessible by many

Tools to build focused solutions

iOS Windows Phone

Android

Page 13: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Agenda

• Overview

• ArcGIS for … - iOS - Windows Phone - Android

• Wrap up - Q and A

Page 14: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Getting Started with the ArcGIS Runtime SDK for iOS

Kris Bezdecny

Page 15: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Agenda

• What can you do with the SDK? • Layers and Web Maps • Data Collection and Editing • Development Considerations • Tips and Tricks

Page 16: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

What can you do with the SDK?

• Service Layers - Supports multiple map projections

• Graphics - “Sketch” graphic elements on a map - Create Callouts

• Tasks - Query, Identify, and Find GIS features - Collect and modify GIS features - Locate/Geocode addresses - Geometry operations - Analytical Tasks

Page 17: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Sample application

Page 18: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Getting Started

• Intel-based Macintosh - Snow Leopard or Lion

• iOS devices - Essential for testing! - iOS 3.1.2 or higher

• Join iOS Developer Program

• Download Xcode

- Includes Apple iOS SDK

• ArcGIS Runtime SDK for iOS - Resource Center

Page 19: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Accessing data

• Mashup layers - Dynamic, cached, and feature layers - Secured services - Bing, Open Street Map

• Web maps - ArcGIS Online - Portal for ArcGIS

Access using the REST endpoint URL

Page 20: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Pattern: Add layers to the map view

Create map view

instance

Set delegate

Create layer or

web map instance

Add layer to

map view

Design map view

interface

Page 21: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Adding a map view

Page 22: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Feature layers

• Client-side layer • Feature Layer = Graphics Layer + Query Task • Inherits layer definition from the service • Modes

- On demand - Snapshot - Selection

Required for data editing

Page 23: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Add feature layer to map

view Create feature

Collect location

Collect attributes

Collect attachments

Commit edits to server

Pattern: Collect data

Location, attributes, and attachments can be added in any order

Page 24: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Editing existing data

Page 25: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Objective-C Considerations

• Class construction

• Passing (verbose) messages

• Manage your memory!

• Delegation and protocols

Page 26: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Tips-and-tricks • Learn Objective-C and Cocoa Touch

- Xcode

• Debugging - TN2239

• Performance testing - Use a physical device

• Universal apps • Human Interface Guidelines

Page 27: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Recommended Tech Sessions for iOS

Building Applications with ArcGIS Runtime SDK for iOS – Part I

- Wednesday, 10:30am, Catalina/Madera

Building Applications with ArcGIS Runtime SDK for iOS – Part II

- Wednesday, 1:00pm, Catalina/Madera

Page 28: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Getting Started with ArcGIS Runtime Windows Phone

David Martinez

Page 29: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Agenda

• Tools • Location • Maps • Query • Design Considerations • Performance Basics

Page 30: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Tools

• Windows 7 or Windows Vista with Service Pack 2 • Visual Studio 2010 • Windows Phone devices • Join App Hub • Windows Phone SDK Tools • ArcGIS Runtime SDK for Windows Phone

Page 31: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Location

GpsLayer GeoCoodinateWatcher

Page 32: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Maps and Accessing Data

• Maps and layers - Feature layers, cached and dynamic map services - Secured services - Bing, Open Street Map

• Web maps - ArcGIS Online - Portal for ArcGIS

Page 33: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Query

Page 34: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Design Considerations

Type of application Design and implementation

Resource management Remote services

Page 35: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Performance

Page 36: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

OS Operating system compositing and overlays

Compositor Smooth animations for bitmap cached elements

Touch Touch responsiveness thread

Data binding. Rasterizing. Events. Very busy!

UI

App parsing logic, long-running tasks, etc.

Background

Threads

Page 37: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Performance Counters

• Compositor Frame Rate • UI Thread Frame Rate • Texture memory • Surface counter • Intermediate surface count • Fill Rate

Page 38: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Recommended Tech Sessions for Windows Phone

Building Applications with ArcGIS Runtime SDK for Windows Phone – Part I

- Wednesday, 2:45pm, Pasadena/Ventura/Sierra

Building Applications with ArcGIS Runtime SDK for Windows Phone – Part II

- Wednesday, 4:30pm, Pasadena/Ventura/Sierra

Page 39: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Questions?

Page 40: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Getting Started with ArcGIS Runtime SDK for Android

Andy Gup, Tech Lead, Esri Developer Network

@agup

Page 41: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Agenda – ArcGIS for Android

• Android architecture • Development basics and requirements • Common ArcGIS coding patterns

Microsoft Clip art

Page 42: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

My demo setup

• Eclipse Indigo w/ J2EE • ArcGIS SDK for Android v1.0.1 + samples! • Android SDK v4.0.3 (API v15) • Motorola device driver for Windows 64-bit • Android Atrix running Android v2.3.6

Microsoft Clip art

Page 43: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Hello World

Page 44: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Android basic setup

ArcGIS Runtime SDK for Android

IDE Android SDK + Device Java Development Kit (JDK)

Page 45: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Eclipse

Android Development Workflow

Android SDK

Compile to Dalvik classes

Deploy to device/emulator

Write Java

Launch as Android app

Debug/log app

Android device

Dalvik VM

Run app

ADB Device Deamon

Page 46: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

User Interface

Android components

App

Activity Activity View

View

View View

Service Service

Event Listeners / Handlers Event

Listeners / Handlers

Event Listeners / Handlers Data /

Content Providers

Page 47: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

ArcGIS Application for Android

Page 48: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Development Basics

Page 49: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

What do you need?

• Windows, Mac OS, or Linux! • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater • Android Development Tools (ADT 16) • Android device! (Android v2.2) or greater • USB Device driver

Microsoft Clip art

Page 50: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Android SDK

http://developer.android.com

Page 51: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Download the SDK

http://esriurl.com/android

Page 52: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Android Project Overview

Page 53: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

The main mapping component - MapView class

public class HelloWorld extends Activity { MapView map = null; /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); map = (MapView) findViewById(R.id.map); } }

http://esriurl.com/AndroidMapView

Page 54: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Adding map layers

map = new MapView(this); map.addLayer(new ArcGISTiledMapServiceLayer( "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer")); setContentView(map);

Tiled Map Service

map.addLayer(new ArcGISFeatureLayer(url,MODE.SNAPSHOT));

Feature Service

map.addLayer(new ArcGISDynamicMapServiceLayer( "http://.../ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer"));

Dynamic Map Service

map.addLayer(new ArcGISImageServicesLayer(url, null));

Image Service

Page 55: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

com.esri.android.map vs. com.esri.core.map

• com.esri.android.map - Displaying, altering or removing data from the map.

• com.esri.core.map - Use when defining elements used in feature and image

services.

Microsoft Clip art

private MapView map = null;

Graphic g = new Graphic(feature.getGeometry(),redCircleSymbol);

Page 56: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Add data demo

Page 57: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater
Page 58: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Handling map events

class MyTouchListener extends MapOnTouchListener { Graphic g; // first point clicked on the map Point p0 = null; int uid = -1; public MyTouchListener(Context arg0, MapView arg1) { super(arg0, arg1); } public boolean onDragPointerMove(MotionEvent from, MotionEvent to) { if (uid == -1) { // first time g = new Graphic(null, sfs); p0 = map.toMapPoint(from.getX(), from.getY()); uid = gLayer.addGraphic(g); } else { Point p2 = map.toMapPoint(new Point(to.getX(), to.getY())); Envelope envelope = new Envelope(); envelope.merge(p0); envelope.merge(p2); gLayer.updateGraphic(uid, envelope); } return true; } ... }

Page 59: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Touch listeners demo

Microsoft Clip art

Page 60: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Editing Feature Layers

// check there have been some edits before applying the changes if (hasEdits) { // set objectID field value from graphic held in featureset attrs.put(featureLayer.getObjectIdField(), someEditedValue); Graphic newGraphic = new Graphic(null, null, attrs, null); featureLayer.applyEdits(null, null, new Graphic[] { newGraphic }, createEditCallbackListener(updateMapLayer)); }

Page 61: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Editing demo

Page 62: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Tracking Device Location

map.setOnStatusChangedListener(new OnStatusChangedListener() { private static final long serialVersionUID = 1L; public void onStatusChanged(Object source, STATUS status) { if (source == map && status == STATUS.INITIALIZED) { } } }

Page 63: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Location demo

Microsoft Clip art

Page 64: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Geoprocessing

new ViewShedQuery().execute(params); class ViewShedQuery extends AsyncTask<ArrayList<GPParameter>, Void, GPParameter[]> { @Override protected void onPostExecute(GPParameter[] result) { ... } @Override protected GPParameter[] doInBackground(ArrayList<GPParameter>... params1) { gp = new Geoprocessor(“http://www.mygisserver.com/arcgis...”); ... } }

Page 65: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Geoprocessing demo

Page 66: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Tips-and-tricks

• Test using a phone and tablet • Android Help: http://developer.android.com/ • Android Help -> User Interface Best Practices • Which Android version? Know your users! • Troubleshooting ArcGIS? Use the Android Debug Bridge

(ADB) and Logcat

Log.e("Debug", String.valueOf(_currentLocation.getLatitude()));

Page 67: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Recommended Tech Sessions for Android

• Advanced Development with ArcGIS API for JavaScript - Wednesday @ 10:30a, Pasadena/Ventura

• Building Applications with ArcGIS Runtime SDK for Android—Part I

- Thursday @ 8:30a, Primrose A

• Building Applications with ArcGIS Runtime SDK for Android—Part II

- Thursday @ 10:15a, Primrose A

Page 68: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Wrap-up

Page 69: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Intelligent Maps Are the New Medium Integrating Services (Data, Maps, Models…)

Support • Pop-ups • Editing • Time • Analysis • Workflows • Query

Simplifying Using ArcGIS . . . . . . Communicating Geographic Understanding to Everyone

Accessibility

Maps

Applications

Services

Page 70: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Maps Can Be Shared Across Devices

. . . Enhancing Access and Collaboration

One Map

Desktop

iOS

Windows Phone Android

Web Sites

Browsers

Online Services

Making Maps available to all

Page 71: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Deployment considerations

• Platform developer requirements

• Esri Attribution

• Esri Licensing

• Submittal

Page 72: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Developer Developer Requirements

• Developer account • SDK

- OS updates

• Devices • Deploying

- Development - App Store/Marketplace - Enterprise

Page 73: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Esri Attribution

• Attribution in About or Credits - API - Data

• Esri Logo - If using data from AGOL

Page 74: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Esri Licensing

• Enterprise apps deployed Internally - Requires ArcGIS Server license - Deploy unlimited number of applications

• Public Apps deployed in App Store/Marketplace/Market

- Free app - Deploy unlimited number of applications

- For fee (Sales, Ad, in-app purchases, etc…)

- Lic fee applies

Page 75: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Native vs Mobile Web

Native

Mobile Web

Market Penetration

Cost Effective

Functionality

User Experience

Fragmentation

Page 76: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater

Resources

• Twitter: David: @dmdevdude Andy: @agup Dave: @dcardella

• Resource Centers: http://resources.argis.com

Page 77: getting started with the arcgis smartphone runtime sdks · • ArcGIS for Android SDK v1.0.1 • Eclipse 3.5 (Galileo) or greater • Java JDK 6 • Android SDK v2.2 (API 8) or greater