88
СМАРТФОНЫ И ПЛАНШЕТНИКИ MOBILE-FRIENDLY ВЕБ-РАЗРАБОТКА ПОМИМО ДЕСКТОПА Patrick H. Lauke / RIT++ Conference 2011 / Moscow / 25 April 2011

Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

Embed Size (px)

Citation preview

Page 1: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

СМАРТФОНЫ И ПЛАНШЕТНИКИMOBILE-FRIENDLY ВЕБ-РАЗРАБОТКА ПОМИМО ДЕСКТОПА

Patrick H. Lauke / RIT++ Conference 2011 / Moscow / 25 April 2011

Page 2: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

mobile web is increasingly important

Page 3: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

we need a website optimised for iPhone

Page 4: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

oh, und another onefor the iPad

Page 5: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

“remove iPhone from ass”Peter-Paul Koch, The iPhone obsession

www.quirksmode.org/blog/archives/2010/02/the_iphone_obse.html

Page 6: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

sites that work on (almost) all mobile devices

Page 7: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 8: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 9: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

what exactly is a “mobile device”?

Page 10: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 11: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 12: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

3 approaches

Page 13: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

1. do nothing

Page 14: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

not WAP or text anymore...

Page 15: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

modern mobile browserswork ok with “normal” sites

Page 16: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 17: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

“but the mobile context...”

Page 18: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

“Desktop computers and mobile devices are so different that the only way to offer a great user experience is to create two

separate designs — typically with fewer features for mobile.”www.useit.com/alertbox/mobile-redesign.html

Page 19: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

2. separate mobile site(m.flickr.com, mobile.mysite.com, ...)

Page 20: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

внимание: browser sniffingphoto: http://www.flickr.com/photos/timdorr/2096272747/

Page 21: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

let the user decide:desktop or mobile?

Page 22: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 23: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 24: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 25: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 26: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 27: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

refactored for small screen,not dumbed down for mobile

Page 28: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

3. single adaptive site

Page 29: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

nothing new...fluid layout, progressive enhancement, graceful degradation

Page 30: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

www.alistapart.com/articles/dao

The Sage “... accepts the ebb and flow of things, Nurtures them, but does not own them,”

Tao Te Ching; 2 Abstraction

Page 31: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

adaptive layouts

Page 32: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

CSS 2.1 Media Types

Page 33: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

Media types

all brailleembossed handheldprint projectionscreen speechtty tv

Page 34: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

CSS 2.1 Media Types<link rel="stylesheet" ... media="print" href="...">

@import url("...") print;

@media print { // insert CSS rules here}

Page 35: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

CSS 3 Media Queries“...the new hotness” Jeffrey Zeldman

http://www.zeldman.com/2010/04/08/best-aea-yet/

Page 36: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

CSS 3 Media Queries

● extend concept of CSS 2.1 Media Types● more granular control of capabilities

http://www.w3.org/TR/css3-mediaqueries/

Page 37: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

Media featureswidth colorheight color-indexdevice-width monochromedevice-height resolutionorientation scanaspect-ratio griddevice-aspect-ratio

Page 38: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

CSS 3 Media Queries<link rel="stylesheet" ... media="screen and (max-width:480px)" href="...">

@import url("...") screen and (max-width:480px);

@media screen and (max-width:480px) { // insert CSS rules here}

Page 39: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

Multiple media queries@media screen and (max-width:480px) { // screen device and width < 480px }

@media screen and (max-width:980px) { // screen device and width < 980px }

@media screen and (min-width:980px) { // screen device and width > 980px }

Page 40: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

www.alistapart.com/articles/responsive-web-design

Page 41: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

http://mediaqueri.es

Page 42: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

http://mediaqueri.es

Page 43: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

http://mediaqueri.es

Page 44: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

http://mediaqueri.es

Page 45: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

www.themaninblue.com/writing/perspective/2004/09/21

Page 46: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

“not a magic bullet...”

Page 47: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

viewport meta

Page 48: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

physical vs virtual pixels

Page 49: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 50: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

mobile devices lie(to better serve the user)

Page 51: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 52: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 53: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

viewport metasuggests sizing to mobile browser

Page 54: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

viewport meta<meta name="viewport" content="width=320">

http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html

Page 55: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

Viewport properties

width initial-scaleheight minimum-scaleuser-scalable maximum-scale

Page 56: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

<meta name="viewport" content="width=480">

Page 57: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 58: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 59: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

<meta name="viewport" content="width=550">

Page 60: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

<meta name="viewport" content="width=550">

Page 61: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

<meta name="viewport" content="width=550, maximum-scale=1.0">

Page 62: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

CSS Device Adaptation@viewport { width: 320px; zoom: 2.3; user-zoom: fixed;}

dev.w3.org/csswg/css-device-adapt

Currently only in Opera Mobile 11 with -o- prefix dev.opera.com/articles/view/an-introduction-to-meta-viewport-and-viewport

Page 63: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

Viewport properties

width / min-width / max-width user-zoom

height / min-height / max-height orientation

zoom / min-zoom / max-zoom

Page 64: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

@media + @viewport@media screen and (max-device-width: 550px) { @-o-viewport { width: 550px; }}

only apply viewport width fixing on small-screen devices

Page 65: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

BUG ALERT: Opera currently not re-running Media Queries on portrait/landscape switch

Page 66: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

touch interfaces

Page 67: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

:hoveronmouseover(...)onmouseout(...)

Page 68: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 69: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

no hover ontouch devices*

*but some devices/browsers fake it

Page 70: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

:focusonfocus(...)onblur(...)

Page 71: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

no focus ontouch devices*

*only after an actual click

Page 72: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

touch events

window.addEventListener('touchstart', function(e){ … }, true);window.addEventListener('touchmove', function(e){ … }, true);window.addEventListener('touchend', function(e){ … }, true);

e.touches[0].pageX; e.touches[0].pageY; …

Page 73: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

progressive enhancement:mouse, keyboard and touch events

Page 74: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 75: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

multimedia

Page 76: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

video, audio und canvaswithout plug-ins

(Java / Flash / Silverlight absent from some devices)

Page 77: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011
Page 78: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

www.splintered.co.uk/experiments/archives/paranoid_0.3

Page 79: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

geolocation

Page 80: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

navigator.geolocation.getCurrentPosition(success, error);navigator.geolocation.watchCurrentPosition(success, error);

function success(position) {/* where's Wally? */var lat = position.coords.latitude;var long = position.coords.longitude;...

}

Page 81: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

progressive enhancement:geolocation in addition to other

methods (IP address look-up, form, ...)

Page 82: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

online/offline

Page 83: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

application cache, localStorage/sessionStorage,

WebSQL, IndexDB

Page 84: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

…and more (work in progress)WebGL, device API, orientation …

Page 85: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

adaptive techniquesnot just for “mobile”

Page 86: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

twitter.com/#!/stephenhay/status/23350345962889216

Page 87: Смартфоны и планшетники - mobile-friendly веб-разработка помимо десктопа - RIT++ - Moscow 25.04.2011

1. do nothing2. separate mobile site3. single adaptive site