SlideShare ist ein Scribd-Unternehmen logo
1 von 107
Downloaden Sie, um offline zu lesen
HTML5, CSS3 e JavaScript
Web app per tutti gli schermi
Marco Casario - www.marcocasario.com
CTO Comtaste - m.casario@comtaste.com
www.linkedin.com/in/marcocasario
sabato 23 marzo 13
Chi sono
Copyright 2013 www.marcocasario.com 2
Marco Casario
CTO Comtaste
www.linkedin.com/in/marcocasario
sabato 23 marzo 13
I miei ultimi libri
Copyright 2013 www.marcocasario.com 3
sabato 23 marzo 13
I miei corsi
Copyright 2013 www.marcocasario.com 3
Rich Web Apps con HTML5
Responsive Design con HTML5 e
CSS3
sabato 23 marzo 13
Tutto il mondo è ... mobile
sabato 23 marzo 13
Il web è cambiato
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Smartphones superano i PC
Leggi: www.businessweek.com/technology/content/apr2011/
tc20110418_512247.htm
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Il Web è uscito dal desktop
Copyright 2013 www.marcocasario.com 29
sabato 23 marzo 13
Dove gli utenti usano il mobile
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
RESPONSIVE
Copyright 2013 www.marcocasario.com - CONFIDENZIALE - 15
Le opzioni
OTTIMIZZATO
NATIVO
IBRIDO
WEB STORE
Retail
Search
Software As a Service
Siti d’informazione e blogs
Portfolio
Magazine
Softwares
Videogiochi
Finanza
Softwares
Videogiochi
Multimedia
sabato 23 marzo 13
Versioni ottimizzate per mobile
Che succede se il link è condiviso sui social
network ?
Copyright 2013 www.marcocasario.com 30
sabato 23 marzo 13
Responsive Web Design
Il movimento del Responsive Web Design risale ad un
articolo del 2010 di Ethan Marcotte scritto per A List
Apart titled “Responsive Web Design.” in cui dichiarava:
responsive design is not about “designing for mobile.”
But it’s not about “designing for the desktop,” either.
Rather, it’s about adopting a more flexible, device-
agnostic approach to designing for the web
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Responsive Architecture
Copyright 2013 www.marcocasario.com 32
Da vedere: http://vimeo.com/4661618
sabato 23 marzo 13
Responsive Web Design
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Difficult to see. Always in
motion is the future.
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Non si compete con la tecnologia
Copyright 2013 www.marcocasario.com 31
Non possiamo creare una versione
ottimizzata per ogni dispositivo che uscirà
sul mercato.
sabato 23 marzo 13
HTML5 è tra noi !
sabato 23 marzo 13
Quando sarà finito HTML5
Il W3C ha presentato un piano secondo il quale le
specifiche di HTML5 saranno finali e consolidate a fine
2014
Le specifiche HTML 5.1 saranno invece finalizzate per il
2016.
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
HTML5 Macro aree
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Top 5 HTML5 Mobile Features
Geolocation
Offline Application
CSS3 Media Queries
Video and Audio
Canvas and WebGL
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Errori da evitare
Approccio incrementale ad HTML5
Copyright 2013 www.marcocasario.com 28
sabato 23 marzo 13
Strategie per passare al RWD
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Gli utenti che navigano il web dai dispositivi
mobili hanno bisogno dello stesso contenuto di
quelli che usano il web browser dal desktop ?
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
E’ corretto pensare che l’utente seduto davanti
al desktop può “digerire” più informazioni,
mentre chi naviga col cellulare è on the move e
quindi non può concentrarsi su troppo
contenuto ?
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Non si può rispondere a queste domande
senza conoscere in maniera approfondita
quelli che sono gli obiettivi degli utenti finali.
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Cross-screen Web App
Workflow
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Strategie da usare - Il vecchio approccio
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Cosa è importante per gli utenti
+
Application Map
1.
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Mockup a bassa fedeltà
2.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Strategie da usare - Mockup
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Mockup Bassa Fedeltà
Link: http://www.balsamiq.com/products/mockups
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Mockup Bassa Fedeltà
Link: http://proto.io/
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Rapid Prototyping (markup fluido)
3.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Strategie da usare - Rapid Proto
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Testo su dispositivi mobili per valutare
contenuti e application flow
4.
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Ciclo di revisione e creazione dei
visuals e style guide
5.
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Markup dei visuals con stili grafici
6.
sabato 23 marzo 13
Layout Patterns - Tipologie
Copyright 2013 www.marcocasario.com 24
sabato 23 marzo 13
Layout Patterns
Copyright 2013 www.marcocasario.com 25
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Test del markup sui device mobili
7.
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Primi test di performance e load time
8.
sabato 23 marzo 13
Il contesto di utilizzo
Copyright 2013 www.marcocasario.com 36
Migliora, implementa e refactoring
10.
sabato 23 marzo 13
Ingredienti per RWD
sabato 23 marzo 13
Ingredienti per il RWD
Copyright 2013 www.marcocasario.com 33
★Flexible Grid-based layout
★Flexible images and media
★Media Queries
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Creare griglie flessibili
Libro: Ordering Disorder: Grid Principles for Web Design,
sabato 23 marzo 13
Adaptive Images - W3C
Copyright 2013 www.marcocasario.com 47
Esistono già diverse soluzioni ed approcci al problema,
anche se sono articolate e non sempre risolvono
interamente il problema.
Esiste un progetto standard del W3C ma che ancora non
è supportato dai browser (dati di Novembre 2012)
www.responsiveimages.org
sabato 23 marzo 13
Adaptive Images
Copyright 2013 www.marcocasario.com 48
http://adaptive-images.com/
sabato 23 marzo 13
CSS3 Media Queries
sabato 23 marzo 13
Media Queries
Copyright 2013 www.marcocasario.com 36
Sintassi della media query:
@media screen and (min-width: 960px) {
body {
font-family: 'Merriweather Sans', sans-serif;	
font-weight:300;
font-style:normal;
}
}
Se il browser risponde alle due query, allora viene
caricato il css definito al suo interno.
sabato 23 marzo 13
Caricamento dei Media Queries
Copyright 2013 www.marcocasario.com 36
Le media queries possono essere embeddate nello
stylesheet:
@media screen and (min-width: 960px) {
     body{
          font-size: 16px;
     }
}
o importate nel documento come foglio esterno:
<link href="style.css" media="only screen and (min-
width: 960px)" />
sabato 23 marzo 13
Caricamento dei Media Queries
Copyright 2013 www.marcocasario.com 36
Media queries embeddate nello stylesheet
★vengono caricate dal browser anche se non utilizzate,
ma effettuano una sola chiamata HTTP.
Media queries importate come foglio esterno
★vengono caricate tutte :/ con l’aggravante che le
chiamate HTTP sono tante quanti i fogli di sitle da
caricare !
sabato 23 marzo 13
Media Queries
Copyright 2013 www.marcocasario.com 36
Se hai un layout fisso, convertilo in fluido
prima di iniziare a scrivere le media queries.
sabato 23 marzo 13
Approcci per creare media queries
sabato 23 marzo 13
Strumenti per i test
Copyright 2013 www.marcocasario.com 36
http://responsive.victorcoulon.fr
Responsive Design Bookmarklet
sabato 23 marzo 13
Approccio per creare le MQ
Copyright 2013 www.marcocasario.com 36
Lasciarsi guidare dal contenuto
DEMO: Lanciare il mediaQuery Bookmarklet
sabato 23 marzo 13
CSS Frameworks
Copyright 2013 www.marcocasario.com 36
Sono un insieme di CSS files che
contengono delle regole.
Queste regole determinano il layout ed il
contenuto di una pagina html
sabato 23 marzo 13
Scegliere un framework
Copyright 2013 www.marcocasario.com 36
Esistono centinaia di framework.
I framework possono essere riassunti in 3 tipi:
★UI Frameworks (Bootstrap)
★Framework omnicomprensivi (Foundation4, Gumby,
YAML, )
★Framework minimali (es. Skeleton, Base, Kube, Goldilocks)
sabato 23 marzo 13
Framework Si/No ?
Copyright 2013 www.marcocasario.com 36
sabato 23 marzo 13
Framework Si/No ?
Copyright 2013 www.marcocasario.com 36
Scegliere un framework significa usare l’approccio allo
sviluppo di qualcun’altro.
Scegliere un framework significa ridurre i tempi di
sviluppo (il più delle volte)
Scegliere un framework significa non dover reinventare
la ruota ogni volta (consistenza tra i browsers, hacks ..)
Scegliere un framework significa usare uno standard e
delle convenzioni nello sviluppo.
sabato 23 marzo 13
Framework Si/No ?
Copyright 2013 www.marcocasario.com 36
Il mio consiglio ?
Fatevi una lista degli obiettivi del vostro progetto:
compatibilità tra browser, velocità di sviluppo, aiuto sul layout,
etc.
Provate tanti framework, capite quali soluzioni sono state
trovate e come sono state implementate.
Imparate dalle loro best practice.
Depurate il codice che non usate ma che è incluso nel
framework
sabato 23 marzo 13
Framework Si/No ?
Copyright 2013 www.marcocasario.com 36
Il mio consiglio ?
Infine scegliete quello che è più vicino al vostro approccio
considerando anche aspetti di diffusione e di community.
Se proprio non riuscite, allora createvi il vostro framework !
Leggete bene il licensing.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Esplorate
Framework Si/No ?
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
RESS: Responsive Server
Tecnica che usa il server per
generare il codice a seconda
del dispositivo intercettato.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
RESS: Responsive Server
http://wurfl.sourceforge.net/
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
RESS: Responsive Server
https://github.com/jamesgpearce/modernizr-server
sabato 23 marzo 13
Performance e load time
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Da studi di ricerca del settore
si evince che gli utent si
aspettano di vedere la pagina
caricata entro 2 secondi.
Dopo il 3 secondo il 40% degli
utenti abbandona il sito.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Amazon ha dichiarato che ogni
100ms di tempo aggiunto al
caricamento di una pagina fa
decrementare le vendite del
1%
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Il RWD se approcciato male può
drammaticamente impattare sulle
performance e sui tempi di caricamento
delle pagine.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
http://goo.gl/bdpzJ
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Pulisci il codice HTML riducendo gli
elementi non semantici.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Rimuovi dai CSS gli statement orfani.
Usa tool appositi www.sitepoint.com/dustmeselectors/
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Misura le performance dei CSS3
http://andy.edinborough.org/CSS-Stress-Testing-and-
Performance-Profiling
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
CSS minification
http://www.csscompressor.com/
PS: Usa il <link> invece del @import per permettere il download
parallello
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Ottimizzare l’uso delle immagini.
Usare gli Sprites
http://alistapart.com/article/sprites
http://spriteme.org/
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Usare la tecnica del Data URIs
.embeddedImg {
background-image: url("data:image/
png;base64,iVBORw0KGgoAAAANS ...
UhEUgAAABgAAAAYCAMAAADXqc3KAAADU5ErkJggg==");
}
http://software.hixie.ch/utilities/cgi/data/data
http://www.motobit.com/util/base64-decoder-encoder.asp
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Usare Icon Fonts
http://icomoon.io/
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Comprimi le immagini.
http://imageoptim.pornel.net/
http://developer.yahoo.com/yslow/smushit/
http://pmt.sourceforge.net/pngcrush/
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Ottimizza la sintassi JavaScript
Evita l’uso dell’eval()
Fai attenzione all’uso di with
Evita il try..catch (se sai che un errore si verificherà
sicuramente)
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Pubblica i file Javascript e CSS su un
subdomain diverso dal markup.
Questo permette il caricamento parallelo
delle risorse.
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
Minify JavaScript
jscompress.com
www.minifyjavascript.com
www.jsmini.com
http://marijnhaverbeke.nl/uglifyjs
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance
sabato 23 marzo 13
Connessione – Detect client side
Copyright 2013 www.marcocasario.com 53
W3C Network Information API
Usa la proprietà navigator.connection.type che ritorna
WIFI, CELL_2G, CELL_3G
if
(navigator.connection.type==navigator.connection.WIFI)
{ }
sabato 23 marzo 13
HTTP Testing – Bandwidth throttling
Copyright 2013 www.marcocasario.com 55
http://www.charlesproxy.com/
sabato 23 marzo 13
HTTP Testing – Bandwidth throttling
Copyright 2013 www.marcocasario.com 55
sabato 23 marzo 13
Redirect – Do not !
Copyright 2013 www.marcocasario.com 56
Evitare i redirect
Il sito sarà più SEO-friendly
Alcuni browser mobile possono presentare dei problemi
sabato 23 marzo 13
Gestures – Touch not Click
Copyright 2013 www.marcocasario.com 57
I device touch hanno un ritardo nel click tra i 300 e i
500 ms prima di essere eseguiti !
Utilizza l’evento onTouchEvent (datatype ACTION_UP) 
Attenzione all’evento onTouchStart perchè a volte il tap
risulta troppo responsive ma causa lo scrolling ad essere
inusabile.
sabato 23 marzo 13
Gli ultimi consigli
Copyright 2013 www.marcocasario.com 58
Parsare Javascript richiede tempo
(anche 100ms per 1Kb)
sabato 23 marzo 13
Gli ultimi consigli
Copyright 2013 www.marcocasario.com 59
Ti serve veramente un
framework ?
Jquery impiega 6 secondi ad essere parsato
su alcuni dispositivi.
sabato 23 marzo 13
Gli ultimi consigli
Copyright 2013 www.marcocasario.com 60
Jquery Mobile non è un piccolo
framework, è un UI framework ed usa il
core di Jquery.
sabato 23 marzo 13
Gli ultimi consigli
Copyright 2013 www.marcocasario.com 61
Usa micro frameworks o creati le tue mini
libraries
★ XUI
★ zepto.js
★ microjs
sabato 23 marzo 13
Gli ultimi consigli
Copyright 2013 www.marcocasario.com 62
Se usi JSON (dovresti) ricorda che il
JSON.parse è quasi 2 volte più veloce
della funzione eval()
sabato 23 marzo 13
Gli ultimi consigli
Copyright 2013 www.marcocasario.com 63
Usare HTML5 Application Cache
<html manifest="example.appcache“>
sabato 23 marzo 13
Gli ultimi consigli
Copyright 2013 www.marcocasario.com 64
Usare HTML5 Local Storage
Ricorda che lo storage di stringhe è 2 volte più veloce
dello storage di oggetti
Su mobile puoi considerare fino a 2 Mb.
sabato 23 marzo 13
Persistent Cache Size by Browser
Copyright 2013 www.marcocasario.com 64
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance - Test
http://developer.yahoo.com/yslow/
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance - Test
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance - Moduli Backend
www.gzip.org
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance - Moduli Backend
https://developers.google.com/speed/
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance - Moduli Backend
YUI Compressor
http://yui.github.com/yuicompressor/
Vedi www.slideshare.net/nzakas/extreme-javascript-
compression-with-yui-compressor
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Performance - Moduli Backend
YUI Compressor
Vedi www.slideshare.net/nzakas/extreme-javascript-
compression-with-yui-compressor
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Strategie da usare - Architettura client
Questa potrebbe essere una lista dei moduli JS che il
client deve gestire:
★Navigation
★Remote Data Access
★Authentication/Authorization
★Decouple View from Application Model (MVC pattern)
★Modularization/Packaging
★Dependency Management
★Logging/Tracing
★Exception Handling
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Strategie da usare - Architettura client
Questa potrebbe essere una lista dei moduli JS che il
client deve gestire:
★Backbone.js – Javascript MVC/Navigation framework
★Require.js – AMD based module organization and
library dependency management
★_Underscore.js – Provide functional programming
features to Javascript
★Jquery Mobile – Document Object Model(DOM) access
and manipulation
★Zepto.js - MVC framework compatibile Jquery
★XUI.js, Flight by Twitter
sabato 23 marzo 13
Copyright 2013 www.marcocasario.com 36
Strategie da usare - Architettura client
sabato 23 marzo 13
Emulatori
Copyright 2013 www.marcocasario.com 51
Ne esistono tantissimi, molti dei quali gratuiti.
Sono utili come prima fase di testing e non possono
essere considerati affidabili al 100%
http://www.mobilexweb.com/emulators
sabato 23 marzo 13
HTML5, CSS3 e JavaScript
Web app per tutti gli schermi
Marco Casario - www.marcocasario.com
CTO Comtaste - m.casario@comtaste.com
www.linkedin.com/in/marcocasario
sabato 23 marzo 13

Weitere ähnliche Inhalte

Andere mochten auch

Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webMassimo Bonanni
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerMatteo Magni
 
Smau milano 2012 arena social media massimo-grava
Smau milano 2012   arena social media massimo-gravaSmau milano 2012   arena social media massimo-grava
Smau milano 2012 arena social media massimo-gravaSMAU
 
Reporting services
Reporting servicesReporting services
Reporting servicesMarco Pozzan
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Matteo Magni
 
Html e Css - 4 | WebMaster & WebDesigner
Html e Css - 4 | WebMaster & WebDesignerHtml e Css - 4 | WebMaster & WebDesigner
Html e Css - 4 | WebMaster & WebDesignerMatteo Magni
 
Storia ed Architettura di Internet e del web
Storia ed Architettura di Internet e del webStoria ed Architettura di Internet e del web
Storia ed Architettura di Internet e del webvfailla
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
 

Andere mochten auch (17)

Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo web
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesigner
 
Html5 - Un anno dopo
Html5 - Un anno dopoHtml5 - Un anno dopo
Html5 - Un anno dopo
 
HTML e CSS
HTML e CSSHTML e CSS
HTML e CSS
 
CSS3
CSS3CSS3
CSS3
 
Smau milano 2012 arena social media massimo-grava
Smau milano 2012   arena social media massimo-gravaSmau milano 2012   arena social media massimo-grava
Smau milano 2012 arena social media massimo-grava
 
Reporting services
Reporting servicesReporting services
Reporting services
 
HTML5 Live
HTML5 LiveHTML5 Live
HTML5 Live
 
HTML5 for Mobile
HTML5 for MobileHTML5 for Mobile
HTML5 for Mobile
 
Corso HTML5. Esempi di App
Corso HTML5. Esempi di AppCorso HTML5. Esempi di App
Corso HTML5. Esempi di App
 
Mobile UI Design
Mobile UI DesignMobile UI Design
Mobile UI Design
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner
 
Html e Css - 4 | WebMaster & WebDesigner
Html e Css - 4 | WebMaster & WebDesignerHtml e Css - 4 | WebMaster & WebDesigner
Html e Css - 4 | WebMaster & WebDesigner
 
Storia ed Architettura di Internet e del web
Storia ed Architettura di Internet e del webStoria ed Architettura di Internet e del web
Storia ed Architettura di Internet e del web
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
 
HTML 5 e browser legacy
HTML 5 e browser legacyHTML 5 e browser legacy
HTML 5 e browser legacy
 

Ähnlich wie HTML5, CSS3 e JavaScript: Web app per tutti gli schermi by Marco Casario

Session isolation e rendering delle pagine web
Session isolation e rendering delle pagine webSession isolation e rendering delle pagine web
Session isolation e rendering delle pagine webGiacomo Zecchini
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermimarcocasario
 
#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in Google#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in GoogleALE AGOSTINI
 
Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Gabriella
 
Trends in Mobile Search - SMX Milan 2013
Trends in Mobile Search - SMX Milan 2013Trends in Mobile Search - SMX Milan 2013
Trends in Mobile Search - SMX Milan 2013Sean Carlos
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!Stefano Fago
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Matteo Miotto
 
Cosa ci sarà dopo i CSS3? (reprise)
Cosa ci sarà dopo i CSS3? (reprise)Cosa ci sarà dopo i CSS3? (reprise)
Cosa ci sarà dopo i CSS3? (reprise)Salvatore Laisa
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgroundsAlessandro Alpi
 
MageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrataMageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrataMauro Lorenzutti
 
SMAU Milano 2015
SMAU Milano 2015SMAU Milano 2015
SMAU Milano 2015Paolo Dadda
 
Every millisecond counts: Techniques, strategies, and tools for a Web Perform...
Every millisecond counts: Techniques, strategies, and tools for a Web Perform...Every millisecond counts: Techniques, strategies, and tools for a Web Perform...
Every millisecond counts: Techniques, strategies, and tools for a Web Perform...Codemotion
 
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Neo4j
 
Viral Marketing & Cloud: come creare una Customer Experience perfetta
Viral Marketing & Cloud: come creare una Customer Experience perfettaViral Marketing & Cloud: come creare una Customer Experience perfetta
Viral Marketing & Cloud: come creare una Customer Experience perfettaseeweb
 

Ähnlich wie HTML5, CSS3 e JavaScript: Web app per tutti gli schermi by Marco Casario (20)

Il CMS Joomla!
Il CMS Joomla!Il CMS Joomla!
Il CMS Joomla!
 
Session isolation e rendering delle pagine web
Session isolation e rendering delle pagine webSession isolation e rendering delle pagine web
Session isolation e rendering delle pagine web
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermi
 
#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in Google#SEOUX Revolution: Cosa Cambia in Google
#SEOUX Revolution: Cosa Cambia in Google
 
Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Aziende Fornitori Web2.0
Aziende Fornitori Web2.0
 
Trends in Mobile Search - SMX Milan 2013
Trends in Mobile Search - SMX Milan 2013Trends in Mobile Search - SMX Milan 2013
Trends in Mobile Search - SMX Milan 2013
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...
 
DDD Dirty Harry style
DDD Dirty Harry styleDDD Dirty Harry style
DDD Dirty Harry style
 
Cosa ci sarà dopo i CSS3? (reprise)
Cosa ci sarà dopo i CSS3? (reprise)Cosa ci sarà dopo i CSS3? (reprise)
Cosa ci sarà dopo i CSS3? (reprise)
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
 
4. I browser
4. I browser4. I browser
4. I browser
 
MageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrataMageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrata
 
SMAU Milano 2015
SMAU Milano 2015SMAU Milano 2015
SMAU Milano 2015
 
Html5
Html5Html5
Html5
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Every millisecond counts: Techniques, strategies, and tools for a Web Perform...
Every millisecond counts: Techniques, strategies, and tools for a Web Perform...Every millisecond counts: Techniques, strategies, and tools for a Web Perform...
Every millisecond counts: Techniques, strategies, and tools for a Web Perform...
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
 
Viral Marketing & Cloud: come creare una Customer Experience perfetta
Viral Marketing & Cloud: come creare una Customer Experience perfettaViral Marketing & Cloud: come creare una Customer Experience perfetta
Viral Marketing & Cloud: come creare una Customer Experience perfetta
 

Mehr von Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Mehr von Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

HTML5, CSS3 e JavaScript: Web app per tutti gli schermi by Marco Casario

  • 1. HTML5, CSS3 e JavaScript Web app per tutti gli schermi Marco Casario - www.marcocasario.com CTO Comtaste - m.casario@comtaste.com www.linkedin.com/in/marcocasario sabato 23 marzo 13
  • 2. Chi sono Copyright 2013 www.marcocasario.com 2 Marco Casario CTO Comtaste www.linkedin.com/in/marcocasario sabato 23 marzo 13
  • 3. I miei ultimi libri Copyright 2013 www.marcocasario.com 3 sabato 23 marzo 13
  • 4. I miei corsi Copyright 2013 www.marcocasario.com 3 Rich Web Apps con HTML5 Responsive Design con HTML5 e CSS3 sabato 23 marzo 13
  • 5. Tutto il mondo è ... mobile sabato 23 marzo 13
  • 6. Il web è cambiato Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 7. Smartphones superano i PC Leggi: www.businessweek.com/technology/content/apr2011/ tc20110418_512247.htm Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 8. Il Web è uscito dal desktop Copyright 2013 www.marcocasario.com 29 sabato 23 marzo 13
  • 9. Dove gli utenti usano il mobile Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 10. RESPONSIVE Copyright 2013 www.marcocasario.com - CONFIDENZIALE - 15 Le opzioni OTTIMIZZATO NATIVO IBRIDO WEB STORE Retail Search Software As a Service Siti d’informazione e blogs Portfolio Magazine Softwares Videogiochi Finanza Softwares Videogiochi Multimedia sabato 23 marzo 13
  • 11. Versioni ottimizzate per mobile Che succede se il link è condiviso sui social network ? Copyright 2013 www.marcocasario.com 30 sabato 23 marzo 13
  • 12. Responsive Web Design Il movimento del Responsive Web Design risale ad un articolo del 2010 di Ethan Marcotte scritto per A List Apart titled “Responsive Web Design.” in cui dichiarava: responsive design is not about “designing for mobile.” But it’s not about “designing for the desktop,” either. Rather, it’s about adopting a more flexible, device- agnostic approach to designing for the web Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 13. Responsive Architecture Copyright 2013 www.marcocasario.com 32 Da vedere: http://vimeo.com/4661618 sabato 23 marzo 13
  • 14. Responsive Web Design Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 15. Difficult to see. Always in motion is the future. Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 16. Non si compete con la tecnologia Copyright 2013 www.marcocasario.com 31 Non possiamo creare una versione ottimizzata per ogni dispositivo che uscirà sul mercato. sabato 23 marzo 13
  • 17. HTML5 è tra noi ! sabato 23 marzo 13
  • 18. Quando sarà finito HTML5 Il W3C ha presentato un piano secondo il quale le specifiche di HTML5 saranno finali e consolidate a fine 2014 Le specifiche HTML 5.1 saranno invece finalizzate per il 2016. Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 19. HTML5 Macro aree Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 20. Top 5 HTML5 Mobile Features Geolocation Offline Application CSS3 Media Queries Video and Audio Canvas and WebGL Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 21. Errori da evitare Approccio incrementale ad HTML5 Copyright 2013 www.marcocasario.com 28 sabato 23 marzo 13
  • 22. Strategie per passare al RWD sabato 23 marzo 13
  • 23. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Gli utenti che navigano il web dai dispositivi mobili hanno bisogno dello stesso contenuto di quelli che usano il web browser dal desktop ? sabato 23 marzo 13
  • 24. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 sabato 23 marzo 13
  • 25. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 E’ corretto pensare che l’utente seduto davanti al desktop può “digerire” più informazioni, mentre chi naviga col cellulare è on the move e quindi non può concentrarsi su troppo contenuto ? sabato 23 marzo 13
  • 26. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Non si può rispondere a queste domande senza conoscere in maniera approfondita quelli che sono gli obiettivi degli utenti finali. sabato 23 marzo 13
  • 27. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Cross-screen Web App Workflow sabato 23 marzo 13
  • 28. Copyright 2013 www.marcocasario.com 36 Strategie da usare - Il vecchio approccio sabato 23 marzo 13
  • 29. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Cosa è importante per gli utenti + Application Map 1. sabato 23 marzo 13
  • 30. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Mockup a bassa fedeltà 2. sabato 23 marzo 13
  • 31. Copyright 2013 www.marcocasario.com 36 Strategie da usare - Mockup sabato 23 marzo 13
  • 32. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Mockup Bassa Fedeltà Link: http://www.balsamiq.com/products/mockups sabato 23 marzo 13
  • 33. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Mockup Bassa Fedeltà Link: http://proto.io/ sabato 23 marzo 13
  • 34. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Rapid Prototyping (markup fluido) 3. sabato 23 marzo 13
  • 35. Copyright 2013 www.marcocasario.com 36 Strategie da usare - Rapid Proto sabato 23 marzo 13
  • 36. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Testo su dispositivi mobili per valutare contenuti e application flow 4. sabato 23 marzo 13
  • 37. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Ciclo di revisione e creazione dei visuals e style guide 5. sabato 23 marzo 13
  • 38. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Markup dei visuals con stili grafici 6. sabato 23 marzo 13
  • 39. Layout Patterns - Tipologie Copyright 2013 www.marcocasario.com 24 sabato 23 marzo 13
  • 40. Layout Patterns Copyright 2013 www.marcocasario.com 25 sabato 23 marzo 13
  • 41. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Test del markup sui device mobili 7. sabato 23 marzo 13
  • 42. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Primi test di performance e load time 8. sabato 23 marzo 13
  • 43. Il contesto di utilizzo Copyright 2013 www.marcocasario.com 36 Migliora, implementa e refactoring 10. sabato 23 marzo 13
  • 45. Ingredienti per il RWD Copyright 2013 www.marcocasario.com 33 ★Flexible Grid-based layout ★Flexible images and media ★Media Queries sabato 23 marzo 13
  • 46. Copyright 2013 www.marcocasario.com 36 Creare griglie flessibili Libro: Ordering Disorder: Grid Principles for Web Design, sabato 23 marzo 13
  • 47. Adaptive Images - W3C Copyright 2013 www.marcocasario.com 47 Esistono già diverse soluzioni ed approcci al problema, anche se sono articolate e non sempre risolvono interamente il problema. Esiste un progetto standard del W3C ma che ancora non è supportato dai browser (dati di Novembre 2012) www.responsiveimages.org sabato 23 marzo 13
  • 48. Adaptive Images Copyright 2013 www.marcocasario.com 48 http://adaptive-images.com/ sabato 23 marzo 13
  • 50. Media Queries Copyright 2013 www.marcocasario.com 36 Sintassi della media query: @media screen and (min-width: 960px) { body { font-family: 'Merriweather Sans', sans-serif; font-weight:300; font-style:normal; } } Se il browser risponde alle due query, allora viene caricato il css definito al suo interno. sabato 23 marzo 13
  • 51. Caricamento dei Media Queries Copyright 2013 www.marcocasario.com 36 Le media queries possono essere embeddate nello stylesheet: @media screen and (min-width: 960px) {      body{           font-size: 16px;      } } o importate nel documento come foglio esterno: <link href="style.css" media="only screen and (min- width: 960px)" /> sabato 23 marzo 13
  • 52. Caricamento dei Media Queries Copyright 2013 www.marcocasario.com 36 Media queries embeddate nello stylesheet ★vengono caricate dal browser anche se non utilizzate, ma effettuano una sola chiamata HTTP. Media queries importate come foglio esterno ★vengono caricate tutte :/ con l’aggravante che le chiamate HTTP sono tante quanti i fogli di sitle da caricare ! sabato 23 marzo 13
  • 53. Media Queries Copyright 2013 www.marcocasario.com 36 Se hai un layout fisso, convertilo in fluido prima di iniziare a scrivere le media queries. sabato 23 marzo 13
  • 54. Approcci per creare media queries sabato 23 marzo 13
  • 55. Strumenti per i test Copyright 2013 www.marcocasario.com 36 http://responsive.victorcoulon.fr Responsive Design Bookmarklet sabato 23 marzo 13
  • 56. Approccio per creare le MQ Copyright 2013 www.marcocasario.com 36 Lasciarsi guidare dal contenuto DEMO: Lanciare il mediaQuery Bookmarklet sabato 23 marzo 13
  • 57. CSS Frameworks Copyright 2013 www.marcocasario.com 36 Sono un insieme di CSS files che contengono delle regole. Queste regole determinano il layout ed il contenuto di una pagina html sabato 23 marzo 13
  • 58. Scegliere un framework Copyright 2013 www.marcocasario.com 36 Esistono centinaia di framework. I framework possono essere riassunti in 3 tipi: ★UI Frameworks (Bootstrap) ★Framework omnicomprensivi (Foundation4, Gumby, YAML, ) ★Framework minimali (es. Skeleton, Base, Kube, Goldilocks) sabato 23 marzo 13
  • 59. Framework Si/No ? Copyright 2013 www.marcocasario.com 36 sabato 23 marzo 13
  • 60. Framework Si/No ? Copyright 2013 www.marcocasario.com 36 Scegliere un framework significa usare l’approccio allo sviluppo di qualcun’altro. Scegliere un framework significa ridurre i tempi di sviluppo (il più delle volte) Scegliere un framework significa non dover reinventare la ruota ogni volta (consistenza tra i browsers, hacks ..) Scegliere un framework significa usare uno standard e delle convenzioni nello sviluppo. sabato 23 marzo 13
  • 61. Framework Si/No ? Copyright 2013 www.marcocasario.com 36 Il mio consiglio ? Fatevi una lista degli obiettivi del vostro progetto: compatibilità tra browser, velocità di sviluppo, aiuto sul layout, etc. Provate tanti framework, capite quali soluzioni sono state trovate e come sono state implementate. Imparate dalle loro best practice. Depurate il codice che non usate ma che è incluso nel framework sabato 23 marzo 13
  • 62. Framework Si/No ? Copyright 2013 www.marcocasario.com 36 Il mio consiglio ? Infine scegliete quello che è più vicino al vostro approccio considerando anche aspetti di diffusione e di community. Se proprio non riuscite, allora createvi il vostro framework ! Leggete bene il licensing. sabato 23 marzo 13
  • 63. Copyright 2013 www.marcocasario.com 36 Esplorate Framework Si/No ? sabato 23 marzo 13
  • 64. Copyright 2013 www.marcocasario.com 36 RESS: Responsive Server Tecnica che usa il server per generare il codice a seconda del dispositivo intercettato. sabato 23 marzo 13
  • 65. Copyright 2013 www.marcocasario.com 36 RESS: Responsive Server http://wurfl.sourceforge.net/ sabato 23 marzo 13
  • 66. Copyright 2013 www.marcocasario.com 36 RESS: Responsive Server https://github.com/jamesgpearce/modernizr-server sabato 23 marzo 13
  • 67. Performance e load time sabato 23 marzo 13
  • 68. Copyright 2013 www.marcocasario.com 36 Performance Da studi di ricerca del settore si evince che gli utent si aspettano di vedere la pagina caricata entro 2 secondi. Dopo il 3 secondo il 40% degli utenti abbandona il sito. sabato 23 marzo 13
  • 69. Copyright 2013 www.marcocasario.com 36 Performance Amazon ha dichiarato che ogni 100ms di tempo aggiunto al caricamento di una pagina fa decrementare le vendite del 1% sabato 23 marzo 13
  • 70. Copyright 2013 www.marcocasario.com 36 Performance Il RWD se approcciato male può drammaticamente impattare sulle performance e sui tempi di caricamento delle pagine. sabato 23 marzo 13
  • 71. Copyright 2013 www.marcocasario.com 36 Performance http://goo.gl/bdpzJ sabato 23 marzo 13
  • 72. Copyright 2013 www.marcocasario.com 36 Performance Pulisci il codice HTML riducendo gli elementi non semantici. sabato 23 marzo 13
  • 73. Copyright 2013 www.marcocasario.com 36 Performance Rimuovi dai CSS gli statement orfani. Usa tool appositi www.sitepoint.com/dustmeselectors/ sabato 23 marzo 13
  • 74. Copyright 2013 www.marcocasario.com 36 Performance Misura le performance dei CSS3 http://andy.edinborough.org/CSS-Stress-Testing-and- Performance-Profiling sabato 23 marzo 13
  • 75. Copyright 2013 www.marcocasario.com 36 Performance CSS minification http://www.csscompressor.com/ PS: Usa il <link> invece del @import per permettere il download parallello sabato 23 marzo 13
  • 76. Copyright 2013 www.marcocasario.com 36 Performance Ottimizzare l’uso delle immagini. Usare gli Sprites http://alistapart.com/article/sprites http://spriteme.org/ sabato 23 marzo 13
  • 77. Copyright 2013 www.marcocasario.com 36 Performance Usare la tecnica del Data URIs .embeddedImg { background-image: url("data:image/ png;base64,iVBORw0KGgoAAAANS ... UhEUgAAABgAAAAYCAMAAADXqc3KAAADU5ErkJggg=="); } http://software.hixie.ch/utilities/cgi/data/data http://www.motobit.com/util/base64-decoder-encoder.asp sabato 23 marzo 13
  • 78. Copyright 2013 www.marcocasario.com 36 Performance Usare Icon Fonts http://icomoon.io/ sabato 23 marzo 13
  • 79. Copyright 2013 www.marcocasario.com 36 Performance Comprimi le immagini. http://imageoptim.pornel.net/ http://developer.yahoo.com/yslow/smushit/ http://pmt.sourceforge.net/pngcrush/ sabato 23 marzo 13
  • 80. Copyright 2013 www.marcocasario.com 36 Performance Ottimizza la sintassi JavaScript Evita l’uso dell’eval() Fai attenzione all’uso di with Evita il try..catch (se sai che un errore si verificherà sicuramente) sabato 23 marzo 13
  • 81. Copyright 2013 www.marcocasario.com 36 Performance Pubblica i file Javascript e CSS su un subdomain diverso dal markup. Questo permette il caricamento parallelo delle risorse. sabato 23 marzo 13
  • 82. Copyright 2013 www.marcocasario.com 36 Performance Minify JavaScript jscompress.com www.minifyjavascript.com www.jsmini.com http://marijnhaverbeke.nl/uglifyjs sabato 23 marzo 13
  • 83. Copyright 2013 www.marcocasario.com 36 Performance sabato 23 marzo 13
  • 84. Connessione – Detect client side Copyright 2013 www.marcocasario.com 53 W3C Network Information API Usa la proprietà navigator.connection.type che ritorna WIFI, CELL_2G, CELL_3G if (navigator.connection.type==navigator.connection.WIFI) { } sabato 23 marzo 13
  • 85. HTTP Testing – Bandwidth throttling Copyright 2013 www.marcocasario.com 55 http://www.charlesproxy.com/ sabato 23 marzo 13
  • 86. HTTP Testing – Bandwidth throttling Copyright 2013 www.marcocasario.com 55 sabato 23 marzo 13
  • 87. Redirect – Do not ! Copyright 2013 www.marcocasario.com 56 Evitare i redirect Il sito sarà più SEO-friendly Alcuni browser mobile possono presentare dei problemi sabato 23 marzo 13
  • 88. Gestures – Touch not Click Copyright 2013 www.marcocasario.com 57 I device touch hanno un ritardo nel click tra i 300 e i 500 ms prima di essere eseguiti ! Utilizza l’evento onTouchEvent (datatype ACTION_UP)  Attenzione all’evento onTouchStart perchè a volte il tap risulta troppo responsive ma causa lo scrolling ad essere inusabile. sabato 23 marzo 13
  • 89. Gli ultimi consigli Copyright 2013 www.marcocasario.com 58 Parsare Javascript richiede tempo (anche 100ms per 1Kb) sabato 23 marzo 13
  • 90. Gli ultimi consigli Copyright 2013 www.marcocasario.com 59 Ti serve veramente un framework ? Jquery impiega 6 secondi ad essere parsato su alcuni dispositivi. sabato 23 marzo 13
  • 91. Gli ultimi consigli Copyright 2013 www.marcocasario.com 60 Jquery Mobile non è un piccolo framework, è un UI framework ed usa il core di Jquery. sabato 23 marzo 13
  • 92. Gli ultimi consigli Copyright 2013 www.marcocasario.com 61 Usa micro frameworks o creati le tue mini libraries ★ XUI ★ zepto.js ★ microjs sabato 23 marzo 13
  • 93. Gli ultimi consigli Copyright 2013 www.marcocasario.com 62 Se usi JSON (dovresti) ricorda che il JSON.parse è quasi 2 volte più veloce della funzione eval() sabato 23 marzo 13
  • 94. Gli ultimi consigli Copyright 2013 www.marcocasario.com 63 Usare HTML5 Application Cache <html manifest="example.appcache“> sabato 23 marzo 13
  • 95. Gli ultimi consigli Copyright 2013 www.marcocasario.com 64 Usare HTML5 Local Storage Ricorda che lo storage di stringhe è 2 volte più veloce dello storage di oggetti Su mobile puoi considerare fino a 2 Mb. sabato 23 marzo 13
  • 96. Persistent Cache Size by Browser Copyright 2013 www.marcocasario.com 64 sabato 23 marzo 13
  • 97. Copyright 2013 www.marcocasario.com 36 Performance - Test http://developer.yahoo.com/yslow/ sabato 23 marzo 13
  • 98. Copyright 2013 www.marcocasario.com 36 Performance - Test sabato 23 marzo 13
  • 99. Copyright 2013 www.marcocasario.com 36 Performance - Moduli Backend www.gzip.org sabato 23 marzo 13
  • 100. Copyright 2013 www.marcocasario.com 36 Performance - Moduli Backend https://developers.google.com/speed/ sabato 23 marzo 13
  • 101. Copyright 2013 www.marcocasario.com 36 Performance - Moduli Backend YUI Compressor http://yui.github.com/yuicompressor/ Vedi www.slideshare.net/nzakas/extreme-javascript- compression-with-yui-compressor sabato 23 marzo 13
  • 102. Copyright 2013 www.marcocasario.com 36 Performance - Moduli Backend YUI Compressor Vedi www.slideshare.net/nzakas/extreme-javascript- compression-with-yui-compressor sabato 23 marzo 13
  • 103. Copyright 2013 www.marcocasario.com 36 Strategie da usare - Architettura client Questa potrebbe essere una lista dei moduli JS che il client deve gestire: ★Navigation ★Remote Data Access ★Authentication/Authorization ★Decouple View from Application Model (MVC pattern) ★Modularization/Packaging ★Dependency Management ★Logging/Tracing ★Exception Handling sabato 23 marzo 13
  • 104. Copyright 2013 www.marcocasario.com 36 Strategie da usare - Architettura client Questa potrebbe essere una lista dei moduli JS che il client deve gestire: ★Backbone.js – Javascript MVC/Navigation framework ★Require.js – AMD based module organization and library dependency management ★_Underscore.js – Provide functional programming features to Javascript ★Jquery Mobile – Document Object Model(DOM) access and manipulation ★Zepto.js - MVC framework compatibile Jquery ★XUI.js, Flight by Twitter sabato 23 marzo 13
  • 105. Copyright 2013 www.marcocasario.com 36 Strategie da usare - Architettura client sabato 23 marzo 13
  • 106. Emulatori Copyright 2013 www.marcocasario.com 51 Ne esistono tantissimi, molti dei quali gratuiti. Sono utili come prima fase di testing e non possono essere considerati affidabili al 100% http://www.mobilexweb.com/emulators sabato 23 marzo 13
  • 107. HTML5, CSS3 e JavaScript Web app per tutti gli schermi Marco Casario - www.marcocasario.com CTO Comtaste - m.casario@comtaste.com www.linkedin.com/in/marcocasario sabato 23 marzo 13