55
Building Mobile Web Apps with ArcGIS API for JavaScript Kelly Hutchins, Lloyd Heberlie

Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Building Mobile Web Apps with ArcGIS API for JavaScript

Kelly Hutchins, Lloyd Heberlie

Page 2: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Agenda

•Mobile landscape • Setup, Development, and Deployment • Design considerations • Debugging and Testing

Page 3: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Why are we here?

Page 4: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Lloyd Heberlie

mobile web app

Page 5: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Mobile strategy

• Web - You are here!

• Hybrid - Building Native Apps with ArcGIS API for JavaScript Using PhoneGap and JQuery

• Native - Building iOS Apps with ArcGIS Runtime SDK - Building Android Apps with ArcGIS Runtime SDK - Building Windows Store and Windows Phone Apps with ArcGIS Runtime SDK

Page 6: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Application comparison

Web

Development Cost Reasonable

Development Time Short

App Portability High

Performance Fast

Native Functionality No

App Store Distribution No

Extensible No

PhoneGap Day - IBM, PhoneGap and the Enterprise by Bryce Curtis

Page 7: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Application comparison

Hybrid

Development Cost Reasonable

Development Time Short

App Portability High

Performance Native speed if needed

Native Functionality All

App Store Distribution Yes

Extensible Yes

PhoneGap Day - IBM, PhoneGap and the Enterprise by Bryce Curtis

Page 8: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Application comparison

Native

Development Cost Expensive

Development Time Long

App Portability None

Performance Very Fast

Native Functionality All

App Store Distribution Yes

Extensible Yes

PhoneGap Day - IBM, PhoneGap and the Enterprise by Bryce Curtis

Page 11: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Why is mobile different?

• Never assume anything • Interactions are often short and focused

- (~20 – 30 seconds) • Minimize typing and input • Often exclusively touch based

Page 12: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Why is mobile different?

• Minimal screen real estate • Hardware and OS change rapidly • Mobile value chain • Many want same access as desktop • App life-span varies, must be easy and intuitive

Page 13: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Know your geographic region

• Global device market is misleading • Each country is really its own device market • Demographics, cultural differences, disposable income

Page 14: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Know your audience

• Web Analytics Software • Collect your own User/Agent data • Use collected data: StatCounter, NetMarketShare, Akamai

Page 15: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

North America Market Nov 2013 – Jan 2014

iPhone 47%

Android 30%

Chrome 10%

Browser Market Share

iPhoneAndroidChromeBlackBerryiPod TouchOperaIEMobileUC BrowserOther

iOS 52% Android

40%

BB OS 4%

OS Market Share

iOS

Android

BlackBerryOSWindowsPhoneSeries 40

UnknownStatCounter GlobalStats

Page 16: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Lloyd Heberlie

AWStats – log analyzer

Page 17: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Form Factors

Page 18: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Differentiation / Fragmentation

• Device lifecycle • Device default browser • OS updates • Mobile Value Chain

Page 19: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Closing thoughts

• Never assume anything • Start testing today • Focus on trends rather than tiny stats • Start collecting your own data • Sales market share < install base < browser market share

Page 20: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Agenda

• Mobile landscape

•Setup, Development, and Deployment • Design considerations • Debugging and Testing

Page 21: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Setup a developer machine

Source Control

Code quality and verification

web server

Page 22: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

JavaScript toolkit / framework

Page 23: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

JavaScript toolkit / framework

Jan 2014

Jan 2012

Jan 2011

Jan 2013

Page 24: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

ArcGIS API for JavaScript

• Current options • Web Optimizer • Resource-proxy

Page 25: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Deploying your code

• Minification • Uglify

Page 26: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Agenda

• Mobile landscape • Setup, Development, and Deployment

•Design considerations • Debugging and Testing

Page 28: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Mobile Apps and Responsive Design

Page 29: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Looking for Design Ideas? http://www.mobile-patterns.com

Page 30: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Touch aware map

Page 32: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

HTML 5 input types

Page 34: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Device Access Beginning with the GeoLocation API Devices can present rich, device-aware features and experiences.

Page 35: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Offline Storage The HTML5 App Cache enables web apps To work offline.

Page 36: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

When Can I Use ….

Page 37: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Feature Detection

• Modernizer • Has

Page 38: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Agenda

• Mobile landscape • Setup, Development, and Deployment • Design considerations

•Debugging and Testing

Page 39: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Emulators / Simulators Opera Mobile Emulator iOS Simulator * Windows Phone Emulator * Android Emulator

Page 40: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Physical devices

Page 41: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Browser based testing

Page 42: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Remote debugging

• Safari Web Inspector Remote • Google Chrome remote debugging • Adobe Edge Inspect

- Synchronized screen capture, device details - Node.js (weinre local)

• Web Inspector Remote (weinre)

Page 43: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Enable Safari remote web inspection

Page 44: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Safari remote debugging

Page 45: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Safari remote debugging

Page 46: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Chrome remote debugging

Page 47: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Chrome remote debugging

Page 48: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Adobe Edge Inspect

Page 49: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Adobe Edge Inspect

Page 50: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Adobe Edge Inspect

device_model = iPhone device_res = 1136x640 orientation = portrait os_name = iOS os_version = 7.0.4 pixel_density = 326 ppi

device_model = LGE Nexus 5 device_res = 1080x1776 orientation = portrait os_name = Android os_version = 4.4.2 pixel_density = 480 dpi

device_model = iPad device_res = 1024x768 orientation = landscape os_name = iOS os_version = 7.0.4 pixel_density = 132 ppi

Page 51: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

iOS network simulation

Page 52: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Android network speed emulation

command Option <speed> kilobits/sec

emulator -netspeed <named value> emulator -netspeed <num> (both) emulator -netspeed <up>:<down> emulator -netspeed gsm emulator -netspeed 14.4 80 emulator -netspeed 40.0

Page 53: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Other network simulation options

• Fiddler (Windows) • Charles Network Debugging proxy • Network Link Conditioner (Mac OS) • Dummynet

Page 54: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Lloyd Heberlie

Remote Debugging

Page 55: Building Mobile Web Apps with ArcGIS API for JavaScript · Building Mobile Web Apps with ArcGIS API for JavaScript Author: Esri Subject: 2014 International Developer Summit -- Technical

Questions?

esri.com/events/devsummit/session-rater