arcgis api for javascript - esri · arcgis api for javascript: building web mobile apps author:...

46
ArcGIS API for JavaScript: February 11, 2015 | Washington, DC DevSummit DC Building Web Mobile Apps Andy Gup & Ben Ramseth

Upload: others

Post on 25-May-2020

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

ArcGIS API for JavaScript:

February 11, 2015 | Washington, DC

DevSummit DC

Building Web Mobile AppsAndy Gup

&Ben Ramseth

Page 2: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Agenda

Why responsive design?

Web AppBuilder

Bootstrap-map-js

GPS and offline

Web Optimizer

Page 4: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Why Responsive Design?

Page 5: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Default browser behavior

Page 6: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Responsive Design

• Single web app that works well across a variety of devices/screen sizes

• Re-use content and software

• Considers- Device limitations- User’s behavior

Page 7: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Responsive design components

1. Fluid Grid System2. Media Queries3. HTML5, CSS & JavaScript

Page 8: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Responsive Web Frameworks

•Bootstrap 3•Foundation 3•Skeleton•YAML 4• jQuery Mobile Responsive Grid

Page 9: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Media Queries• Detect device screen size and orientation• Apply CSS at specific break points• Typical: 480px, 768px, 1024px, 1280px@media only screen and (max-device-width:480px) {

/* Custom css styles */body {

font-size: 0.5em;}#titleArea{

display: none;}

}

Page 10: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Typical “full-view” Mapping App3 Row – 2 Column

map

Page 11: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Responsive Grid Layouts

Vertical Stacking

Page 12: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Large: 3 Rows - 3 Columns

>= 1280px

Page 13: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Medium: 2 Columns

1024 - 1280px

Page 14: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Small: Single Column

768 - 1024px

Page 15: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Extra Small: 1 Column, Minimized

=< 768px

Page 16: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Responsive HTML5 Application

Page 17: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Esri’s open source responsive libs

github.com/esri/…response-map-jsbootstrap-map-jsdojo-bootstrap-ui-for-maps-js

Page 18: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Bootstrap 101

Page 19: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

The Fluid Grid System

• Layout adapts to different screen sizes

• Based on percentages

• 12 column / 960px

Page 20: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

The Fluid Grid System

Page 21: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

The Fluid Grid System

Page 22: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

The Fluid Grid System

<div class="col-xs-12 col-sm-8”>

Define Column

Device Size

Number of Columns

Page 23: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

The Fluid Grid System<div class="row">

<div class="col-xs-12 col-sm-12 col-lg-12"><h5>Top 12</h5>

</div></div><div class="row">

<div class="col-xs-12 col-sm-8 col-lg-9"><!-- Bootstrap-map-js -->

<div id="mapDiv1"></div></div><div class="col-xs-12 col-sm-4 col-lg-3">

<h5>Right 3</h5></div>

</div>

Page 24: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Bootstrap breakpoints

/* Extra small devices (phones, less than 768px) No media query since this is the default in Bootstrap

*/

/* Small devices (tablets, 768px and up) */@media (min-width: @screen-sm-min) { ... }

/* Medium devices (desktops, 992px and up) */@media (min-width: @screen-md-min) { ... }

/* Large devices (large desktops, 1200px and up)*/@media (min-width: @screen-lg-min) { ... }

Page 25: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Bootstrap-map-js

github.com/Esri/bootstrap-map-js

Page 26: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Bootstrap-map-js

• Bootstrap ver 3 framework• Responsive map• Resize and re-center• Pop-ups, widgets• Touch• CSS Styles

Page 27: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

DemoBootstrap-map-js

Page 28: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Web AppBuilder

Page 29: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Create a suite of custom appsExtensible framework for developers

Bring “builder” experience from Flex/Silverlight to JavaScript

Empower non-developers

Page 30: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Multiple Devices

Page 31: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

DemoWeb AppBuilder

Page 32: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Working with GeoLocation

Page 33: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

GeoLocation Startup - Waiting for map to loadvar mapLoaded = false;

navigator.geolocation.watchPosition(locationSuccess,locationError,{setHighAccuracy:true}

);

map.on("load”,function(evt){mapLoaded = true;

});

function locationSuccess(evt){if(mapLoaded){ . . .}

}

Page 34: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

GeoLocation Best Practices

Start GeoLocation as early as possible

When viewing non-map pages (MVC):- Don’t draw points on map

Cache points in localStorage- Use last point when starting map

Page 35: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

GeoLocation Best Practices

When returning to map page or browser restart- Turn GPS back on- Recenter map- Write cache points to map

Page 36: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Offline JavaScript

Page 37: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Why disconnected JavaScript?

Mobile web editing in areas of intermittent or no internet

Ability to reload or restart map in areas of intermittent or no internet

Lightweight cross-browser functionality

Page 38: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Need a full featured, robust offline solution?

ArcGIS Runtimes for iOS, Android, Qt and .NET!

Includes integrated support for offline editing and synchronization.

Also fully supports related tables, sub-types, domains and much more.

Page 39: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Offline-editing-js Library

Experimental

https://github.com/Esri/offline-editor-js

Page 41: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

ArcGIS Web Optimizer

Page 42: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer

Use the ArcGIS Web Optimizer

• Works with the ArcGIS API for JavaScript• Create smaller, optimized builds• For hybrid, can host locally

https://jso.arcgis.com/

Page 44: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer
Page 45: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer
Page 46: ArcGIS API for JavaScript - Esri · ArcGIS API for JavaScript: Building Web Mobile Apps Author: Esri Subject: 2015 Esri Developer Summit--Presentation Keywords: 2015 Esri Developer