sitecore and responsive web design

42
#sitecoreneug #rwd Responsive Web Design & Sitecore Sitecore New England User Group April 24, 2013

Upload: isite-design

Post on 27-Jan-2015

106 views

Category:

Business


2 download

DESCRIPTION

Sitecore New England User Group met to discuss responsive web design considerations with the CMS.

TRANSCRIPT

Page 1: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Responsive Web Design & Sitecore

Sitecore New England User Group

April 24, 2013

Page 2: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Agenda

• Context • Panel Discussion

– Device sensing & layout switching – UX Methodology & RWD– Mobile optimization & polyfills– Bringing it in to Sitecore

• Q & A

Page 3: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Panel Wendy DerstineSitecore Solutions Architect

Deanna GlazeSr. User Experience Designer

Petra GregorováSr. Front End Developer

Ozell McBrideSr. Sitecore Developer

John EckmanManaging Director

Page 4: Sitecore and Responsive Web Design

#sitecoreneug #rwd

http://alistapart.com/article/dao

“Now is the time 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 letting go of control, and becoming flexible.”

Page 5: Sitecore and Responsive Web Design

#sitecoreneug #rwd

http://www.alistapart.com/articles/responsive-web-design/

#sitecore-neug #rwd

Page 6: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Page 7: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Page 8: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Terminology

Adaptive• Predefined set of

layout sizes• Progressive

Enhancement via JavaScript and CSS to adapt to capabilities of calling device

Responsive• Fluid, proportion-

based grids• Flexible

images/media• Media Queries

Page 9: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Sitecore Device Layouts

• Define different layouts for device types, rely on server-side user-agent detection and layout switching

• Different markup (CSS, JavaScript, HTML) will be served to different devices

• Is this “Adaptive” design?

#sitecoreneug #rwd

Page 10: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Mobile Approaches

Native App

Mobile Web w/ Wrapper

Separate mobile

site

Server-sidedevice sensing Adaptive

Responsive

Page 11: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Sometimes Responsive Design is not an Option…

• Time & Budget Constraints

• Legacy Installations

• Different functional requirements for different devices

Page 12: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Sitecore Devices & Layouts

• Create Devices• Assign Different

Layouts to Devices• Item Level• Standard Values

on the Template

Page 13: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Device Detection

• Custom device detection • Brian Pedersen's Sitecore and .NET Blog

Identifying mobile devices in Sitecorehttp://briancaos.wordpress.com/2012/04/12/identifying-mobile-devices-in-sitecore/

• John WestUsing the Sitecore Rules Engine in a Custom Context: Setting the Context Devicehttp://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/11/Using-the-Sitecore-Rules-Engine-in-a-Custom-Context-Setting-the-Context-Device.aspx

• Sitecore Mobile Device Detector Module• Alex Doroshenko

http://marketplace.sitecore.net/Modules/Mobile_Device_Detector.aspx• 51Degrees.mobi database• Sitecore’s Rules engine

Page 14: Sitecore and Responsive Web Design

#sitecoreneug #rwd

City of CambridgeMobile Project

Page 15: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Not “Either-Or” but “Both-And”

• Mixture of server-side device detection AND responsive approaches (fluid grids, flexible media, even media queries)

• RESS – responsive design + server-side components

• Mobile-friendly site + native app for specific transactions

Page 16: Sitecore and Responsive Web Design

#sitecoreneug #rwd

RWD UX Methodology

1. The What and Why2. Content First3. Think through Interaction

Page 17: Sitecore and Responsive Web Design

#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 First3. Think through Interaction

Page 18: Sitecore and Responsive Web Design

#sitecoreneug #rwd

RWD UX Methodology

1. The What and Why2. Content First

– Banish lorem ipsum– Define content strategy sooner rather than later– Content hierarchy mockups over flat wireframes

3. Think through Interaction

Page 19: Sitecore and Responsive Web Design

#sitecoreneug #rwd

RWD UX Methodology

1. The What and Why2. Content First3. Think through Interaction

– Consider all use cases, even edge cases• Interface vs. page, fluid vs. static• Map out task flows

