SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
#sitecoreneug	
  #rwd	
  
Responsive	
  Web	
  	
  
Design	
  &	
  Sitecore	
  
Sitecore	
  New	
  England	
  User	
  Group	
  
	
  
April	
  24,	
  2013	
  
#sitecoreneug	
  #rwd	
  
Agenda	
  
•  Context	
  	
  
•  Panel	
  Discussion	
  
– Device	
  sensing	
  &	
  layout	
  switching	
  	
  
– UX	
  Methodology	
  &	
  RWD	
  
– Mobile	
  opKmizaKon	
  &	
  polyfills	
  
– Bringing	
  it	
  in	
  to	
  Sitecore	
  
•  Q	
  &	
  A	
  
#sitecoreneug	
  #rwd	
  
Panel	
  	
  
Wendy	
  DersKne	
  
Sitecore	
  SoluKons	
  Architect	
  
Deanna	
  Glaze	
  
Sr.	
  User	
  Experience	
  Designer	
  
Petra	
  Gregorová	
  
Sr.	
  Front	
  End	
  Developer	
  
Ozell	
  McBride	
  
Sr.	
  Sitecore	
  Developer	
  
John	
  Eckman	
  
Managing	
  Director	
  
#sitecoreneug	
  #rwd	
  
hWp://alistapart.com/arKcle/dao	
  
“Now	
  is	
  the	
  Kme	
  for	
  the	
  medium	
  of	
  the	
  web	
  to	
  
outgrow	
  its	
  origins	
  in	
  the	
  printed	
  page.	
  .	
  .	
  .	
  It	
  is	
  the	
  
nature	
  of	
  the	
  web	
  to	
  be	
  flexible,	
  and	
  it	
  should	
  be	
  
our	
  role	
  as	
  designers	
  and	
  developers	
  to	
  embrace	
  
this	
  flexibility	
  .	
  .	
  .	
  The	
  journey	
  begins	
  by	
  le`ng	
  go	
  
of	
  control,	
  and	
  becoming	
  flexible.”	
  
#sitecoreneug	
  #rwd	
  
hWp://www.alistapart.com/arKcles/responsive-­‐web-­‐design/	
  
#sitecore-­‐neug	
  #rwd	
  
#sitecoreneug	
  #rwd	
  
#sitecoreneug	
  #rwd	
  
#sitecoreneug	
  #rwd	
  
Terminology	
  
Adap%ve	
  
•  Predefined	
  set	
  of	
  
layout	
  sizes	
  
•  Progressive	
  
Enhancement	
  via	
  
JavaScript	
  and	
  CSS	
  to	
  
adapt	
  to	
  capabiliKes	
  
of	
  calling	
  device	
  
Responsive	
  
•  Fluid,	
  proporKon-­‐
based	
  grids	
  
•  Flexible	
  images/
media	
  
•  Media	
  Queries	
  
	
  
#sitecoreneug	
  #rwd	
  
Sitecore	
  Device	
  Layouts	
  
•  Define	
  different	
  layouts	
  for	
  device	
  types,	
  rely	
  
on	
  server-­‐side	
  user-­‐agent	
  detecKon	
  and	
  
layout	
  switching	
  
•  Different	
  markup	
  (CSS,	
  JavaScript,	
  HTML)	
  will	
  
be	
  served	
  to	
  different	
  devices	
  
•  Is	
  this	
  “AdapKve”	
  design?	
  	
  
#sitecoreneug	
  #rwd	
  
#sitecoreneug	
  #rwd	
  
Mobile	
  Approaches	
  
NaKve	
  
	
  App	
  
Mobile	
  Web	
  	
  
w/	
  Wrapper	
  
Separate	
  
	
  mobile	
  
	
  site	
  
Server-­‐side	
  
device	
  	
  
sensing	
   AdapKve	
  
Responsive	
  
#sitecoreneug	
  #rwd	
  
Sometimes Responsive Design is not an Option…
•  Time & Budget Constraints
•  Legacy Installations
•  Different functional requirements for
different devices
#sitecoreneug	
  #rwd	
  
Sitecore Devices & Layouts
•  Create Devices
•  Assign Different
Layouts to Devices
•  Item Level
•  Standard Values
on the Template
#sitecoreneug	
  #rwd	
  
Device Detection
•  Custom device detection
•  Brian Pedersen's Sitecore and .NET Blog
Identifying mobile devices in Sitecore
http://briancaos.wordpress.com/2012/04/12/identifying-mobile-
devices-in-sitecore/
•  John West
Using the Sitecore Rules Engine in a Custom Context: Setting
the Context Device
hWp://www.sitecore.net/Community/Technical-­‐Blogs/John-­‐West-­‐
Sitecore-­‐Blog/Posts/2010/11/Using-­‐the-­‐Sitecore-­‐Rules-­‐Engine-­‐in-­‐a-­‐
Custom-­‐Context-­‐Se`ng-­‐the-­‐Context-­‐Device.aspx
•  Sitecore Mobile Device Detector Module
•  Alex Doroshenko
hWp://marketplace.sitecore.net/Modules/Mobile_Device_Detector.aspx
•  51Degrees.mobi database
•  Sitecore’s Rules engine
#sitecoreneug	
  #rwd	
  
