SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
Designing Responsive Web
Mobile Mapping Applications
Allan Laframboise
alaframboise.github.com
@AL_Laframboise
Web Mobile Design
Key Considerations
Mobile Devices
Are different…
§  Physical
§  Screen
§  Button

device

size
size
User
Interactions
Are different…
§  Touch
§  Orientation
§  Keyboard
§  Voice
User
Expectations
Are different…
§  App

to work like an app

§  Websites

to work like an app
Design Patterns
Need to be different!
Think mobile first!

320px
Responsive
Design
Strategy
Responsive Design
§  Designing

a single web page/app that works well
across a variety of devices and screen sizes

§  Re-use

content and software

§  Considers
§  Device

limitations
§  User’s behavior
mediaqueri.es
Components of Responsive Design
1. 

Fluid Grid System

2. 

Media Queries

3. 

HTML5, CSS & JS
Fluid Grid System
§  Layout

adapts to different screen sizes

§  Based

on percentages

§  12

column / 960px
Media Queries
§  Detect
§  Apply

device screen size and orientation

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;!
!}!
}!
HTML5 & CSS3
§  Mobile

friendly HTML5

§  Meta

tags
§  Input types (text, dates…)
§  CSS3
§  Selectors,

transitions

§  JavaScript
§  Touch

events
§  Geolocation, localstorage,
websockets, appcache….
Developing
Responsive
Mapping Apps - I
Custom Framework
Typical “full-view” Mapping App
3 Row – 2 Column
title

menu-bar with buttons

map

side-bar
Default Behavior
Not scaling, not adapting

Higher
resolution
device

Lower resolution
device
Grid Layouts
Vertical Stacking

Vertical Stacking

Horizontal Stacking

No Stacking
One Design Strategy
Large Devices: 3 Rows - 3 Columns
Wide-screen Monitors (>1280px)

768px
Screen resolution

1024px

1280px & above
Medium Device: 2 Columns
Desktops and Laptops (1024px - 1280px)

768px
Screen resolution

1024px

&

1280px
Medium Device: 2 Columns
Desktops and Laptops (1024px - 1280px)

768px
Screen resolution

1024px

&

1280px
Small Device: Single Column
iPads and Slates (768px – 1024px)

768px
Screen resolution

&

1024px

1280px
Small Device: Single Column
Smaller iPads and Slates (768px – 1024px)

768px
Screen resolution

&

1024px

1280px
Extra Small Device: 1 Column, Minimized
iPhone, Android (< 768px)

§  Title
§  Full

map

§  Icon

tools

< 768px
Screen resolution

1024px

1280px
Extra Small Device: Windowing Options
Keyboard input and output

1. Full Screen

< 768px
Screen resolution

2. Partial Screen

1024px

1280px
Fully Responsive HTML5 Application
Adapts to all screen sizes

< 768px
Screen resolution

1024px

1280px
github.com/esri/responsive-map-js
amiresponsive.com
Developing
Responsive
Mapping Apps - II
Web Frameworks
Responsive Web Frameworks
Standardized set of HTML, CSS and JS

§  Bootstrap

3

§  Foundation

3

§  HTML5
§  Skeleton
§  YAML

4

Fonts, images, media queries, components…
www.getbootstrap.com
“mobile first”
Bootstrap-map-js
ArcGIS JavaScript in a responsive web framework

§  Bootstrap

ver 3 framework

§  Responsive
§  Resize

and re-center

§  Pop-ups,

widgets

§  Touch
§  CSS

map

Styles
Step 1: Get bootstrap-map-js
§  Bootstrap

ver 3.0...

