125
HTML5 FOR MOBLE CHIMERA o REALTÀ? Cristiano Rastelli

HTML5 for Mobile

Embed Size (px)

DESCRIPTION

In questa presentazione condivido la mia "esperienza sul campo" nel prendere un sito web (www.nosqlday.it) inizialmente realizzato in HTML5+CSS3 ma con il solo target "desktop", e renderlo non solo compatibile o ottimizzato, ma addirittura "speciale" per la visualizzazione su dispositivi mobili.

Citation preview

Page 1: HTML5 for Mobile

HTML5FOR MOBIІLECHIMERA o REALTÀ?

Cristiano Rastelli

Page 2: HTML5 for Mobile

/ 65

Cristiano Rastelli

➜ Freelance (“Area Web”)

➜ Developer & Designer(da oltre un decennio)

➜ Web + App UI + Mobile

➜ Passionate of UX, AI, Agile

2

www.didoo.net@areaweb

Page 3: HTML5 for Mobile

/ 65

Che ci faccio io qui?

3

http://www.flickr.com/photos/megan_russell/1444187600/

Page 4: HTML5 for Mobile

/ 65

Cosa facevo ieri a quest’ora?

X

Page 5: HTML5 for Mobile

/ 65

WEB & MOBIІLE

4

Page 6: HTML5 for Mobile

/ 655

Osservaziіone #1

Page 7: HTML5 for Mobile

/ 65

Definizione di “web mobile”

non-mobilemobile

6

Page 8: HTML5 for Mobile

/ 65

Definizione di “web mobile”

non-mobilemobile

???

6

Page 9: HTML5 for Mobile

/ 65

Definizione di “web mobile”

7

Page 10: HTML5 for Mobile

/ 65

Definizione di “web mobile”

8

“Tablet Survey - April 2011” - AdMob for Google

Page 11: HTML5 for Mobile

/ 65

Definizione di “web mobile”

9

http://blog.nielsen.com/nielsenwire/?p=27702

NIELSEN - Q1 2011 Mobile Connected Device Report

0 6 12 18 24 30

Watching TVLying in bedIn the bathroomWith friends/familyWaiting for somethingShoppingAttending a meeting/classCommutingOther

Page 12: HTML5 for Mobile

/ 65

Definizione di “web mobile”

10

Page 13: HTML5 for Mobile

/ 65

Definizione di “web mobile”

11

http://www.youtube.com/watch?v=CjUcq_E4I-s

"The Mobile Movement: Understanding Smartphone Consumers" - GoogleMobileAds

Page 14: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Ma allora è mobile!

12

Page 15: HTML5 for Mobile

/ 6513

Osservaziіone #2

Page 16: HTML5 for Mobile

/ 65

Definizione di “web mobile”

14

http://iphonetowp7andback.didoo.net/

Page 17: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Questo è web?

Questo è mobile?

Dimensioni: 1x0.7x1.2 cmPeso: 162 g

15

Page 18: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Dimensioni: 1x0.7x1.2 cmPeso: 162 g

15

Page 19: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Dimensioni: 1x0.7x1.2 cmPeso: 162 g

15

Page 20: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Dimensioni: 1x0.7x1.2 cmPeso: 162 g

15

Page 21: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Questo è web?

Questo è mobile?

Dimensioni: 1x0.7x1.5 metriPeso: 245 kg

16

Page 22: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Dimensioni: 1x0.7x1.5 metriPeso: 245 kg

16

Page 23: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Dimensioni: 1x0.7x1.5 metriPeso: 245 kg

16

Page 24: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Dimensioni: 1x0.7x1.5 metriPeso: 245 kg

16

Page 25: HTML5 for Mobile

/ 65

Definizione di “web mobile”

Internet Explorer 7

17

CSS2 (with paged-media) + CSS3 SelectorsJavaScript 1.1 + DOM2 + AJAX

Page 26: HTML5 for Mobile

/ 65

HTML5

18

CRASH COURSE

Page 27: HTML5 for Mobile
Page 28: HTML5 for Mobile

/ 65

W3CWHATWG

STANDARD

20

HTML5

Cosa si intende con “HTML5”

Page 29: HTML5 for Mobile