City of Cambridge
Mobile Project
#sitecoreneug	
  #rwd	
  
Not	
  “Either-­‐Or”	
  but	
  “Both-­‐And”	
  
•  Mixture	
  of	
  server-­‐side	
  device	
  detecKon	
  AND	
  
responsive	
  approaches	
  (fluid	
  grids,	
  flexible	
  
media,	
  even	
  media	
  queries)	
  
•  RESS	
  –	
  responsive	
  design	
  +	
  server-­‐side	
  
components	
  
•  Mobile-­‐friendly	
  site	
  +	
  naKve	
  app	
  for	
  specific	
  
transacKons	
  
#sitecoreneug	
  #rwd	
  
RWD	
  UX	
  Methodology	
  
1.  The	
  What	
  and	
  Why	
  
2.  Content	
  First	
  
3.  Think	
  through	
  InteracKon	
  
#sitecoreneug	
  #rwd	
  
RWD	
  UX	
  Methodology	
  
1.  The	
  What	
  and	
  Why	
  
–  Define	
  business	
  and	
  user	
  goals	
  
–  Make	
  those	
  goals	
  the	
  North	
  Star	
  for	
  everyone	
  on	
  
the	
  team	
  (including	
  the	
  client).	
  	
  
–  Map	
  these	
  goals	
  to	
  an	
  experience	
  rather	
  than	
  a	
  
device	
  
2.  Content	
  First	
  
3.  Think	
  through	
  InteracKon	
  
#sitecoreneug	
  #rwd	
  
RWD	
  UX	
  Methodology	
  
1.  The	
  What	
  and	
  Why	
  
2.  Content	
  First	
  
–  Banish	
  lorem	
  ipsum	
  
–  Define	
  content	
  strategy	
  sooner	
  rather	
  than	
  later	
  
–  Content	
  hierarchy	
  mockups	
  over	
  flat	
  wireframes	
  
3.  Think	
  through	
  InteracKon	
  
#sitecoreneug	
  #rwd	
  
RWD	
  UX	
  Methodology	
  
1.  The	
  What	
  and	
  Why	
  
2.  Content	
  First	
  
3.  Think	
  through	
  InteracKon	
  
–  Consider	
  all	
  use	
  cases,	
  even	
  edge	
  cases	
  
•  Interface	
  vs.	
  page,	
  fluid	
  vs.	
  staKc	
  
•  Map	
  out	
  task	
  flows	
  
–  Sketch	
  first:	
  Paper	
  (or	
  whiteboard)	
  is	
  your	
  friend	
  
–  Show	
  chrome:	
  context	
  in	
  RWD	
  is	
  important	
  
–  Live	
  Prototype:	
  iterate	
  early	
  and	
  omen	
  
	
  
#sitecoreneug	
  #rwd	
  
RWD	
  UX	
  Methodology:	
  Tools	
  
Style	
  Tiles:	
  hWp://styleKl.es/	
  
UI	
  Sketcher:	
  hWp://uisketcher.com/	
  
FoundaKon:	
  hWp://foundaKon.zurb.com/	
  
#sitecoreneug	
  #rwd	
  
Mobile	
  First	
  =	
  OpKmizaKon	
  First	
  
•  Avg.	
  weight	
  of	
  web	
  pages	
  is	
  1.3MB	
  (IMG	
  +	
  JS	
  =	
  77%)	
  
•  72%	
  RWD	
  sites	
  weight	
  the	
  same	
  as	
  desktop	
  
•  71%	
  users	
  expect	
  your	
  mobile	
  site	
  to	
  load	
  as	
  quickly	
  
as	
  your	
  desktop	
  site	
  
	
  
#sitecoreneug	
  #rwd	
  
Primary	
  Performance	
  Issues	
  
OVER	
  DOWNLOADING	
   POOR	
  NETWORKS	
  
	
  
Download	
  &	
  hide	
  
Download	
  &	
  shrink	
  
Download	
  &	
  ignore	
  
	
  
	
  