§  srcjsbootstrapmap.js
§  srccssbootstrapmap.css
§  doc...
§  templates..
Step 2: Create a page
<!DOCTYPE html>!
<html>!
<head>!
<title>Bootstrap 101 Template</title>!
<meta name="viewport" content="width=device-width, initialscale=1.0">!
<!-- Bootstrap -->!
<link href="../assets/css/bootstrap.min.css" rel="stylesheet"
media="screen">!
</head>!
<body>!
!
<h1>Hello, world!</h1>!
!
<!-- jQuery (for Bootstrap's JavaScript plugins) -->!
<script src="../assets/js/jquery.js"></script>!
<!-- Include all plugins or individual files as needed -->!
<script src="../assets/js/bootstrap.min.js"></script>!
</body>!
</html>!
Step 3: Add a responsive map - I
<!– ArcGIS css -->!
<link rel="stylesheet" type="text/css" href="http://js.arcgis.com/3.7/
js/esri/css/esri.css"> !
!
<!-- Bootstrap-map-js css -->!
<link rel="stylesheet" type="text/css" href="../src/css/
bootstrapmap.css">
!
!
<style type="text/css”>!
#mapDiv {!
min-height: 100px; !
max-height: 1000px; !
}!
</style>!
Step 3: Add a responsive map - II
<div class="container">!
<div id="mapDiv"></div>!
</div>!
…!
<script src="http://js.arcgis.com/3.7compact"></script>!
<script>!
! <!– Load Bootstrap Map – responsive map -->!
require(["esri/map", !
!
!
! "…/src/js/bootstrapmap.js", !
!
!
! "dojo/domReady!"], !
function(Map, BootstrapMap) {!
<!-- Get a reference to the ArcGIS Map -->!
var map = BootstrapMap.create("mapDiv",{!
basemap:"national-geographic",!
center:[-122.45,37.77],!
zoom:12!
});!
});!
</script>!
github.com/esri/bootstrap-map-js
A quick look inside…
Bootstrap Fluid Grid
CSS to define row and column behavior
Row 1: col-lg-12 = 100%
Row 2: col-lg-9 = 75% + col-lg-3 = 25%
Row 3: col-xs-4 + col-xs-4 + col-xs-4 = 100%
Responsive Grid: Dynamic column widths
Sets logical breaks for different screen sizes
<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>!
<div class="row">!
!<div class="col-xs-4"><h5>Bottom 4</h5></div>!
!<div class="col-xs-4"><h5>Bottom 4</h5></div>!
!<div class="col-xs-4"><h5>Bottom 4</h5></div>!
</div> >!

!
Responsive Grid: Dynamic visibility
CSS Styles
!
!
<div class="page-header hidden-xs">!
<div class="row">!
<div class="col-xs-9"><h2>Windows</h2>!
<p class="lead">Show modal and responsive pop-ups.</p>!
</div>!
<div class="col-xs-3">!
<button id="geosearchNav" type="button" class="btn btnprimary btn-lg btn-fixed-lg">Show Window</button>!
</div>!
</div>!
</div>!
Responsive Map: Viewport behavior
Prevent scaling and enable full screen browser
// Optimize for mobile – prevent scaling on pinch!
<meta name="viewport" content="width=device-width,!
initial-scale=1.0, maximum-scale=1.0, user-scalable=no”>!
!
// Safari iOS – apps only!
<meta name="apple-mobile-web-app-capable" content="yes”>!
<meta name="apple-mobile-web-app-status-bar-style" content="black”>!
// Chrome for Android - NEW!!
<meta name="mobile-web-app-capable" content="yes">!
Responsive Map: Scroll without pan
Separate page and map navigation

!// Set touch behavior!
!createMap: function() {!
!
!var options = {smartNavigation:false});!
!
!var map = new Map(mapDiv,options);!
!
!map.on(‘load’, this.setTouchBehavior);!
!
!return map;!
!},!
!
setTouchBehavior: function() {!
!
!this.disableScrollWheelZoom();!
},!
Responsive Map: Auto-resizing
Scale to all devices and windows
// Responsive resize!
var resizeWin function() {!
!
! var w = window.innerHeight;!
if (w != this._w) {!
this._w = w;!
var b = document.body.clientHeight;!
var mh = this._mapDiv.clientHeight;!
var ms = this._calcSpace(this._mapDiv);!
var mh1 = mh - ms;!
var room = w - b;!
var mh2 = room + mh1;!
style.set(this._mapDivId, {"height": mh2+"px"});!
!
!}!
}!
!
on(window, "resize", lang.hitch(this, resizeWin));!
Responsive Map: Auto-recentering
Maintain the geographic center

// Auto-center map!
var recenter = function(extent, width, height) { !
!this._map.__resizeCenter = this._map.extent.getCenter();!
!var timer = function() {!
!
!this._map.centerAt(this._map.__resizeCenter);!
}!
setTimeout(lang.hitch(this, timer), this._delay);!
}!
!
on(window, "resize", lang.hitch(this, recenter));!
Responsive Popups: Smart touch
Full-view position and fast touch
!
!
!
// Smart-center popup!
var updatePopup = function(obj) {!
!var infoW = obj._map.infoWindow;!
!updateTitle(infoW);!
obj._repositionInfoWin(infoW.features[0]);!
}!
!
on(this._map.graphics, "click", lang.hitch(this, !
!function(){!
!
!updatePopup(this);!
}));!

Tip: Listen for onTouchStart and onClick
Using Media Queries
Fixed map based on screen size
/* Extra small devices (phones, up to 480px) */!
@media (max-width: 480px) {!
.map { height: 100px; }!
}!
!
!
!