/ 65

W3CWHATWG

STANDARD

20

HTML5

Cosa si intende con “HTML5”

Page 30: HTML5 for Mobile

/ 6521

HTML5CSS3 GEO

Local-databaseWebworkers Websockets

Font-embeddiіngJЈavascriіpt “magiіcs”

Cosa si intende con “HTML5”

Page 31: HTML5 for Mobile

/ 65

HTML5

22

La parola magica del momento

Page 32: HTML5 for Mobile

/ 65

HTML5 IІN BREVE

23

Page 33: HTML5 for Mobile

/ 65

In due minuti...

24

Novità nel linguaggio:

• introduzione di nuovi elementi semantici

• introduzione di nuovi attributi (anche “custom”)

• eliminazione elementi/attributi obsoleti

• definizione di un nuovo doctype

• definizione di nuove regole di sintassi

Page 34: HTML5 for Mobile

/ 65

In due minuti...

25

Introduzione di nuove API per semplificare lo sviluppo di applicazioni web:

• disegno vettoriale/bitmap su canvas (bidimensionale)

• riproduzione audio/video integrata

• gestione di storage di dati locali

• geo-localizzazione dell’utente

• gestione dello stato offline delle pagine web

• e molto altro ancora...

Page 35: HTML5 for Mobile

/ 65

THE BONNIІE SIІTUATIІON

26

MOBILE

Page 36: HTML5 for Mobile

/ 65

HTML5 for “mobile”?

27

Page 37: HTML5 for Mobile

/ 65

HTML5 for “mobile”!

28

• geo-localizzazione dell’utente• gestione dello stato offline delle pagine web• gestione di storage di dati locali• disegno vettoriale/bitmap su canvas (bidimensionale)

• cross-browser + cross-platform + cross-device• “write once, run anywhere”• semplicità dei linguaggi + bassa curva di apprendimento• interazione con “gesture” (eventi touch)

Page 38: HTML5 for Mobile

/ 65

HTML5 Mobile Boilerplate

29

Page 39: HTML5 for Mobile

/ 65

Ottimizzazione siti “mobili”

30

Page 40: HTML5 for Mobile

/ 65

Vere “applicazioni” web-based

31

http://37signals.com/svn/posts/2761-launch-basecamp-mobile

Page 41: HTML5 for Mobile

/ 65

Gamification of HTML5

32

Page 42: HTML5 for Mobile

/ 65

Angry Birds for Chrome

33

Page 43: HTML5 for Mobile

/ 65

Browser mobili sono i più evoluti

34

http://www.slideshare.net/jamesgpearce/building-cross-platform-mobile-web-apps-7925215

Page 44: HTML5 for Mobile

/ 65

Un mondo difficile...

X

Page 45: HTML5 for Mobile

/ 65

Un mondo difficile...

X

o forse no?

Page 46: HTML5 for Mobile

/ 65

In continua ebollizione...

35

Page 47: HTML5 for Mobile

/ 65

In continua ebollizione...

35

Continua corsa in avanti dei browser-vendor

Page 48: HTML5 for Mobile

/ 65

In continua ebollizione...

35

Continua corsa in avanti dei browser-vendor

Continua proliferazione di draft & specs

Page 49: HTML5 for Mobile

/ 65

In continua ebollizione...

35

Continua corsa in avanti dei browser-vendor

Continua proliferazione di draft & specs

Continua frammentazione delle feature supportate

Page 50: HTML5 for Mobile

/ 65

... come piovessero dal cielo!

36

Page 51: HTML5 for Mobile

/ 65

Confini sempre meno delimitati

37

Page 52: HTML5 for Mobile

/ 65

Confini sempre meno delimitati

37

Page 53: HTML5 for Mobile

/ 65

“Hortus conclusus”? Non più...

38

Page 54: HTML5 for Mobile

/ 65

Equilibrio (molto) precario

39

Page 55: HTML5 for Mobile

/ 65

HTML5 is the new Flash?

40

Page 56: HTML5 for Mobile

/ 65

FOR REAL

41

Page 58: HTML5 for Mobile

/ 65X

Page 59: HTML5 for Mobile

/ 65X