– Sketch first: Paper (or whiteboard) is your friend– Show chrome: context in RWD is important– Live Prototype: iterate early and often

Page 20: Sitecore and Responsive Web Design

#sitecoreneug #rwd

RWD UX Methodology: Tools

Style Tiles: http://styletil.es/UI Sketcher: http://uisketcher.com/Foundation: http://foundation.zurb.com/

Page 21: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Mobile First = Optimization 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

Page 22: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Primary Performance Issues

OVER DOWNLOADING POOR NETWORKS

Download & hideDownload & shrinkDownload & ignore

High Latency Variable BandwidthPacket loss

Page 23: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Optimization

Reduce requests– Browser cache– Concatenate JS & CSS– Lazy load content (Ajax

include Pattern, Lazy Block)

– data:URI– Conditional loading –

Modernizr.load

Reduce asset size– HTML, CSS, & Image

compression– Replace Images with

CSS/Canvas or use SVG– Minification– Avoid bulky frameworks

Page 24: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Optimization

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

Page 25: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Polyfills

• Modernizr (HTML5 Shim)• Respond.js• AppendAround.js• Picturefill.js• Ajax Include Pattern or Lazy Block

Page 26: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Bringing it into Sitecore

• IA, UX, Creative, Front End Development decisions have already been made

• Get inserted into the RWD conversation as soon as possible

• Understand the effect of priority placement of renderings.

Page 27: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Bringing it into Sitecore

Page 28: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Bringing it into Sitecore

Page 29: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Bringing it into Sitecore

Control is wrapped with an attribute which allows JavaScript to manipulate the DOM as needed

Page 30: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Bringing it into Sitecore

The resulting html output on a desktop:

Page 31: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Bringing it into SitecoreThe resulting HTML output on a mobile device

Page 32: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Bringing it into Sitecore

• If possible keep transitional blocks in the layout

• Render images and videos without height and width attributes.

• Implement Responsive image control– Use a library like Picturefill* and store images in

sitecore

*https://github.com/scottjehl/picturefill

Page 33: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Q & AWendy DerstineSitecore Solutions Architect

Deanna GlazeSr. User Experience Designer

Petra GregorováSr. Front End Developer

Ozell McBrideSr. Sitecore Developer

John EckmanManaging Director

Page 34: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Lessons Learned

• RWD affects strategy, ux design, visual design, front-end development, and Sitecore development

• RWD doesn’t eliminate the need to optimize for mobile performance

• Responsive Images & Media – how to avoid “send & shrink” approach

Page 35: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Lessons Learned

• Content editors can still cause problems• QA will take longer than you think• You will find edge cases that are suboptimal• Beware third-parties (ad networks, embedded

media, iframes, forms)• Retrofitting is impossible really hard• There is no single mobile context• There are no silver bullets

Page 36: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Resources• Sitecore Adaptive Images: http://marketplace.sitecore.net/en/Modules/

Sitecore_Adaptive_Images.aspx• Responsive Web Design Done Better with Sitecore Device Detection:

http://larre.fixstar.net/2013/02/responsive-web-design-in-sitecore/• Does Adaptive Beat Responsive:

http://www.sitecore.net/Community/Best-Practice-Blogs/Phil-Broadbery/Posts/2013/03/Does-adaptive-design-beat-responsive-design.aspx

• The Presentation Strategy of Launch Sitecore (RWD principles along with Sitecore Device Layouts): http://www.sitecore.net/Community/Technical-Blogs/Maximizing-Usability/Posts/2012/11/The-Presentation-Strategy-of-Launch-Sitecore.aspx

• Sitecore ASP.NET CMS 6.6 Features: Device Simulators http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2012/11/Sitecore-ASPNET-CMS-6-6-Features-Device-Simulation.aspx

• https://github.com/scottjehl/picturefill

Page 37: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Appendix

Page 38: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Delight.us

Page 39: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Planar

Page 40: Sitecore and Responsive Web Design

#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 */

Page 41: Sitecore and Responsive Web Design

#sitecoreneug #rwd

Page 42: Sitecore and Responsive Web Design

#sitecoreneug #rwd