/* Small devices (tablets, 768px and up) */!
@media (min-width: 768px) {!
.map { height: 200px; }!
}!

!
/* Medium devices (desktops, 992px and up) */!
@media (min-width: 992px) {!
.map { height: 300px; }!
}!
!
/* Large devices (large desktops, 1200px and up) */!
@media (min-width: 1200px) {!
.map { height: 400px; }!
}!
Other Tips and Tricks
§  Watch

for .container CSS

§  Remove
§  Listen

delay

all :hover states

for onTouchStart and click to avoid 300ms
github.com/esri/bootstrap-map-js
Final Notes
§  Write

code once

§  Write

is “responsively”

§  Make

your maps responsive

§  Know

your device

§  Know

you user

Don’t re-invent the wheel!
Questions?
@AL_Laframbose
alaframboise.github.com
Designing Responsive Web and Mobile Mapping Applications

Mais conteúdo relacionado

Mais procurados

Mobile GIS in the Browser (by Adam Conner)
Mobile GIS in the Browser (by Adam Conner)Mobile GIS in the Browser (by Adam Conner)
Mobile GIS in the Browser (by Adam Conner)geeknixta
 
Trail of Two Maps
Trail of Two MapsTrail of Two Maps
Trail of Two MapsMetroCog
 
Virtual Earth And ESRI
Virtual Earth And ESRIVirtual Earth And ESRI
Virtual Earth And ESRITim Warr
 
Doag wysiwyg
Doag wysiwygDoag wysiwyg
Doag wysiwygLuc Bors
 
NACIS 2012 talk
NACIS 2012 talkNACIS 2012 talk
NACIS 2012 talkWm Leler
 
ArcGIS Runtime For Android
ArcGIS Runtime For AndroidArcGIS Runtime For Android
ArcGIS Runtime For AndroidGabriel Moreira
 
HTML5 and ARIA accessibility - Bangalore 2013
HTML5 and ARIA accessibility - Bangalore 2013HTML5 and ARIA accessibility - Bangalore 2013
HTML5 and ARIA accessibility - Bangalore 2013Ted Drake
 
Blurring the lines - VGI in aid of Prof. GIS
Blurring the lines - VGI in aid of Prof. GISBlurring the lines - VGI in aid of Prof. GIS
Blurring the lines - VGI in aid of Prof. GISAndrew Zolnai
 
Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Shuji Watanabe
 
Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications
Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web ApplicationsLotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications
Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applicationsdominion
 
Power and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQueryPower and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQueryRanel Padon
 

Mais procurados (14)

Mobile GIS in the Browser (by Adam Conner)
Mobile GIS in the Browser (by Adam Conner)Mobile GIS in the Browser (by Adam Conner)
Mobile GIS in the Browser (by Adam Conner)
 
Trail of Two Maps
Trail of Two MapsTrail of Two Maps
Trail of Two Maps
 
Virtual Earth And ESRI
Virtual Earth And ESRIVirtual Earth And ESRI
Virtual Earth And ESRI
 
Intuit Mobile Custom Views
Intuit Mobile Custom ViewsIntuit Mobile Custom Views
Intuit Mobile Custom Views
 
Doag wysiwyg
Doag wysiwygDoag wysiwyg
Doag wysiwyg
 
2d web mapping with flask
2d web mapping with flask2d web mapping with flask
2d web mapping with flask
 
Responsive Web Site Design
Responsive Web Site DesignResponsive Web Site Design
Responsive Web Site Design
 
NACIS 2012 talk
NACIS 2012 talkNACIS 2012 talk
NACIS 2012 talk
 
ArcGIS Runtime For Android
ArcGIS Runtime For AndroidArcGIS Runtime For Android
ArcGIS Runtime For Android
 
HTML5 and ARIA accessibility - Bangalore 2013
HTML5 and ARIA accessibility - Bangalore 2013HTML5 and ARIA accessibility - Bangalore 2013
HTML5 and ARIA accessibility - Bangalore 2013
 
Blurring the lines - VGI in aid of Prof. GIS
Blurring the lines - VGI in aid of Prof. GISBlurring the lines - VGI in aid of Prof. GIS
Blurring the lines - VGI in aid of Prof. GIS
 
Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019
 
Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications
Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web ApplicationsLotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications
Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications
 
Power and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQueryPower and Elegance - Leaflet + jQuery
Power and Elegance - Leaflet + jQuery
 

Destaque

Playing with Maps using AngularJS
Playing with Maps using AngularJSPlaying with Maps using AngularJS
Playing with Maps using AngularJSMarcos Lin
 
