building mobile web apps with arcgis api for javascript€¦ · mobile web app . mobile strategy...

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

Upload: others

Post on 31-May-2020

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Building Mobile Web Apps with ArcGIS API for JavaScript

Kelly Hutchins, Lloyd Heberlie

Page 2: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Agenda

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

Page 3: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Why are we here?

Page 4: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Lloyd Heberlie

mobile web app

Page 5: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Lloyd Heberlie

AWStats – log analyzer

Page 17: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Form Factors

Page 18: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Differentiation / Fragmentation

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

Page 19: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Agenda

• Mobile landscape

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

Page 21: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Setup a developer machine

Source Control

Code quality and verification

web server

Page 22: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

JavaScript toolkit / framework

Page 23: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

JavaScript toolkit / framework

Jan 2014

Jan 2012

Jan 2011

Jan 2013

Page 24: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

ArcGIS API for JavaScript

• Current options • Web Optimizer • Resource-proxy

Page 25: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Deploying your code

• Minification • Uglify

Page 26: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Agenda

• Mobile landscape • Setup, Development, and Deployment

•Design considerations • Debugging and Testing

Page 28: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Mobile Apps and Responsive Design

Page 29: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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

Page 30: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Touch aware map

Page 32: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

HTML 5 input types

Page 34: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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

Page 36: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

When Can I Use ….

Page 37: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Feature Detection

• Modernizer • Has

Page 38: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Agenda

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

•Debugging and Testing

Page 39: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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

Page 40: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Physical devices

Page 41: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Browser based testing

Page 42: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Enable Safari remote web inspection

Page 44: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Safari remote debugging

Page 45: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Safari remote debugging

Page 46: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Chrome remote debugging

Page 47: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Chrome remote debugging

Page 48: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Adobe Edge Inspect

Page 49: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Adobe Edge Inspect

Page 50: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

iOS network simulation

Page 52: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

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€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Lloyd Heberlie

Remote Debugging

Page 55: Building Mobile Web Apps with ArcGIS API for JavaScript€¦ · mobile web app . Mobile strategy • ... Hybrid -Building Native Apps with ArcGIS API for JavaScript Using PhoneGap

Questions?

esri.com/events/devsummit/session-rater