+ All Categories
Home > Documents > ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and...

ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and...

Date post: 14-Mar-2020
Category:
Upload: others
View: 15 times
Download: 0 times
Share this document with a friend
63
ArcGIS API for JavaScript Building Mobile Web Apps Andy Gup, @agup Lloyd Heberlie, @lheberlie March 8–11, 2016 | Palm Springs, CA Esri Developer Summit
Transcript
Page 1: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

ArcGIS API for JavaScriptBuilding Mobile Web Apps

Andy Gup, @agupLloyd Heberlie, @lheberlie

March 8–11, 2016 | Palm Springs, CA

Esri Developer Summit

Page 2: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

• Introductions• Expectations• Agenda• Resources

Welcome

Page 3: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Why are we here?

Page 4: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Resources

• https://github.com/lheberlie/mobile-webapps-js• https://github.com/lheberlie/mobile-webapps-js/blob/develop/Resources.md

Page 5: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Lloyd Heberlie

Mobile resources in the API

Page 6: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Lloyd HeberlieDesigning for mobile

Page 7: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Touch aware map

Page 8: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

HTML 5 input types

type=“email” type=“tel” type=“date”

Page 9: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Geocoder, LocateButtonesri/dijit/Geocoder

esri/dijit/LocateButton

Page 10: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Popup Mobile

esri/dijit/PopupMobile

Page 13: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Custom components

Custom basemap switcher

Page 14: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Lloyd HeberlieDesigning for mobile

Page 15: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Lloyd Heberlie

Productivity and code management

Page 16: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Setup a developer machine

Source Control

Code quality and verification

web server

Page 17: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Code formatting and management

Page 18: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Automation and continuous integration

Page 19: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

• JSLint• JSHint

Code validation

Page 20: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

CSS preprocessors

Page 21: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Lloyd Heberlie

Productivity and code management

Page 22: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Lloyd Heberlie

Debugging and testing for mobile

Page 23: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Emulators / SimulatorsOpera Mobile Emulator iOS Simulator * Windows Phone Emulator * Android Emulator

Page 24: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Physical devices

http://blog.adtile.me/2014/01/08/adtile-device-lab/

Page 25: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

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 26: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Enable Safari remote web inspection

Page 27: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Safari remote debugging

Page 28: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Safari remote debugging

Page 29: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Chrome remote debugging

Page 30: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Chrome remote debugging

Page 31: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Adobe Edge Inspect

Page 32: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Adobe Edge Inspect

Page 33: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Adobe Edge Inspect

device_model = iPhonedevice_res = 1136x640orientation = portraitos_name = iOSos_version = 7.0.4pixel_density = 326 ppi

device_model = LGE Nexus 5device_res = 1080x1776orientation = portraitos_name = Androidos_version = 4.4.2pixel_density = 480 dpi

device_model = iPaddevice_res = 1024x768orientation = landscapeos_name = iOSos_version = 7.0.4pixel_density = 132 ppi

Page 34: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Lloyd HeberlieDebugging mobile

Page 35: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Many UI frameworks

BootstrapAngular.jsjQueryIonic…...?

Page 36: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Frameworks on github.com/esri

github.com/Esri/bootstrap-map-js

github.com/Esri/angular-esri-map

Page 38: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Add CSS

Page 39: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Set up the div

Page 40: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Load BootstrapMap

Page 41: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Load Bootstrap + jQuery

Page 42: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Mobile Popups

Page 43: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Popups

Tablets Smartphones

InfoWindow Yes No

MobilePopup Yes Yes

Page 44: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

InfoWindow

Text may be hard to readNot touch friendlyNot centered on rotate

Page 45: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

MobilePopup

ReadableTouch friendlyRotate friendly

http://developers.arcgis.com/javascript/samples/mobile_arcgis/

Page 46: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Custom Popups

Modal popup example

http://andygup.github.io/modal-popup-js/

Page 47: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Mobile Performance

Page 48: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Smartphone vs Your Laptop

App performance not the sameInternet speeds fluctuate/limitedPower limitations

Page 49: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Reducing UI Jank (Jerkiness)

Interruptions in frame production (fps) and latency

CheckerboardingLong pausesScrolling latencyDelayed animation start

Page 50: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Common causes of Jank

Slow internet response

Data processing overload

Excessive garbage collection

Page 51: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

HTTP response times

Minimize, concatenate, optimizeMake sure server uses gzip compression!Use Query MODE_ONDEMANDLimit the Extent and use layer dependenciesGeneralize features

DEMO

Page 52: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Using Web Workers

Move expensive tasks off main thread!

Parsing large number of featuresjson.parse() blocksSerialization/deserialization costsTimers

Page 53: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Background threadMain UI thread

Page 54: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Background threadMain UI thread

SER

IALI

ZE /

DE-

SER

IALI

ZE

CPU

Page 55: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Using Web Workers

https://github.com/andygup/earthquake-heatmap-layer

Example:

Parsing GeoJSON

Page 56: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Example: 7x Performance boost!

1MB of data with web workers

Without web workers

Page 57: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Garbage collection

De-reference any variables no longer in use

var feature = { feature: { … }};feature = null;

Page 58: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Managing memory in loops

Re-use objects where possibleVersus new Object();

Reset arrays: myArray.length = 0;Versus this: myArray = [];

Page 59: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Geolocation

Advanced Geolocation Session – 10a – 11a Friday

Outdoor geolocation – turn off WiFiNot very accurate – 3 – 10 meters

Page 60: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Hybrid – PhoneGap/Cordova

Wednesday 10:30am, Mesquite B

github.com/Esri/quickstart-map-phonegap

Page 61: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Resources

• https://github.com/lheberlie/mobile-webapps-js• https://github.com/lheberlie/mobile-webapps-js/blob/develop/Resources.md

Page 63: ArcGIS API for JavaScript Building Mobile Web Apps · Source Control. Code quality and verification. web server. Code formatting and management. ... Safari Web Inspector Remote ...

Recommended