Mvrpc Safe Routes forum 2013 sumary
Mvrpc Safe Routes forum 2013 sumaryMvrpc Safe Routes forum 2013 sumary
Mvrpc Safe Routes forum 2013 sumaryMVRPC
 
Full planning support system at your fingertips mvopc p&amp;z_120712
Full planning support system at your fingertips mvopc p&amp;z_120712Full planning support system at your fingertips mvopc p&amp;z_120712
Full planning support system at your fingertips mvopc p&amp;z_120712MVRPC
 
GIS MVRPC
GIS MVRPCGIS MVRPC
GIS MVRPCMVRPC
 
5310 map August Tranportation Coordination
5310 map August Tranportation Coordination5310 map August Tranportation Coordination
5310 map August Tranportation CoordinationMVRPC
 
GIS in the Miami Valley Region
GIS in the Miami Valley RegionGIS in the Miami Valley Region
GIS in the Miami Valley RegionMVRPC
 
Regionalsurveyresults final 081215
Regionalsurveyresults final 081215Regionalsurveyresults final 081215
Regionalsurveyresults final 081215MVRPC
 
2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...
2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...
2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...GIS in the Rockies
 
StartPad Countdown 5 - Google Geo: Mobile Mapping
StartPad Countdown 5 - Google Geo: Mobile MappingStartPad Countdown 5 - Google Geo: Mobile Mapping
StartPad Countdown 5 - Google Geo: Mobile MappingStart Pad
 
Asset mapping nov_2013
Asset mapping nov_2013Asset mapping nov_2013
Asset mapping nov_2013Bill Clee
 
Asset-Mapping and more - an outline proposal for a pan-Scotland Learning Set
Asset-Mapping and more - an outline proposal for a pan-Scotland Learning SetAsset-Mapping and more - an outline proposal for a pan-Scotland Learning Set
Asset-Mapping and more - an outline proposal for a pan-Scotland Learning SetPeter Ashe
 
Thinking about Asset-mapping
Thinking about Asset-mappingThinking about Asset-mapping
Thinking about Asset-mappingPeter Ashe
 
The systematic design of instruction dick and carey
The systematic design of instruction  dick and careyThe systematic design of instruction  dick and carey
The systematic design of instruction dick and careyCathy Cousear
 
GIS and Asset Management Moving to the Future :
GIS and Asset Management  Moving to the Future : GIS and Asset Management  Moving to the Future :
GIS and Asset Management Moving to the Future : Symphony3
 
Gis applications in civil engineering
Gis applications in civil engineeringGis applications in civil engineering
Gis applications in civil engineeringShanake Dissanayake
 
2016 gisco track: gis and asset management by charles osterman
2016 gisco track: gis and asset management by charles osterman2016 gisco track: gis and asset management by charles osterman
2016 gisco track: gis and asset management by charles ostermanGIS in the Rockies
 
An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)
An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)
An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)Rich Harris
 

Destaque (20)

Playing with Maps using AngularJS
Playing with Maps using AngularJSPlaying with Maps using AngularJS
Playing with Maps using AngularJS
 
Mvrpc Safe Routes forum 2013 sumary
Mvrpc Safe Routes forum 2013 sumaryMvrpc Safe Routes forum 2013 sumary
Mvrpc Safe Routes forum 2013 sumary
 
Full planning support system at your fingertips mvopc p&amp;z_120712
Full planning support system at your fingertips mvopc p&amp;z_120712Full planning support system at your fingertips mvopc p&amp;z_120712
Full planning support system at your fingertips mvopc p&amp;z_120712
 
GIS MVRPC
GIS MVRPCGIS MVRPC
GIS MVRPC
 
5310 map August Tranportation Coordination
5310 map August Tranportation Coordination5310 map August Tranportation Coordination
5310 map August Tranportation Coordination
 
GIS in the Miami Valley Region
GIS in the Miami Valley RegionGIS in the Miami Valley Region
GIS in the Miami Valley Region
 
Regionalsurveyresults final 081215
Regionalsurveyresults final 081215Regionalsurveyresults final 081215
Regionalsurveyresults final 081215
 
2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...
2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...
2013 Mission First Track, How GIS Supports USAFA's Civil Engineer Squadron by...
 
StartPad Countdown 5 - Google Geo: Mobile Mapping
StartPad Countdown 5 - Google Geo: Mobile MappingStartPad Countdown 5 - Google Geo: Mobile Mapping
StartPad Countdown 5 - Google Geo: Mobile Mapping
 