High	
  Latency	
  Variable	
  
Bandwidth	
  
Packet	
  loss	
  
	
  
#sitecoreneug	
  #rwd	
  
OpKmizaKon	
  
Reduce	
  requests	
  
–  Browser	
  cache	
  
–  Concatenate	
  JS	
  &	
  CSS	
  
–  Lazy	
  load	
  content	
  (Ajax	
  
include	
  PaWern,	
  Lazy	
  
Block)	
  
–  data:URI	
  
–  CondiKonal	
  loading	
  –	
  
Modernizr.load	
  
Reduce	
  asset	
  size	
  
–  HTML,	
  CSS,	
  &	
  Image	
  
compression	
  
–  Replace	
  Images	
  with	
  
CSS/Canvas	
  or	
  use	
  SVG	
  
–  MinificaKon	
  
–  Avoid	
  bulky	
  frameworks	
  
	
  
#sitecoreneug	
  #rwd	
  
OpKmizaKon	
  
Speed-­‐up	
  page	
  render	
  
– Avoid	
  DOM	
  reflows	
  &	
  repaints	
  
– Defer	
  js	
  loading	
  
– Lazy	
  load	
  JS	
  –	
  comment	
  out	
  JS	
  that	
  isn’t	
  required	
  
at	
  load,	
  uncomment	
  &	
  eval()	
  when	
  needed	
  
– Touch	
  beats	
  onclick	
  
– Avoid	
  social	
  media	
  widgets:	
  just	
  link	
  
#sitecoreneug	
  #rwd	
  
Polyfills	
  	
  
•  Modernizr	
  (HTML5	
  Shim)	
  
•  Respond.js	
  
•  AppendAround.js	
  
•  Picturefill.js	
  
•  Ajax	
  Include	
  PaWern	
  or	
  Lazy	
  Block	
  
#sitecoreneug	
  #rwd	
  
Bringing	
  it	
  into	
  Sitecore	
  
•  IA,	
  UX,	
  CreaKve,	
  Front	
  End	
  Development	
  
decisions	
  have	
  already	
  been	
  made	
  
•  Get	
  inserted	
  into	
  the	
  RWD	
  conversaKon	
  as	
  
soon	
  as	
  possible	
  
•  Understand	
  the	
  effect	
  of	
  priority	
  placement	
  of	
  
renderings.	
  
#sitecoreneug	
  #rwd	
  
Bringing	
  it	
  into	
  Sitecore	
  
#sitecoreneug	
  #rwd	
  
Bringing	
  it	
  into	
  Sitecore	
  
#sitecoreneug	
  #rwd	
  
Bringing	
  it	
  into	
  Sitecore	
  
Control	
  is	
  wrapped	
  with	
  an	
  aWribute	
  which	
  
allows	
  JavaScript	
  to	
  manipulate	
  the	
  DOM	
  as	
  
needed	
  
#sitecoreneug	
  #rwd	
  
Bringing	
  it	
  into	
  Sitecore	
  
The	
  resulKng	
  html	
  output	
  on	
  a	
  desktop:	
  
#sitecoreneug	
  #rwd	
  
Bringing	
  it	
  into	
  Sitecore	
  
The	
  resulKng	
  HTML	
  output	
  on	
  a	
  mobile	
  device	
  
#sitecoreneug	
  #rwd	
  
Bringing	
  it	
  into	
  Sitecore	
  
•  If	
  possible	
  keep	
  transiKonal	
  blocks	
  in	
  the	
  
layout	
  
•  Render	
  images	
  and	
  videos	
  without	
  height	
  and	
  
width	
  aWributes.	
  	
  
•  Implement	
  Responsive	
  image	
  control	
  
– Use	
  a	
  library	
  like	
  Picturefill*	
  and	
  store	
  images	
  in	
  
sitecore	
  
*hWps://github.com/scoWjehl/picturefill	
  
#sitecoreneug	
  #rwd	
  
Q	
  &	
  A	
  
Wendy	
  DersKne	
  
Sitecore	
  SoluKons	
  Architect	
  
Deanna	
  Glaze	
  
Sr.	
  User	
  Experience	
  Designer	
  
Petra	
  Gregorová	
  
Sr.	
  Front	
  End	
  Developer	
  
Ozell	
  McBride	
  
Sr.	
  Sitecore	
  Developer	
  
John	
  Eckman	
  
Managing	
  Director	
  
#sitecoreneug	
  #rwd	
  
Lessons	
  Learned	
  
•  RWD	
  affects	
  strategy,	
  ux	
  design,	
  visual	
  design,	
  