Page 60: HTML5 for Mobile

/ 65X

Page 61: HTML5 for Mobile

/ 65X

Page 62: HTML5 for Mobile

/ 65X

Page 63: HTML5 for Mobile

/ 65X

Page 64: HTML5 for Mobile

/ 6543

Page 65: HTML5 for Mobile

/ 65X

Page 66: HTML5 for Mobile

/ 65X

Page 67: HTML5 for Mobile

/ 65X

Page 68: HTML5 for Mobile

/ 65X

Page 69: HTML5 for Mobile

/ 65X

Page 70: HTML5 for Mobile

/ 6544

Quindi è già un sito “mobile”!

Page 71: HTML5 for Mobile

/ 6545

• donazione con paypal• segnalazione sui social• header grafico/visuale• elenco degli sponsor

• introduzione conferenza• programma della giornata• presentazioni dei relatori

Quali contenuti “in mobilità”?

• sede hotel• pausa pranzo • pernottamenti• mappa punti di interesse• come arrivare

• iscrizione• donazione con paypal• footer loghi/credits

Page 72: HTML5 for Mobile

/ 6545

• donazione con paypal• segnalazione sui social• header grafico/visuale• elenco degli sponsor

• introduzione conferenza• programma della giornata• presentazioni dei relatori

Quali contenuti “in mobilità”?

• sede hotel• pausa pranzo • pernottamenti• mappa punti di interesse• come arrivare

• iscrizione• donazione con paypal• footer loghi/credits

Page 73: HTML5 for Mobile

/ 65

Quali contenuti “in mobilità”?

46

✓ header grafico/visuale

✓ programma della giornata

✓ presentazioni dei relatori

✓ mappa punti di interesse

✓ footer loghi/credits

Page 74: HTML5 for Mobile

/ 65

Una versione veramente “mobile”

47

• Utilizzare il codice esistente (HTML, CSS e JS) senza doverlo duplicare e creare una seconda versione del sito

• Limitare i contenuti visualizzati alle sole informazioni interessanti e/o significative rispetto al contesto d’uso.

• Sfruttare le peculiarità del device per aggiungere al sito funzioni/interazioni tipiche del contesto “mobile”

?

Page 75: HTML5 for Mobile

/ 65

LET’S CODE!

48

Page 76: HTML5 for Mobile

/ 6549

IІn the begiіnniіng...

Page 77: HTML5 for Mobile

/ 65

Struttura del sito web

50

HTML• index.html

CSS• style.css

JЈS• jquery.min.js (framework)• jquery.scroll.js (smooth scrolling)• html5.js (per IE<9)• interaction.js

Page 78: HTML5 for Mobile

/ 65X

Page 79: HTML5 for Mobile

/ 65X

Page 80: HTML5 for Mobile

/ 65X

Page 81: HTML5 for Mobile

/ 65X

Page 82: HTML5 for Mobile

/ 65X

Page 83: HTML5 for Mobile

/ 65X

Page 84: HTML5 for Mobile

/ 65X

Page 85: HTML5 for Mobile

/ 65X

Page 86: HTML5 for Mobile

/ 6551

Step #1

Page 87: HTML5 for Mobile

/ 65

“Mobilizzazione”

52

HTML• Aggiungere meta-tag per dispositivi mobile• Aggiungere script per gestione eventi “touch”• Aggiungere css per adattamento a schermo 320x480 px

CSS• Adattare elementi a schermo 320x480 px• Nascondere contenuti non necessari

JЈS• Gestire il caso “mobile” usando user-agent detection

Page 88: HTML5 for Mobile

/ 65X

Page 89: HTML5 for Mobile

/ 65X

Page 90: HTML5 for Mobile

/ 65X

Page 91: HTML5 for Mobile

/ 65X

Page 92: HTML5 for Mobile

/ 6553

Step #2

Page 93: HTML5 for Mobile

/ 65

“Inception”

54

HTML• Togliere script esterni per evitare chiamate inutili• Gestire meglio la visualizzazione verticale dei contenuti

CSS• Evitare eccessivo scroll verticale• Re-impaginare elenchi programma/relatori