Lec 1&amp;2
Lec 1&amp;2Lec 1&amp;2
Lec 1&amp;2
 
Asset mapping nov_2013
Asset mapping nov_2013Asset mapping nov_2013
Asset mapping nov_2013
 
Asset-Mapping and more - an outline proposal for a pan-Scotland Learning Set
Asset-Mapping and more - an outline proposal for a pan-Scotland Learning SetAsset-Mapping and more - an outline proposal for a pan-Scotland Learning Set
Asset-Mapping and more - an outline proposal for a pan-Scotland Learning Set
 
Thinking about Asset-mapping
Thinking about Asset-mappingThinking about Asset-mapping
Thinking about Asset-mapping
 
The systematic design of instruction dick and carey
The systematic design of instruction  dick and careyThe systematic design of instruction  dick and carey
The systematic design of instruction dick and carey
 
GIS and Asset Management Moving to the Future :
GIS and Asset Management  Moving to the Future : GIS and Asset Management  Moving to the Future :
GIS and Asset Management Moving to the Future :
 
Gis applications in civil engineering
Gis applications in civil engineeringGis applications in civil engineering
Gis applications in civil engineering
 
2016 gisco track: gis and asset management by charles osterman
2016 gisco track: gis and asset management by charles osterman2016 gisco track: gis and asset management by charles osterman
2016 gisco track: gis and asset management by charles osterman
 
An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)
An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)
An Introduction to Mapping, GIS and Spatial Modelling in R (presentation)
 
Intro to GIS Mapping Webinar
Intro to GIS Mapping Webinar Intro to GIS Mapping Webinar
Intro to GIS Mapping Webinar
 
civil engineer
civil engineercivil engineer
civil engineer
 

Semelhante a Designing Responsive Web and Mobile Mapping Applications

2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...
2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...
2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...GIS in the Rockies
 
3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.agup2009
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5Ron Reiter
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Atos_Worldline
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Devicefilirom1
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Andreas Bovens
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web DesignMike Wilcox
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive WebsitesJoe Seifi
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development LandscapeAmbert Ho
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX DesignersAshlimarie
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Esri Nederland
 
Responsive websites. Toolbox
Responsive websites. ToolboxResponsive websites. Toolbox
Responsive websites. ToolboxWojtek Zając
 
Once Source to Rule Them All
Once Source to Rule Them AllOnce Source to Rule Them All
Once Source to Rule Them AllDavid Yeiser
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12touchtitans
 
Responsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksResponsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksGautam Krishnan
 
Designing for the Mobile Web
Designing for the Mobile WebDesigning for the Mobile Web
Designing for the Mobile WebRefresh Bmore
 
"Designing for the Mobile Web" by Michael Dick (December 2010)
"Designing for the Mobile Web" by Michael Dick (December 2010)"Designing for the Mobile Web" by Michael Dick (December 2010)
"Designing for the Mobile Web" by Michael Dick (December 2010)Mike Brenner
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Patrick Lauke
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Webmikeleeme
 

Semelhante a Designing Responsive Web and Mobile Mapping Applications (20)

2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...
2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...
2013 URISA Track, Kickstarter for JavaScript Web and Mobile GIS Development b...
 
3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive Websites
 
Best Practices for Mobile Web Design
Best Practices for Mobile Web DesignBest Practices for Mobile Web Design
Best Practices for Mobile Web Design
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development Landscape
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
 
Responsive websites. Toolbox
Responsive websites. ToolboxResponsive websites. Toolbox
Responsive websites. Toolbox
 
Once Source to Rule Them All
Once Source to Rule Them AllOnce Source to Rule Them All
Once Source to Rule Them All
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
 
Responsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksResponsive Web Design: Tips and Tricks
Responsive Web Design: Tips and Tricks
 
Designing for the Mobile Web
Designing for the Mobile WebDesigning for the Mobile Web
Designing for the Mobile Web
 
"Designing for the Mobile Web" by Michael Dick (December 2010)
"Designing for the Mobile Web" by Michael Dick (December 2010)"Designing for the Mobile Web" by Michael Dick (December 2010)
"Designing for the Mobile Web" by Michael Dick (December 2010)
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Web
 

Mais de Allan Laframboise

Esri open source projects on GitHub
Esri open source projects on GitHubEsri open source projects on GitHub
Esri open source projects on GitHubAllan Laframboise
 
Nutrition and Race Planning for Mountain Bikers
Nutrition and Race Planning for Mountain BikersNutrition and Race Planning for Mountain Bikers
Nutrition and Race Planning for Mountain BikersAllan Laframboise
 
GitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScript
GitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScriptGitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScript
GitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScriptAllan Laframboise
 
UX Considerations for Touch Mapping Apps
UX Considerations for Touch Mapping AppsUX Considerations for Touch Mapping Apps
UX Considerations for Touch Mapping AppsAllan Laframboise
 
Building ArcGIS Mobile Solutions in the Cloud
Building ArcGIS Mobile Solutions in the CloudBuilding ArcGIS Mobile Solutions in the Cloud
Building ArcGIS Mobile Solutions in the CloudAllan Laframboise
 
Navteq Developer Days - ArcGIS + POI
Navteq Developer Days - ArcGIS + POINavteq Developer Days - ArcGIS + POI
Navteq Developer Days - ArcGIS + POIAllan Laframboise
 
Geo services, social media and gis applications - Live on Everest
Geo services, social media and gis applications - Live on EverestGeo services, social media and gis applications - Live on Everest
Geo services, social media and gis applications - Live on EverestAllan Laframboise
 
Where are you with gis and geolocation
Where are you with gis and geolocationWhere are you with gis and geolocation
Where are you with gis and geolocationAllan Laframboise
 
Gis & Social Media Integration
Gis & Social Media IntegrationGis & Social Media Integration
Gis & Social Media IntegrationAllan Laframboise
 
Social #WebApps - Ideas for developing GIS applications that are socially a ”...
Social #WebApps - Ideas for developing GIS applications that are socially a ”...Social #WebApps - Ideas for developing GIS applications that are socially a ”...
Social #WebApps - Ideas for developing GIS applications that are socially a ”...Allan Laframboise
 
GeoWeb Community Development: How Web 2.0 are you?
GeoWeb Community Development: How Web 2.0 are you?GeoWeb Community Development: How Web 2.0 are you?
GeoWeb Community Development: How Web 2.0 are you?Allan Laframboise
 

Mais de Allan Laframboise (14)

Esri Map App Builders
Esri Map App BuildersEsri Map App Builders
Esri Map App Builders
 
Esri open source projects on GitHub
Esri open source projects on GitHubEsri open source projects on GitHub
Esri open source projects on GitHub
 
Nutrition and Race Planning for Mountain Bikers
Nutrition and Race Planning for Mountain BikersNutrition and Race Planning for Mountain Bikers
Nutrition and Race Planning for Mountain Bikers
 
GitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScript
GitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScriptGitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScript
GitHub + Mapping Apps in 100 lines or less using the ArcGIS API for JavaScript
 
UX Considerations for Touch Mapping Apps
UX Considerations for Touch Mapping AppsUX Considerations for Touch Mapping Apps
UX Considerations for Touch Mapping Apps
 
Building ArcGIS Mobile Solutions in the Cloud
Building ArcGIS Mobile Solutions in the CloudBuilding ArcGIS Mobile Solutions in the Cloud
Building ArcGIS Mobile Solutions in the Cloud
 
Live on everest
Live on everestLive on everest
Live on everest
 
Navteq Developer Days - ArcGIS + POI
Navteq Developer Days - ArcGIS + POINavteq Developer Days - ArcGIS + POI
Navteq Developer Days - ArcGIS + POI
 
Geo services, social media and gis applications - Live on Everest
Geo services, social media and gis applications - Live on EverestGeo services, social media and gis applications - Live on Everest
Geo services, social media and gis applications - Live on Everest
 
Where are you with gis and geolocation
Where are you with gis and geolocationWhere are you with gis and geolocation
Where are you with gis and geolocation
 
Gis & Social Media Integration
Gis & Social Media IntegrationGis & Social Media Integration
Gis & Social Media Integration
 
Social #WebApps - Ideas for developing GIS applications that are socially a ”...
Social #WebApps - Ideas for developing GIS applications that are socially a ”...Social #WebApps - Ideas for developing GIS applications that are socially a ”...
Social #WebApps - Ideas for developing GIS applications that are socially a ”...
 
What Is GIS?
What Is GIS?What Is GIS?
What Is GIS?
 
GeoWeb Community Development: How Web 2.0 are you?
GeoWeb Community Development: How Web 2.0 are you?GeoWeb Community Development: How Web 2.0 are you?
GeoWeb Community Development: How Web 2.0 are you?
 

