14. RESPONSIVE
Copyright 2016 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
18. 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 2016 www.marcocasario.com 28
29. I Tool per i test di supporto
Copyright 2016 www.marcocasario.com 28
Come si usa
<html class=“no-js”>
Se JavaScript è abilitato Modernizr cambierà il no-js in
una lista delle funzionalità supportate o non supportate:
<html class=“js canvas canvastext no-geolocation rgba hsla
multiplebgs borderimage borderradius boxshadow opacity
cssanimations csscolumns cssgradients cssreflections
csstransforms csstransforms3d csstransitions video audio
localstorage sessionstorage webworkers applicationcache
fontface”>
43. Il contesto di u>lizzo
Copyright 2016 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 ?
65. Adap>ve Images - W3C
Copyright 2016 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
71. Media Queries
Copyright 2016 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.
72. Caricamento dei Media Queries
Copyright 2016 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)" />
73. Caricamento dei Media Queries
Copyright 2016 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 !
81. Framework Si/No ?
Copyright 2016 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.
82. Framework Si/No ?
Copyright 2016 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
83. Framework Si/No ?
Copyright 2016 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.
85. Copyright 2016 www.marcocasario.com 36
RESS: Responsive Server
Tecnica che usa il server per generare il
codice a seconda del disposi2vo
interce4ato.
89. Copyright 2016 www.marcocasario.com 36
Performance
Da studi di ricerca del se4ore si evince
che gli utent si aspe4ano di vedere la
pagina caricata entro 2 secondi.
Dopo il 3 secondo il 40% degli uten2
abbandona il sito.
90. Copyright 2016 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%
91. Copyright 2016 www.marcocasario.com 36
Performance
Il RWD se approcciato male può dramma2camente
impa4are sulle performance e sui tempi di
caricamento delle pagine.
94. Copyright 2016 www.marcocasario.com 36
Performance
Rimuovi dai CSS gli statement orfani.
Usa tool apposi2 www.sitepoint.com/dustmeselectors/
95. Copyright 2016 www.marcocasario.com 36
Performance
Misura le performance dei CSS3
h4p://andy.edinborough.org/CSS-Stress-Tes2ng-and-Performance-Profiling
96. Copyright 2016 www.marcocasario.com 36
Performance
CSS minifica2on
h4p://www.csscompressor.com/
PS: Usa il <link> invece del @import per permeBere il download parallello
97. Copyright 2016 www.marcocasario.com 36
Performance
OTmizzare l’uso delle immagini.
Usare gli Sprites
h4p://alistapart.com/ar2cle/sprites
h4p://spriteme.org/
98. Copyright 2016 www.marcocasario.com 36
Performance
Usare la tecnica del Data URIs
.embeddedImg {
background-image: url("data:image/
png;base64,iVBORw0KGgoAAAANS ...
UhEUgAAABgAAAAYCAMAAADXqc3KAAADU5ErkJggg==");
}
h4p://soVware.hixie.ch/u2li2es/cgi/data/data
h4p://www.motobit.com/u2l/base64-decoder-encoder.asp
101. Copyright 2016 www.marcocasario.com 36
Performance
OTmizza la sintassi JavaScript
Evita l’uso dell’eval()
Fai a4enzione all’uso di with
Evita il try..catch (se sai che un errore si verificherà sicuramente)
102. Copyright 2016 www.marcocasario.com 36
Performance
Pubblica i file Javascript e CSS su un subdomain
diverso dal markup.
Questo perme4e il caricamento parallelo delle
risorse.
109. Gestures – Touch not Click
Copyright 2016 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.
124. Copyright 2016 www.marcocasario.com 36
Strategie da usare - ArchiteBura client
Questa potrebbe essere una lista dei moduli JS che il client deve
ges>re:
★Naviga>on
★Remote Data Access
★Authen>ca>on/Authoriza>on
★Decouple View from Applica>on Model (MVC paBern)
★Modulariza>on/Packaging
★Dependency Management
★Logging/Tracing
★Excep>on Handling
125. Copyright 2016 www.marcocasario.com 36
Strategie da usare - ArchiteBura client
Questa potrebbe essere una lista dei moduli JS che il client deve
ges>re:
★Backbone.js – Javascript MVC/Naviga>on framework
★Require.js – AMD based module organiza>on and library
dependency management
★_Underscore.js – Provide func>onal programming features to
Javascript
★Jquery Mobile – Document Object Model(DOM) access and
manipula>on
★Zepto.js - MVC framework compa>bile Jquery
★XUI.js, Flight by TwiBer
127. Emulatori
Copyright 2016 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