JЈS• Inserire via dom-manipulation gli script esterni• Rimuovere dal dom gli elementi non necessari

Page 94: HTML5 for Mobile

/ 65X

Page 95: HTML5 for Mobile

/ 65X

Page 96: HTML5 for Mobile

/ 65X

Page 97: HTML5 for Mobile

/ 65X

Page 98: HTML5 for Mobile

/ 6555

Step #3

Page 99: HTML5 for Mobile

/ 65

“Adaptation”

56

HTML• Gestire l’elenco dei POI come lista <ul>• Aggiungere meta-informazioni al programma

CSS• Evidenziare il talk in corso nel programma• Impaginare elenco POI

JЈS• Gestire toggling degli elementi per contenuti aggiuntivi• Rimuovere link di tipo “ancora” all’interno della pagina

Page 100: HTML5 for Mobile

/ 65X

Page 101: HTML5 for Mobile

/ 65X

Page 102: HTML5 for Mobile

/ 65X

Page 103: HTML5 for Mobile

/ 65X

Page 104: HTML5 for Mobile

/ 65X

Page 105: HTML5 for Mobile

/ 65X

Page 106: HTML5 for Mobile

/ 65X

Page 107: HTML5 for Mobile

/ 65X

Page 108: HTML5 for Mobile

/ 6557

At last...

Page 109: HTML5 for Mobile

/ 65

“Orientation”

58

CSS• Gestire i diversi stati di orientamento del device

JЈS• Implementare una soluzione fallback per simulare il

comportamento di media-orientation con iOS 3.2• Gestire geolocalizzazione dei POI

Page 110: HTML5 for Mobile

/ 65X

Page 111: HTML5 for Mobile

/ 65X

Page 112: HTML5 for Mobile

/ 65X

Page 113: HTML5 for Mobile

/ 65X

Page 114: HTML5 for Mobile

/ 65X

Portrait

Landscape (90°)

Landscape (-90°)

Page 115: HTML5 for Mobile

/ 6559

What about Androiіd ?

Page 116: HTML5 for Mobile

/ 65X

Page 117: HTML5 for Mobile

/ 65X

Page 118: HTML5 for Mobile

/ 6560

... and Wiіn Phone 7 ?

Page 119: HTML5 for Mobile

/ 6561

WP7 = Internet Explorer 7

http://blogs.msdn.com/b/iemobile/archive/2010/12/08/targeting-mobile-optimized-css-at-windows-phone-7.aspx

• CSS3 Media Queries

• CSS3 Media Orientation

• onOrientationChange event

• gradients, rounded corners, box/text shadows, selectors, transitions, transformations

• @font-face

Page 120: HTML5 for Mobile

/ 6561

WP7 = Internet Explorer 7

http://blogs.msdn.com/b/iemobile/archive/2010/12/08/targeting-mobile-optimized-css-at-windows-phone-7.aspx

• CSS3 Media Queries

• CSS3 Media Orientation

• onOrientationChange event

• gradients, rounded corners, box/text shadows, selectors, transitions, transformations

• @font-face

Page 121: HTML5 for Mobile

/ 6561

WP7 = Internet Explorer 7

http://blogs.msdn.com/b/iemobile/archive/2010/12/08/targeting-mobile-optimized-css-at-windows-phone-7.aspx

• CSS3 Media Queries

• CSS3 Media Orientation

• onOrientationChange event

• gradients, rounded corners, box/text shadows, selectors, transitions, transformations

• @font-face

MANGO = IE9

Page 122: HTML5 for Mobile

/ 65

CONCLUSIІONIІ

62

Page 123: HTML5 for Mobile

/ 65

Take-away points

63

➜ Capite con attenzione quali strategie/tecnologie volete adottare per lo sviluppo di un sito “mobile”.

➜ Valutate se davvero vi occorre un secondo sito web.

➜ Provate a sfruttare le possibilità, offerte dall’HTML5, in modo intelligente e non convenzionale.

➜ Avete il DOM. Usatelo! Giocateci!! Manipolatelo!!!

Page 124: HTML5 for Mobile

www.didoo.net@areaweb

Grazie per l’attenzione.

Cristiano Rastelli

Page 125: HTML5 for Mobile