Último

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Último (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Designing Responsive Web and Mobile Mapping Applications

  • 1. Designing Responsive Web Mobile Mapping Applications Allan Laframboise alaframboise.github.com @AL_Laframboise
  • 2.
  • 3. Web Mobile Design Key Considerations
  • 4. Mobile Devices Are different… §  Physical §  Screen §  Button device size size
  • 5. User Interactions Are different… §  Touch §  Orientation §  Keyboard §  Voice
  • 6. User Expectations Are different… §  App to work like an app §  Websites to work like an app
  • 7. Design Patterns Need to be different!
  • 10. Responsive Design §  Designing a single web page/app that works well across a variety of devices and screen sizes §  Re-use content and software §  Considers §  Device limitations §  User’s behavior
  • 12. Components of Responsive Design 1.  Fluid Grid System 2.  Media Queries 3.  HTML5, CSS & JS
  • 13. Fluid Grid System §  Layout adapts to different screen sizes §  Based on percentages §  12 column / 960px
  • 14. Media Queries §  Detect §  Apply device screen size and orientation 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;! !}! }!
  • 15. HTML5 & CSS3 §  Mobile friendly HTML5 §  Meta tags §  Input types (text, dates…) §  CSS3 §  Selectors, transitions §  JavaScript §  Touch events §  Geolocation, localstorage, websockets, appcache….
  • 17. Typical “full-view” Mapping App 3 Row – 2 Column title menu-bar with buttons map side-bar
  • 18. Default Behavior Not scaling, not adapting Higher resolution device Lower resolution device
  • 19. Grid Layouts Vertical Stacking Vertical Stacking Horizontal Stacking No Stacking
  • 21. Large Devices: 3 Rows - 3 Columns Wide-screen Monitors (>1280px) 768px Screen resolution 1024px 1280px & above
  • 22. Medium Device: 2 Columns Desktops and Laptops (1024px - 1280px) 768px Screen resolution 1024px & 1280px
  • 23. Medium Device: 2 Columns Desktops and Laptops (1024px - 1280px) 768px Screen resolution 1024px & 1280px
  • 24. Small Device: Single Column iPads and Slates (768px – 1024px) 768px Screen resolution & 1024px 1280px
  • 25. Small Device: Single Column Smaller iPads and Slates (768px – 1024px) 768px Screen resolution & 1024px 1280px
  • 26. Extra Small Device: 1 Column, Minimized iPhone, Android (< 768px) §  Title §  Full map §  Icon tools < 768px Screen resolution 1024px 1280px
  • 27. Extra Small Device: Windowing Options Keyboard input and output 1. Full Screen < 768px Screen resolution 2. Partial Screen 1024px 1280px
  • 28. Fully Responsive HTML5 Application Adapts to all screen sizes < 768px Screen resolution 1024px 1280px
  • 31. Responsive Web Frameworks Standardized set of HTML, CSS and JS §  Bootstrap 3 §  Foundation 3 §  HTML5 §  Skeleton §  YAML 4 Fonts, images, media queries, components…
  • 33. Bootstrap-map-js ArcGIS JavaScript in a responsive web framework §  Bootstrap ver 3 framework §  Responsive §  Resize and re-center §  Pop-ups, widgets §  Touch §  CSS map Styles
  • 34. Step 1: Get bootstrap-map-js §  Bootstrap ver 3.0... §  srcjsbootstrapmap.js §  srccssbootstrapmap.css §  doc... §  templates..
  • 35. Step 2: Create a page <!DOCTYPE html>! <html>! <head>! <title>Bootstrap 101 Template</title>! <meta name="viewport" content="width=device-width, initialscale=1.0">! <!-- Bootstrap -->! <link href="../assets/css/bootstrap.min.css" rel="stylesheet" media="screen">! </head>! <body>! ! <h1>Hello, world!</h1>! ! <!-- jQuery (for Bootstrap's JavaScript plugins) -->! <script src="../assets/js/jquery.js"></script>! <!-- Include all plugins or individual files as needed -->! <script src="../assets/js/bootstrap.min.js"></script>! </body>! </html>!
  • 36. Step 3: Add a responsive map - I <!– ArcGIS css -->! <link rel="stylesheet" type="text/css" href="http://js.arcgis.com/3.7/ js/esri/css/esri.css"> ! ! <!-- Bootstrap-map-js css -->! <link rel="stylesheet" type="text/css" href="../src/css/ bootstrapmap.css"> ! ! <style type="text/css”>! #mapDiv {! min-height: 100px; ! max-height: 1000px; ! }! </style>!
  • 37. Step 3: Add a responsive map - II <div class="container">! <div id="mapDiv"></div>! </div>! …! <script src="http://js.arcgis.com/3.7compact"></script>! <script>! ! <!– Load Bootstrap Map – responsive map -->! require(["esri/map", ! ! ! ! "…/src/js/bootstrapmap.js", ! ! ! ! "dojo/domReady!"], ! function(Map, BootstrapMap) {! <!-- Get a reference to the ArcGIS Map -->! var map = BootstrapMap.create("mapDiv",{! basemap:"national-geographic",! center:[-122.45,37.77],! zoom:12! });! });! </script>!
  • 39. A quick look inside…
  • 40. Bootstrap Fluid Grid CSS to define row and column behavior Row 1: col-lg-12 = 100% Row 2: col-lg-9 = 75% + col-lg-3 = 25% Row 3: col-xs-4 + col-xs-4 + col-xs-4 = 100%
  • 41. Responsive Grid: Dynamic column widths Sets logical breaks for different screen sizes <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>! <div class="row">! !<div class="col-xs-4"><h5>Bottom 4</h5></div>! !<div class="col-xs-4"><h5>Bottom 4</h5></div>! !<div class="col-xs-4"><h5>Bottom 4</h5></div>! </div> >! !
  • 42. Responsive Grid: Dynamic visibility CSS Styles ! ! <div class="page-header hidden-xs">! <div class="row">! <div class="col-xs-9"><h2>Windows</h2>! <p class="lead">Show modal and responsive pop-ups.</p>! </div>! <div class="col-xs-3">! <button id="geosearchNav" type="button" class="btn btnprimary btn-lg btn-fixed-lg">Show Window</button>! </div>! </div>! </div>!
  • 43. Responsive Map: Viewport behavior Prevent scaling and enable full screen browser // Optimize for mobile – prevent scaling on pinch! <meta name="viewport" content="width=device-width,! initial-scale=1.0, maximum-scale=1.0, user-scalable=no”>! ! // Safari iOS – apps only! <meta name="apple-mobile-web-app-capable" content="yes”>! <meta name="apple-mobile-web-app-status-bar-style" content="black”>! // Chrome for Android - NEW!! <meta name="mobile-web-app-capable" content="yes">!
  • 44. Responsive Map: Scroll without pan Separate page and map navigation !// Set touch behavior! !createMap: function() {! ! !var options = {smartNavigation:false});! ! !var map = new Map(mapDiv,options);! ! !map.on(‘load’, this.setTouchBehavior);! ! !return map;! !},! ! setTouchBehavior: function() {! ! !this.disableScrollWheelZoom();! },!
  • 45. Responsive Map: Auto-resizing Scale to all devices and windows // Responsive resize! var resizeWin function() {! ! ! var w = window.innerHeight;! if (w != this._w) {! this._w = w;! var b = document.body.clientHeight;! var mh = this._mapDiv.clientHeight;! var ms = this._calcSpace(this._mapDiv);! var mh1 = mh - ms;! var room = w - b;! var mh2 = room + mh1;! style.set(this._mapDivId, {"height": mh2+"px"});! ! !}! }! ! on(window, "resize", lang.hitch(this, resizeWin));!
  • 46. Responsive Map: Auto-recentering Maintain the geographic center // Auto-center map! var recenter = function(extent, width, height) { ! !this._map.__resizeCenter = this._map.extent.getCenter();! !var timer = function() {! ! !this._map.centerAt(this._map.__resizeCenter);! }! setTimeout(lang.hitch(this, timer), this._delay);! }! ! on(window, "resize", lang.hitch(this, recenter));!
  • 47. Responsive Popups: Smart touch Full-view position and fast touch ! ! ! // Smart-center popup! var updatePopup = function(obj) {! !var infoW = obj._map.infoWindow;! !updateTitle(infoW);! obj._repositionInfoWin(infoW.features[0]);! }! ! on(this._map.graphics, "click", lang.hitch(this, ! !function(){! ! !updatePopup(this);! }));! Tip: Listen for onTouchStart and onClick
  • 48. Using Media Queries Fixed map based on screen size /* Extra small devices (phones, up to 480px) */! @media (max-width: 480px) {! .map { height: 100px; }! }! ! ! ! /* Small devices (tablets, 768px and up) */! @media (min-width: 768px) {! .map { height: 200px; }! }! ! /* Medium devices (desktops, 992px and up) */! @media (min-width: 992px) {! .map { height: 300px; }! }! ! /* Large devices (large desktops, 1200px and up) */! @media (min-width: 1200px) {! .map { height: 400px; }! }!
  • 49. Other Tips and Tricks §  Watch for .container CSS §  Remove §  Listen delay all :hover states for onTouchStart and click to avoid 300ms
  • 51. Final Notes §  Write code once §  Write is “responsively” §  Make your maps responsive §  Know your device §  Know you user Don’t re-invent the wheel!