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.
10. Definizione di “web mobile”
“Tablet Survey - April 2011” - AdMob for Google
8 / 65
11. Definizione di “web mobile”
NIELSEN - Q1 2011 Mobile Connected Device Report
Watching TV
Lying in bed
In the bathroom
With friends/family
Waiting for something
Shopping
Attending a meeting/class
Commuting
Other
0 6 12 18 24 30
http://blog.nielsen.com/nielsenwire/?p=27702
9 / 65
33. In due minuti...
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
24 / 65
34. In due minuti...
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...
25 / 65
37. HTML5 for “mobile”!
• 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)
28 / 65
48. In continua ebollizione...
Continua corsa in avanti dei
browser-vendor
Continua proliferazione di
draft & specs
35 / 65
49. In continua ebollizione...
Continua corsa in avanti dei
browser-vendor
Continua proliferazione di
draft & specs
Continua frammentazione
delle feature supportate
35 / 65
71. Quali contenuti “in mobilità”?
• donazione con paypal • sede hotel
• segnalazione sui social • pausa pranzo
• header grafico/visuale • pernottamenti
• elenco degli sponsor • mappa punti di interesse
• come arrivare
• introduzione conferenza
• programma della giornata • iscrizione
• presentazioni dei relatori • donazione con paypal
• footer loghi/credits
45 / 65
72. Quali contenuti “in mobilità”?
• donazione con paypal • sede hotel
• segnalazione sui social • pausa pranzo
• header grafico/visuale • pernottamenti
• elenco degli sponsor • mappa punti di interesse
• come arrivare
• introduzione conferenza
• programma della giornata • iscrizione
• presentazioni dei relatori • donazione con paypal
• footer loghi/credits
45 / 65
73. Quali contenuti “in mobilità”?
✓ header grafico/visuale
✓ programma della giornata
✓ presentazioni dei relatori
✓ mappa punti di interesse
✓ footer loghi/credits
46 / 65
74. Una versione veramente “mobile”
• 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”
47 / 65
87. “Mobilizzazione”
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
52 / 65
93. “Inception”
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
54 / 65
99. “Adaptation”
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
56 / 65
109. “Orientation”
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
58 / 65
123. Take-away points
➜ 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!!!
63 / 65