front-­‐end	
  development,	
  and	
  Sitecore	
  
development	
  
•  RWD	
  doesn’t	
  eliminate	
  the	
  need	
  to	
  opKmize	
  
for	
  mobile	
  performance	
  
•  Responsive	
  Images	
  &	
  Media	
  –	
  how	
  to	
  avoid	
  
“send	
  &	
  shrink”	
  approach	
  
#sitecoreneug	
  #rwd	
  
Lessons	
  Learned	
  
•  Content	
  editors	
  can	
  sKll	
  cause	
  problems	
  
•  QA	
  will	
  take	
  longer	
  than	
  you	
  think	
  
•  You	
  will	
  find	
  edge	
  cases	
  that	
  are	
  subopKmal	
  
•  Beware	
  third-­‐parKes	
  (ad	
  networks,	
  embedded	
  
media,	
  iframes,	
  forms)	
  
•  Retrofi`ng	
  is	
  impossible	
  really	
  hard	
  
•  There	
  is	
  no	
  single	
  mobile	
  context	
  
•  There	
  are	
  no	
  silver	
  bullets	
  
#sitecoreneug	
  #rwd	
  
Resources	
  
•  Sitecore	
  AdapKve	
  Images:	
  
hWp://marketplace.sitecore.net/en/Modules/Sitecore_AdapKve_Images.aspx	
  
•  Responsive	
  Web	
  Design	
  Done	
  BeWer	
  with	
  Sitecore	
  Device	
  DetecKon:	
  
hWp://larre.fixstar.net/2013/02/responsive-­‐web-­‐design-­‐in-­‐sitecore/	
  
•  Does	
  AdapKve	
  Beat	
  Responsive:	
  
hWp://www.sitecore.net/Community/Best-­‐PracKce-­‐Blogs/Phil-­‐Broadbery/Posts/
2013/03/Does-­‐adapKve-­‐design-­‐beat-­‐responsive-­‐design.aspx	
  
•  The	
  PresentaKon	
  Strategy	
  of	
  Launch	
  Sitecore	
  (RWD	
  principles	
  along	
  with	
  Sitecore	
  
Device	
  Layouts):	
  
hWp://www.sitecore.net/Community/Technical-­‐Blogs/Maximizing-­‐Usability/Posts/
2012/11/The-­‐PresentaKon-­‐Strategy-­‐of-­‐Launch-­‐Sitecore.aspx	
  
•  Sitecore	
  ASP.NET	
  CMS	
  6.6	
  Features:	
  Device	
  Simulators	
  
hWp://www.sitecore.net/Community/Technical-­‐Blogs/John-­‐West-­‐Sitecore-­‐Blog/
Posts/2012/11/Sitecore-­‐ASPNET-­‐CMS-­‐6-­‐6-­‐Features-­‐Device-­‐SimulaKon.aspx	
  	
  
•  hWps://github.com/scoWjehl/picturefill	
  
#sitecoreneug	
  #rwd	
  
Appendix	
  
#sitecoreneug	
  #rwd	
  
Delight.us
#sitecoreneug	
  #rwd	
  
Planar
#sitecoreneug	
  #rwd	
  
Media	
  Queries	
  
/* basic css for all sizes first */ !
!
/* 480px / 16px = 30em ________________ */!
@media only screen and (min-width: 30em) {!
	
  	
  	
  	
  	
  /* stuff here only applies above 480px wide */!
}!
!
/* 600px / 16px = 37.5em _______________ */!
@media only screen and (min-width: 37.5em) {!
/* stuff here only applies above 600px */!
}!
!
/* etc */ !
!
#sitecoreneug	
  #rwd	
  
#sitecoreneug	
  #rwd	
  

Contenu connexe

Tendances

jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPages
Mark Roden
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devicesSlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
reebalazs
 

Tendances (20)

Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanley
 
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
 
jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPages
 
jQuery Conference Chicago - September 2014
jQuery Conference Chicago - September 2014jQuery Conference Chicago - September 2014
jQuery Conference Chicago - September 2014
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devicesSlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
 
Reusable Whiteboard Wicket Component for Apache Openmeetings
Reusable Whiteboard Wicket Component for Apache OpenmeetingsReusable Whiteboard Wicket Component for Apache Openmeetings
Reusable Whiteboard Wicket Component for Apache Openmeetings
 
Android ActionBar Navigation reloaded
Android ActionBar Navigation reloadedAndroid ActionBar Navigation reloaded
Android ActionBar Navigation reloaded
 
Real World Lessons in jQuery Mobile
Real World Lessons in jQuery MobileReal World Lessons in jQuery Mobile
Real World Lessons in jQuery Mobile
 
Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friends
 
A year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMUA year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMU
 
Building Mobile Applications with Ionic
Building Mobile Applications with IonicBuilding Mobile Applications with Ionic
Building Mobile Applications with Ionic
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript Widgets
 
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
 
Server rendering-talk
Server rendering-talkServer rendering-talk
Server rendering-talk
 
Wulin kungfu final
Wulin kungfu finalWulin kungfu final
Wulin kungfu final
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages
 
A High-Performance Solution to Microservice UI Composition @ XConf Hamburg
A High-Performance Solution to Microservice UI Composition @ XConf HamburgA High-Performance Solution to Microservice UI Composition @ XConf Hamburg
A High-Performance Solution to Microservice UI Composition @ XConf Hamburg
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 

Similaire à Responsive Web Design and Sitecore

Responsive Web Design & the state of the Web
Responsive Web Design & the state of the WebResponsive Web Design & the state of the Web
Responsive Web Design & the state of the Web
Yiannis Konstantakopoulos
 
Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Responsivedesign 7-3-2012
Responsivedesign 7-3-2012
Thomas Carney
 
EXPERTALKS: Sep 2013 - Responsive Web Design
EXPERTALKS: Sep 2013 - Responsive Web DesignEXPERTALKS: Sep 2013 - Responsive Web Design
EXPERTALKS: Sep 2013 - Responsive Web Design
EXPERTALKS
 

Similaire à Responsive Web Design and Sitecore (20)

Sitecore and Responsive Web Design
Sitecore and Responsive Web Design Sitecore and Responsive Web Design
Sitecore and Responsive Web Design
 
Webinar Recording "Best Practices in RWD - Responsive Web Design"
Webinar Recording "Best Practices in RWD - Responsive Web Design"Webinar Recording "Best Practices in RWD - Responsive Web Design"
Webinar Recording "Best Practices in RWD - Responsive Web Design"
 
MEAN Stack Warm-up
MEAN Stack Warm-upMEAN Stack Warm-up
MEAN Stack Warm-up
 
20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performance
 
Mobile web performance dwx13
Mobile web performance dwx13Mobile web performance dwx13
Mobile web performance dwx13
 
Sug bangalore - headless jss
Sug bangalore - headless jssSug bangalore - headless jss
Sug bangalore - headless jss
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
 
Monkeytalk Fall 2012 - Responsive Web Design
Monkeytalk Fall 2012 - Responsive Web DesignMonkeytalk Fall 2012 - Responsive Web Design
Monkeytalk Fall 2012 - Responsive Web Design
 
Responsive Web Design & the state of the Web
Responsive Web Design & the state of the WebResponsive Web Design & the state of the Web
Responsive Web Design & the state of the Web
 
Boosting Sitecore Development With Sitecore Docker
Boosting Sitecore Development With Sitecore DockerBoosting Sitecore Development With Sitecore Docker
Boosting Sitecore Development With Sitecore Docker
 
Web Design Trends: 2018 Edition
Web Design Trends: 2018 EditionWeb Design Trends: 2018 Edition
Web Design Trends: 2018 Edition
 
Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Responsivedesign 7-3-2012
Responsivedesign 7-3-2012
 
There Is No Mobile: An Introduction To Responsive Web Design
There Is No Mobile: An Introduction To Responsive Web DesignThere Is No Mobile: An Introduction To Responsive Web Design
There Is No Mobile: An Introduction To Responsive Web Design
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Websockets: Pushing the web forward
Websockets: Pushing the web forwardWebsockets: Pushing the web forward
Websockets: Pushing the web forward
 
Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)
 
A night at the spa
A night at the spaA night at the spa
A night at the spa
 
Docker for developers - The big picture
Docker for developers - The big pictureDocker for developers - The big picture
Docker for developers - The big picture
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
EXPERTALKS: Sep 2013 - Responsive Web Design
EXPERTALKS: Sep 2013 - Responsive Web DesignEXPERTALKS: Sep 2013 - Responsive Web Design
EXPERTALKS: Sep 2013 - Responsive Web Design
 

Plus de John Eckman

Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
John Eckman
 

Plus de John Eckman (20)

Don't fear the block: Gutenberg is gettin' good
Don't fear the block: Gutenberg is gettin' goodDon't fear the block: Gutenberg is gettin' good
Don't fear the block: Gutenberg is gettin' good
 
#NoStalking: Advertising & User Privacy
#NoStalking: Advertising & User Privacy#NoStalking: Advertising & User Privacy
#NoStalking: Advertising & User Privacy
 
There's a Reason We Call Them Institutions: Working in Higher Education Witho...
There's a Reason We Call Them Institutions: Working in Higher Education Witho...There's a Reason We Call Them Institutions: Working in Higher Education Witho...
There's a Reason We Call Them Institutions: Working in Higher Education Witho...
 
Working the Open: Open Source in an Agency
Working the Open: Open Source in an AgencyWorking the Open: Open Source in an Agency
Working the Open: Open Source in an Agency
 
GDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By Design
GDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By DesignGDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By Design
GDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By Design
 
The Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg
The Blob, the Chunk, & the Block: Structured Content in the Age of GutenbergThe Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg
The Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg
 
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
 
Gutenberg for Agencies
Gutenberg for AgenciesGutenberg for Agencies
Gutenberg for Agencies
 
Engaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-ProfitsEngaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-Profits
 
Dear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content TargetingDear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content Targeting
 
But Why? Use Cases for the REST API
But Why? Use Cases for the REST APIBut Why? Use Cases for the REST API
But Why? Use Cases for the REST API
 
WPDrama & The Four Agreements
WPDrama & The Four AgreementsWPDrama & The Four Agreements
WPDrama & The Four Agreements
 
Distributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote CompaniesDistributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote Companies
 
Disrupting Distribution
Disrupting DistributionDisrupting Distribution
Disrupting Distribution
 
Managing Clients without Going Crazy
Managing Clients without Going CrazyManaging Clients without Going Crazy
Managing Clients without Going Crazy
 
Stop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining SuccessStop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining Success
 
Client Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to AlliesClient Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to Allies
 
WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015
 
WordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectWordPress and the Enterprise Disconnect
WordPress and the Enterprise Disconnect
 
The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

Responsive Web Design and Sitecore

  • 1. #sitecoreneug  #rwd   Responsive  Web     Design  &  Sitecore   Sitecore  New  England  User  Group     April  24,  2013  
  • 2. #sitecoreneug  #rwd   Agenda   •  Context     •  Panel  Discussion   – Device  sensing  &  layout  switching     – UX  Methodology  &  RWD   – Mobile  opKmizaKon  &  polyfills   – Bringing  it  in  to  Sitecore   •  Q  &  A  
  • 3. #sitecoreneug  #rwd   Panel     Wendy  DersKne   Sitecore  SoluKons  Architect   Deanna  Glaze   Sr.  User  Experience  Designer   Petra  Gregorová   Sr.  Front  End  Developer   Ozell  McBride   Sr.  Sitecore  Developer   John  Eckman   Managing  Director  
  • 4. #sitecoreneug  #rwd   hWp://alistapart.com/arKcle/dao   “Now  is  the  Kme  for  the  medium  of  the  web  to   outgrow  its  origins  in  the  printed  page.  .  .  .  It  is  the   nature  of  the  web  to  be  flexible,  and  it  should  be   our  role  as  designers  and  developers  to  embrace   this  flexibility  .  .  .  The  journey  begins  by  le`ng  go   of  control,  and  becoming  flexible.”  
  • 8. #sitecoreneug  #rwd   Terminology   Adap%ve   •  Predefined  set  of   layout  sizes   •  Progressive   Enhancement  via   JavaScript  and  CSS  to   adapt  to  capabiliKes   of  calling  device   Responsive   •  Fluid,  proporKon-­‐ based  grids   •  Flexible  images/ media   •  Media  Queries    
  • 9. #sitecoreneug  #rwd   Sitecore  Device  Layouts   •  Define  different  layouts  for  device  types,  rely   on  server-­‐side  user-­‐agent  detecKon  and   layout  switching   •  Different  markup  (CSS,  JavaScript,  HTML)  will   be  served  to  different  devices   •  Is  this  “AdapKve”  design?     #sitecoreneug  #rwd  
  • 10. #sitecoreneug  #rwd   Mobile  Approaches   NaKve    App   Mobile  Web     w/  Wrapper   Separate    mobile    site   Server-­‐side   device     sensing   AdapKve   Responsive  
  • 11. #sitecoreneug  #rwd   Sometimes Responsive Design is not an Option… •  Time & Budget Constraints •  Legacy Installations •  Different functional requirements for different devices
  • 12. #sitecoreneug  #rwd   Sitecore Devices & Layouts •  Create Devices •  Assign Different Layouts to Devices •  Item Level •  Standard Values on the Template
  • 13. #sitecoreneug  #rwd   Device Detection •  Custom device detection •  Brian Pedersen's Sitecore and .NET Blog Identifying mobile devices in Sitecore http://briancaos.wordpress.com/2012/04/12/identifying-mobile- devices-in-sitecore/ •  John West Using the Sitecore Rules Engine in a Custom Context: Setting the Context Device hWp://www.sitecore.net/Community/Technical-­‐Blogs/John-­‐West-­‐ Sitecore-­‐Blog/Posts/2010/11/Using-­‐the-­‐Sitecore-­‐Rules-­‐Engine-­‐in-­‐a-­‐ Custom-­‐Context-­‐Se`ng-­‐the-­‐Context-­‐Device.aspx •  Sitecore Mobile Device Detector Module •  Alex Doroshenko hWp://marketplace.sitecore.net/Modules/Mobile_Device_Detector.aspx •  51Degrees.mobi database •  Sitecore’s Rules engine
  • 14. #sitecoreneug  #rwd   City of Cambridge Mobile Project
  • 15. #sitecoreneug  #rwd   Not  “Either-­‐Or”  but  “Both-­‐And”   •  Mixture  of  server-­‐side  device  detecKon  AND   responsive  approaches  (fluid  grids,  flexible   media,  even  media  queries)   •  RESS  –  responsive  design  +  server-­‐side   components   •  Mobile-­‐friendly  site  +  naKve  app  for  specific   transacKons  
  • 16. #sitecoreneug  #rwd   RWD  UX  Methodology   1.  The  What  and  Why   2.  Content  First   3.  Think  through  InteracKon  
  • 17. #sitecoreneug  #rwd   RWD  UX  Methodology   1.  The  What  and  Why   –  Define  business  and  user  goals   –  Make  those  goals  the  North  Star  for  everyone  on   the  team  (including  the  client).     –  Map  these  goals  to  an  experience  rather  than  a   device   2.  Content  First   3.  Think  through  InteracKon  
  • 18. #sitecoreneug  #rwd   RWD  UX  Methodology   1.  The  What  and  Why   2.  Content  First   –  Banish  lorem  ipsum   –  Define  content  strategy  sooner  rather  than  later   –  Content  hierarchy  mockups  over  flat  wireframes   3.  Think  through  InteracKon  
  • 19. #sitecoreneug  #rwd   RWD  UX  Methodology   1.  The  What  and  Why   2.  Content  First   3.  Think  through  InteracKon   –  Consider  all  use  cases,  even  edge  cases   •  Interface  vs.  page,  fluid  vs.  staKc   •  Map  out  task  flows   –  Sketch  first:  Paper  (or  whiteboard)  is  your  friend   –  Show  chrome:  context  in  RWD  is  important   –  Live  Prototype:  iterate  early  and  omen    
  • 20. #sitecoreneug  #rwd   RWD  UX  Methodology:  Tools   Style  Tiles:  hWp://styleKl.es/   UI  Sketcher:  hWp://uisketcher.com/   FoundaKon:  hWp://foundaKon.zurb.com/  
  • 21. #sitecoreneug  #rwd   Mobile  First  =  OpKmizaKon  First   •  Avg.  weight  of  web  pages  is  1.3MB  (IMG  +  JS  =  77%)   •  72%  RWD  sites  weight  the  same  as  desktop   •  71%  users  expect  your  mobile  site  to  load  as  quickly   as  your  desktop  site    
  • 22. #sitecoreneug  #rwd   Primary  Performance  Issues   OVER  DOWNLOADING   POOR  NETWORKS     Download  &  hide   Download  &  shrink   Download  &  ignore       High  Latency  Variable   Bandwidth   Packet  loss    
  • 23. #sitecoreneug  #rwd   OpKmizaKon   Reduce  requests   –  Browser  cache   –  Concatenate  JS  &  CSS   –  Lazy  load  content  (Ajax   include  PaWern,  Lazy   Block)   –  data:URI   –  CondiKonal  loading  –   Modernizr.load   Reduce  asset  size   –  HTML,  CSS,  &  Image   compression   –  Replace  Images  with   CSS/Canvas  or  use  SVG   –  MinificaKon   –  Avoid  bulky  frameworks    
  • 24. #sitecoreneug  #rwd   OpKmizaKon   Speed-­‐up  page  render   – Avoid  DOM  reflows  &  repaints   – Defer  js  loading   – Lazy  load  JS  –  comment  out  JS  that  isn’t  required   at  load,  uncomment  &  eval()  when  needed   – Touch  beats  onclick   – Avoid  social  media  widgets:  just  link  
  • 25. #sitecoreneug  #rwd   Polyfills     •  Modernizr  (HTML5  Shim)   •  Respond.js   •  AppendAround.js   •  Picturefill.js   •  Ajax  Include  PaWern  or  Lazy  Block  
  • 26. #sitecoreneug  #rwd   Bringing  it  into  Sitecore   •  IA,  UX,  CreaKve,  Front  End  Development   decisions  have  already  been  made   •  Get  inserted  into  the  RWD  conversaKon  as   soon  as  possible   •  Understand  the  effect  of  priority  placement  of   renderings.  
  • 27. #sitecoreneug  #rwd   Bringing  it  into  Sitecore  
  • 28. #sitecoreneug  #rwd   Bringing  it  into  Sitecore  
  • 29. #sitecoreneug  #rwd   Bringing  it  into  Sitecore   Control  is  wrapped  with  an  aWribute  which   allows  JavaScript  to  manipulate  the  DOM  as   needed  
  • 30. #sitecoreneug  #rwd   Bringing  it  into  Sitecore   The  resulKng  html  output  on  a  desktop:  
  • 31. #sitecoreneug  #rwd   Bringing  it  into  Sitecore   The  resulKng  HTML  output  on  a  mobile  device  
  • 32. #sitecoreneug  #rwd   Bringing  it  into  Sitecore   •  If  possible  keep  transiKonal  blocks  in  the   layout   •  Render  images  and  videos  without  height  and   width  aWributes.     •  Implement  Responsive  image  control   – Use  a  library  like  Picturefill*  and  store  images  in   sitecore   *hWps://github.com/scoWjehl/picturefill  
  • 33. #sitecoreneug  #rwd   Q  &  A   Wendy  DersKne   Sitecore  SoluKons  Architect   Deanna  Glaze   Sr.  User  Experience  Designer   Petra  Gregorová   Sr.  Front  End  Developer   Ozell  McBride   Sr.  Sitecore  Developer   John  Eckman   Managing  Director  
  • 34. #sitecoreneug  #rwd   Lessons  Learned   •  RWD  affects  strategy,  ux  design,  visual  design,   front-­‐end  development,  and  Sitecore   development   •  RWD  doesn’t  eliminate  the  need  to  opKmize   for  mobile  performance   •  Responsive  Images  &  Media  –  how  to  avoid   “send  &  shrink”  approach  
  • 35. #sitecoreneug  #rwd   Lessons  Learned   •  Content  editors  can  sKll  cause  problems   •  QA  will  take  longer  than  you  think   •  You  will  find  edge  cases  that  are  subopKmal   •  Beware  third-­‐parKes  (ad  networks,  embedded   media,  iframes,  forms)   •  Retrofi`ng  is  impossible  really  hard   •  There  is  no  single  mobile  context   •  There  are  no  silver  bullets  
  • 36. #sitecoreneug  #rwd   Resources   •  Sitecore  AdapKve  Images:   hWp://marketplace.sitecore.net/en/Modules/Sitecore_AdapKve_Images.aspx   •  Responsive  Web  Design  Done  BeWer  with  Sitecore  Device  DetecKon:   hWp://larre.fixstar.net/2013/02/responsive-­‐web-­‐design-­‐in-­‐sitecore/   •  Does  AdapKve  Beat  Responsive:   hWp://www.sitecore.net/Community/Best-­‐PracKce-­‐Blogs/Phil-­‐Broadbery/Posts/ 2013/03/Does-­‐adapKve-­‐design-­‐beat-­‐responsive-­‐design.aspx   •  The  PresentaKon  Strategy  of  Launch  Sitecore  (RWD  principles  along  with  Sitecore   Device  Layouts):   hWp://www.sitecore.net/Community/Technical-­‐Blogs/Maximizing-­‐Usability/Posts/ 2012/11/The-­‐PresentaKon-­‐Strategy-­‐of-­‐Launch-­‐Sitecore.aspx   •  Sitecore  ASP.NET  CMS  6.6  Features:  Device  Simulators   hWp://www.sitecore.net/Community/Technical-­‐Blogs/John-­‐West-­‐Sitecore-­‐Blog/ Posts/2012/11/Sitecore-­‐ASPNET-­‐CMS-­‐6-­‐6-­‐Features-­‐Device-­‐SimulaKon.aspx     •  hWps://github.com/scoWjehl/picturefill  
  • 40. #sitecoreneug  #rwd   Media  Queries   /* basic css for all sizes first */ ! ! /* 480px / 16px = 30em ________________ */! @media only screen and (min-width: 30em) {!          /* stuff here only applies above 480px wide */! }! ! /* 600px / 16px = 37.5em _______________ */! @media only screen and (min-width: 37.5em) {! /* stuff here only applies above 600px */! }! ! /* etc */ ! !