116
8/18/2019 net - June 2016.pdf http://slidepdf.com/reader/full/net-june-2016pdf 1/116 SAVE $98! Free two-month Pusher trial with Creative Cloud SAVE 15% The pro’s guide to 20 brilliant MASTER BROWSER DEVTOOLS Issue 280 : June 2016 : net.creativebloq.com   web design  PROJECT Exclusiv

net - June 2016.pdf

Embed Size (px)

Citation preview

Page 1: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 1/116

SAVE $98!Free two-monthPusher trial

with Creative CloudSAVE 15%

The pro’s guide to 20 brilliant

MASTERBROWSERDEVTOOLS

Issue 280 : June 2016 : net.creativebloq.com

  web design  PROJECT

Exclusiv

Page 2: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 2/116

Page 3: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 3/116

 

 june 2016 

3

Welcome

EDITOR’S NOTE

FEATURED AUTHORS

JENNIFER

TANG

 

Jenn is a product designer at

ZURB. From page 76 she walks

through 10 ways to use design

to guide people and drive

engagement

w: netm.ag/tang-280 

t: @happyimadesignr

ANDI

SMITH

 

Andi is the director of web

development at AKQA. From page

68 he introduces 20 new techniques

to help you get the most from

browser developer tools

w: www.andismith.com 

t: @andismith

NADIEH

BREMER

 

Nadieh is an astronomer-

turned-data scientist-turned-

data visualisation designer.

On page 84 she explains how

to boost D3 charts with SVG 

w: www.visualcinnamon.com  

t: @NadiehBremer

PATRICIA

GARCIA

 

A software developer with

over 10 years’ experience,

Patricia helped fight Ebola

with offline JavaScript apps.

Read about it on page 28 

w: github.com/patriciagarcia

t: @patggs

  WELCOME

Last month we looked at new skills in web

design, but there’s one under-appreciated

skill that is being neglected of late. I’m talking of

politeness and kindness. Many of you will take it for

granted, but I see rudeness on social media and in

emails every day, and there’s just no need for it.

If you email someone, address them by name,

however busy you may be. If someone offers you

work, send them a polite reply, even if you can’t

do it. ‘Not interested’ just doesn’t cut it as a response.

And this applies to everybody, however well-known

you may be.

Let’s not forget what makes our industry so

special: its close-knit, open community that’s always

eager to share and offer support. See it as a future

investment, too. In our column on page 37, Harvey

Wheaton explores the importance of embracing

and immersing yourself in the web community.

If you’re polite to someone, they will be more likely

to remember you in the future and help you out when

you need it. It’s a skill you should foster just as much

as your design and development skills.

Now enjoy what your peers have to share with

you this month. If you like what you’ve read, why

not drop the author a Tweet to say thanks?

Oliver Lindberg, editor

[email protected] 

Page 4: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 4/116

4   june 2016

MANAGEMENTEditorial director: games, photography, creative and design Matthew Pierce [email protected],

Group art director Rodney Dive [email protected]  

EDITORIAL

Natalie Be’er, Aiden Bennett, Demian Borba, Nadieh Bremer, Tanya Combrinck, Anna Dahlström, Katie Fenn, Patricia Garcia, Cole Henley,

Clayton Hunt, Sam Kapila, Craig Lockwood, Jim McCauley, Christopher Murphy, Alex Pate, Chris Robinson, Carl Schooff, David Sloan,

Andi Smith, Jenn Tang, Neil Turner, Luke Wagner, Harvey Wheaton

Lisa Boomer, Andrea Manzati, Ben Mounsey, Sébastien Thibault, iStock

ADVERTISING Advertising manager Sasha McGregor [email protected] 

CIRCULATION Trade marketing manager Juliette Winyard  [email protected]  

PRODUCTION Production controller Nola Cokely [email protected] 

Production manager Mark Constance [email protected] 

LICENSING Senior licensing and syndication manager Matt Ellis [email protected]  

All contents copyright © 2016 Future Publishing Limite d or published under licence. All r ights reser ved. No part of this magazine may be reproduced, stor ed, transmitt ed or use d

in any way without the prior written permission of the publisher. Future Publishing Limited (company number 2008885) is registered in England and Wales. Registered office:

Registered office: Quay House, The Ambury, Bath, BA1 1UA. All information contained in this publication is for information only and is, as far as we are aware, correct at the time

of going to press. Future cannot accept any responsibility for errors or inaccuracies in such information. You are advised to contact manufacturers and retailers directly with

regard to the price and other details of products or services referred to in this publication. Apps and websites mentioned in this publication are not under our control. We are not

responsible for their contents or any changes or updates to them. If you submit unsolicited material to us, you automatically grant Future a licence to publish your submission in

whole or in part in all editions of the magazine, including licensed editions worldwide and in any physical or digital format throughout the world. Any material you submit is sent at

your risk and, although every care is taken, neither Future nor its employees, agents or subcontractors shall be liable for loss or damage.

NEXT ISSUE ON SALE 19 MAY 2016

Future PLC, Quay House, The Ambury, Bath, BA1 1UA +44 (0)1225 442244

  @netmag /netmag flickr.com/photos/netmag   [email protected] net.creativebloq.com medium.com/net-magazine 

COLOPHONAPPS USED PAPER TYPEFACESGoogle Docs, Photoshop, Dropbox,

FutureSource, Illustrator, InDesign,

CodePen, GitHub

COVER PaceSetter Gloss 250gsm

P3-82 Galerie Fine 100gsm

P83-114 Grapholvent 70gsm

Antonio, Share Tech,

Merriweather,

Titillium Web

We are committed to only using magazine paperwhich is derived from well managed, certifiedforestry and chlorine-free manufacture. FuturePublishing and its paper suppliers have beenindependently certified in accordance with the rulesof the FSC (Forest Stewardship Council).

EDITORIAL CONTRIBUTIONS

ART CONTRIBUTIONS

Editor Oliver Lindberg [email protected], Production editor Ruth Hamilton [email protected],

Art editor Rebecca Shaw [email protected], Commissioning editor Julia Sagar  [email protected],

Staff writer Dominic Carter [email protected], Staff writer Alice Pattillo [email protected] 

CREATIVE BLOQ Global editor-in-chief Dan Oliver [email protected], Managing editor

Craig Stewart [email protected], Content manager Kerrie Hughes [email protected]

Page 5: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 5/116

Page 6: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 6/116

 june 2016

Issue 280 : June 2016 : net.creativebloq.com

FIGHTING EBOLA WITH JS 28

Patricia Garcia explains how an offline-first

JavaScript app helped tackle a major crisis

THE NEW HOMEPAGE RULES 26

Natalie Be’er explores how we can adapt

our homepages to fit their new purpose

WORKSPACE 18

Christopher Murphy gets a guided tour of Brewbot’s Belfast hub

from one of his students, co-founder Jonny Campbell

GO COMMUNAL 37

Harvey Wheaton considers the career

benefits of embracing the tech community

BIG QUESTION 38

How do you simulate different network

conditions? We asked the web pros

VOICES

INTERVIEW  32

Cloud Four co-founder

Lyza Danger Gardner 

discusses the negative

repercussions of pitting

yourself against others

within the industry

SUBSCRIBE TO NETAND SAVE UP TO 54%

  VOICES

  FEED

SIDE PROJECT OF THE MONTH 16

Matthias Martin is giving his CSS skills

a shot of life with a 100-day challenge

BEYOND PIXELS 20

Craig Lockwood spends his spare time

creating knives for professional chefs

CLIENTS FROM HELL 17

An exasperated graphic artist gets a lesson

in how to understand clientese

NEED LIST 21

The stuff we want, including a helpful deck

of cards to help you plan your UX

EVENT REPORT 23

Oliver Lindberg shares his experiences

at Smashing Conference Oxford

FEED

TAKE ADVANTAGE OF THE

PRINT AND DIGITAL BUNDLE

Turn to page 24 to find out more

Want the Pro package? Turn to Page 51

Q&A 41

We chat to yiibu’s Stephanie Rieger about

design fiction and future technologies

Page 7: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 7/116

 

 june 2016 

7

Contents

FREE PUSHER: TWO

MONTHS FREESEE PAGE 96

BOOST YOURDEVTOOLS SKILLS  68

The embedded browser development

tools are better than ever. Andi Smith

lists 20 techniques you should know

GUIDE PEOPLE

WITH DESIGN  76

Jenn Tang shares 10 design techiques

you can use to guide your users and

influence their actions

DESIGN CHALLENGE 52

Three designers mock up brewery sites

FOCUS ON 57

Sam Kapila on the theory of colour

HOW WE BUILT 64

A unified online presence for Penguin

PROFILE 58

We chat to belgian agency EPIC

SHOWCASE

7 HIDDEN GEMS

OF GREENSOCK 104

Carl Schooff uncovers some

hidden features within the

GreenSock Animation Platform

GALLERY 44

Anna Dahlström shares

the best new sites

around, including a photo-led

site for some innovative new

woolen trainers

NETWORK 8

The latest mail, tweets, posts and rants

EXCHANGE 10

Carl Smith, Lorna Mitchell, Meg Lewis and 

Joe Leech share advice

REGULARS

D3.JS AND SVG 84

Nadieh Bremer shows you how to use SVG

gradients to enhance data visualisations

CHROME DEVTOOLS 104

Katie Fenn shows you round the Sources,

Console and Network tabs in DevTools

ADOBE XD 90

Demian Borba explains how to design and

prototype a simple app with Adobe XD

PATTERN LIBRARIES 94

Alex Pate considers the benefits of building

a library of reusable components

MOBILE UX 98

Neil Turner presents 11 rules to help you

build ergonomic mobile interfaces

WEB STANDARDS 103

Luke Wagner introduces WebAssembly

ACCESSIBILITY 114

David Sloan on designing accessibility

PROJECTS

FEATURES

  PROJECT

  REGULAR

 EXCLUSIVE VIDEO TUTORIALS! 

Look out for the video icon in the tutorials forexclusive screencasts created by the authors

HEAD TO HEAD 97

Clayton Hunt compares Jasmine and Mocha

Page 8: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 8/116

 june 2016

  CONTACT US   @netmag /netmag [email protected] net.creativebloq.com medium.com/net-magazine

Mail, tweets,posts and rants

PM SUPPORT

I’ve seen too many times

what happens when a client

insists that it doesn’t need

the services of a project

manager – the end result

is rarely pretty or what was

desired. I also know from

painful experience what

it’s like to suffer from the

overload of too many projects

running concurrently and

little support from ‘upstairs’

– burnout is only just around

the corner.

Chris Perry, Riyadh, SA

net: This comment refers

to ‘Project managers are

badass’ (netm.ag/gertz-280),

an article we published

recently by Rachel Gertz.

Take a look at our Medium

channel (medium.com/net-

magazine) for more articles

from net magazine. 

NEW CODERS

Adobe’s Aga Naplocha

asked for advice on how

to introduce beginners to

coding without frightening

them (netm.ag/coders-280).

Here’s what you had to say:

@bel4r ‘Why use it?’ is very

difficult for many designers.

@liamjay66 Starting out,

I found it difficult to know

what code I should learn.

@_zouhir Blank HTML page

with few boxes. Let them

play with Chrome DevTools

Console CSS properties.

Small explanation about

HTML tags set, selectors and

external CSS. Do not mention

 JS yet. Atom or Sublime with

a cool theme and syntax

highlighting will attract them

– let them mess around and

build something.

SHOPIFY AWARDS

net: Shopify has launched its

Ecommerce Design Awards

and teamed up with InVision

and net to offer an awesome

prize to four winners: a two-

day, all expenses-paid trip

to New York City to receive

creative mentorship from

industry-leading experts,

including net editor Oliver

Lindberg. For more details

about how to enter, see

netm.ag/shopify-280.

THROWBACK TALKS

net: We’ve been looking

back at some of the great

talks of Generates past on

Twitter, starting with Oliver

Reichenstein’s ‘Information

Entropy’ (netm.ag/entropy-

280). It brought back some

memories for the speaker …

@reichenstein When you

watch these videos right

after the conference, you

want to hide below a stone.

I remember the audience

being dead silent, it felt like

walking on thin ice. The

message doesn’t feel that

extreme these days.Love your PM In this article, Louder Than Ten’s Rachel Gertz explored the role ofthe project manager, and encouraged web pros to stand up and support them

Throwback videos Oliver Reichenstein explored information entropy at our firstever Generate conference in London 2013

 

Page 9: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 9/116

 

 june 2016 

9

Network 

 From our timeline What advice would you give to someone

starting out in the web design industry?

Remotely 2%

Apps like Skype mean

you can test without

leaving your chair

Social media 2%

Send a shout outfor quick opinions

Ask the public 28%

Cafés, pubs and the

like offer plenty of

test subjects

I don’t 20%

How helpful can it

really be?

Dedicated tool 20%

There are plenty of

options to do the

hard work for you

Focus group 8%

Hit your target

audience with a

dedicated session Set up a survey 12%

Set questions make

for simpler analysis

Outsource it 8%

Hand it over to a

specialist who knowswhat they’re doing

HOW DO YOU CO NDUCT

USER TESTING?

  THE POLL

C O O L S T U F F

W E L E A R N E D

T H I S M O N T H 

SOCIAL SYSTEMS

 

Social ‘mega-apps’

– feature-rich social

platforms that function like

operating systems – are

creeping in. In this article,

Stephanie Rieger explores

the changing role of social

giants like Facebook,

Slack and China’s WeChat,

and how the future

might look as this trend

continues to grow.

netm.ag/megaapps-280

CHATTER BOTS

 

The bot revolution

is coming and it’s

going to revolutionise how

we interact with services

in the physical world –

at least that’s what Ted

Livingston and the team

at Kik believe. Arguing

that they’re more than

 just consumer fulfilment

tools, Livingston explains

how chat bots and apps

will herald the beginning of

a new era of the internet.

netm.ag/chat-280 

WHO? WHAT? WHERE?

 

Clients eager to

put the user at

the centre of their web-

based projects have led

to the emergence of what

Jared Spool refers to as

‘context-aware design’. By

recognising that context

is constantly changing,

developers can create an

intuitive experience that

ensures the user always

remains in control.

netm.ag/crux-280 

Publish everything

online, even your

mistakes – then show

how you fix them. Be fierce,

hungry to learn and network

like crazy.

@furryronin

Engage with the

industry in person:

blog about, attend and

speak at meetups/conferences.

Learn from a range of different

perspectives.

@calum_ryan

 Sign up for a CodePen

account (Pro is totes

worth it), put your work

out there and learn from others.

@SaraSoueidan

Know it’s OK to be

wrong or not know

the answer.

@ninjanails

Don’t freelance first –

gain some commercial

experience.

@icanbeautiful

 

Speak to people, share

your work and ideas. Be

prepared to have your

work criticised. Make your own

decisions. Learn flexbox.

@danjdavies

Don’t wait for things to

happen to you, go out

there and make them

happen. Blog, Tweet, engage.

Also, study business.

@myfirstraygun

 

Develop processes for

all aspects of your work:

customer service,

record keeping, design and

development ... all of it.

@EsbieNet

Page 10: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 10/116

10 

 june 2016

UX

FUTURE-GAZINGWhat does the future of UX design look

like? Customer experience? Service design?

Sergei Golubev, London, UK

 JL: User experience (or more correctly

user-centred design) puts users’ needs at

the heart of all digital design decisions.

UX is often limited as it doesn’t extend

beyond the mobile or desktop screen.

Taking the UX process and putting the

customer at the centre of not only design

but also the way organisations develop

their products and services is a natural

step. Following business successes from

a user-centred approach, we are seeing

organisations creating new roles such

as VP of customer experience.

BUSINESS

INDUSTRY CHANGES

How has the industry changed since you

started your web design business? As

tech and design became recognised by

Lumen or Slim framework?José Borges, Albufeira, PT

QUESTION OF THE MONTH

Send your questions to [email protected]

Practicaladvice from

industry experts

CARL SMITH

Carl is a partner at Bureau

of Digital, where he helps

digital agenciesw: devianthippie.com  

t: @carlsmith

LORNA MITCHELL

Lorna is a PHP and API

specialist, open source

project lead and trainer

w: www.lornajane.net

t: @lornajane 

MEG LEWIS

Meg is a designer and

founder of collaborative

workspace Ghostly Ferns w: darngood.co  

t: @darngooood 

JOE LEECH

Joe is a user experience

and product design

consultant and writer

w: mrjoe.uk

t: @mrjoe

THIS MONTH FEATURING...

LM: I love microframeworks; they are such a lightweight basis for simple web

applications and APIs. In PHP we have some great choices, including Lumen (lumen.

laravel.com) and Slim (www.slimframework.com), but also Silex from the Symfony project

(silex.sensiolabs.org). My recommendation is definitely to try Slim. Its v3 release is very

modern and uses the best of PHP tools throughout. It also performs well, and I can

vouch that its docs and community support are excellent.

Lightweight option Lumen is a microframework from Laravel focused on delivering fast services and APIs

Page 11: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 11/116

 

 june 2016 

11

Q&As

companies as an investment rather than

a fad, did your sales approach change?

Courtney Bradford, TX, US

CS: We started nGen in 2003, and even

then it was kind of the Wild West. We

always made a point to be at least one

step ahead of our clients. Initially, that

meant being great at process. Then it

changed to being great at standards-

based development. Then accessibility.

Then UX. Then responsive. Then digital

transformation. Today clients are

smarter, and if you aren’t constantly

changing to incorporate the newest

beneficial approaches and technologies

you’ll slowly lose relevance.

BACKEND

WEB SERVICES

Any tips on designing a great web service?

It’s really hard, especially with sorting and

filtering on endpoints.

David Yell, Southampton, UK

LM: Designing an API is hard, especially

when you want to keep your options open

for how you might want to use it in the

future. My advice is to start with some

quite specific use cases and design for

those. You can always add more features

later, but you can’t ‘unpublish’ the ones

you have already shipped. Sorting and

filtering can expose a lot of internal

detail, such as column names. One

alternative approach that has worked for

me is to create some ready-made filters

for users, which combine useful filtering

and sorting options.

UX

BUSINESS MINDS

What can designers do in a business

when the leadership doesn’t truly embrace

UX and design thinking?

Ross Chapman, London, UK

 JL: There’s a lot of talk about how

designers should know how to code,

but I’d hire a designer who knows how

businesses work over one who can code

every time. Understanding how your

organisation measures its success and

then matching that to user needs gives

you a strong justification for design

thinking. You need to be saying things

like: ‘We ran some user research and

uncovered some unmet user needs,

we’ve worked with the finance team

and believe these changes represent

a $ opportunity for the company.’ I’ve

written a primer for business for UX

designers at netm.ag/primer-280.

CLIENTS

BRAND IDENTITY

What’s the best way to handle a full

brand identity project?

Ian Paget, Reading, UK

ML: I love putting together set priced

packages available in three tiers for

all my clients: I offer them a fancy

package with just the bare minimum,

3 S I M P LE S T E P S

What’s the best place togo to learn PHP and Git?Chris Weir, Irvine, UK

LM: When you’re looking for resources

to improve your skills, it’s important to

know whether you learn best from written

resources, video or something else.

KNOW YOUR LEARNING STYLE

Personally I do best with books.

However, I also make sure I actually

practice my new skills as well as reading

about them.

LEANPUB BOOKS

Leanpub is a really exciting platform

for technical books. PHP Pandas  by

Dayle Rees is a great modern tutorial

for PHP. I’ve also written a Git Workbook  

that is full of practical exercises, plus a

downloadable sticker chart for when you

master each skill.

VIDEO COURSES

There are a lot of sites offering

video content, but I find some of the

videos are poor quality and hard to watch.

For something more polished check out

the O’Reilly Learning Paths. There’s one

for Git, and for PHP there’s a video for

beginners and one that’s more advanced.

Business minds Joe Leech’s primer lays out the business basics for UX and design ( netm.ag/primer-280 )

Page 12: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 12/116

12 

 june 2016

EXCHANGEQ&As

BUSINESS

PRICING UP

What’s the best strategy for pricing

a web design project?

Peter Javorkai, Budapest, HU

CS: Taking a stance on pricing is a great

way to start a war! But I don’t want to

shy away from a challenge so let’s do

this. There are a few variables that play

a huge role, such as your familiarity with

the type of project, users, technologies

and client. I always start by comparing it

with a previous project and using the real

cost of that as a base. Then I modify the

pricing based on differences in structure,

goals, timeline, value to client, value to

our portfolio and approval process. If

we’re having a really good quarter I might

bump the price up 20 per cent, if we’re

slow I may nudge it down a bit. And

although we use time to estimate, we

generally provide a fixed budget.

UX

ADVANCED SEARCH

I’ve been experimenting with really

advanced, flexible, multifaceted search.

Any pointers?

Lewis Cowles, Essex, UK

 JL: Search has very little to do withinterface design, and this can trip up

an inexperienced team. Search is about

providing exactly the right results in

the first five listings. If your users are

turning to filters or re-ordering the

results it means you’ve failed to give

them what they need or expect. Choose

the very best search engine you can find

(or afford to use), and spend time setting

it up to deliver the best quality results

it can. This can often mean manually

choosing search results for certain

queries. Keep monitoring the search

terms users have typed in and tweak

your results based on this.

CAREER 

TEAM EFFORT

How has collaboration impacted your

creative career?

Andy J. Miller, OH, US

ML: When I started out as a freelancer,

I felt like I had to do everything myself to

prove I was a ‘good designer’. Over time

I’ve learned I’m not good at everything.

Collaboration is a great way to hand the

baton to someone who is more skilled at

a specific area of design. The end result

is always far better than if I had done it

all by myself! Personality, drive and

willingness to sit quietly beside someone

in a room without it being awkward are

some things I look for in a collaborator.

UX

INDUSTRY ADVICE

What one piece of advice would you give

to people coming into the UX industry?

Rob Whiting, Yorkshire, UK

 JL: Brush up on your research skills.Doing the best design work and making

the right decisions requires a strong

understanding of users’ needs, and

without research you can’t be sure of

what users want. Running research

sessions is pretty easy – just ask a few

users (even friends or family), to talk

you through your website or app for 20

minutes or so as you note any problems

they have. It’s not rocket science!

an extra-fancy package that includes

a bit more, and a super-fancy package

that gives them everything they could

possibly need. Everyone loves having

options, and I find most companies tend

to go with the mid-range package.

UX

NATIVE PERKS

What should the UX of a native app

be when you also have a web app?

AKA: Why download the app?

Jonathan Baker-Bates, London, UK

 JL: Best practice for apps is to follow

the design patterns of the platform.

However, as web also has its own

patterns, it’s easy to end up with a real

Frankenstein app user experience that

 just doesn’t feel right. The app should

match the branding, tone of voice and

feel of the web app or website. Follow the

patterns set out in the excellent iOS or

Android app design documentation,

and if possible develop the apps natively

rather than using a cross-platform app

framework like PhoneGap.

CLIENTS

DESIGN CHOICES

How many options should you present

to a client?

Phil Ward, Adelaide, AU

ML: I only present the number of options

that truly make sense for the needs of

the brand. Quantity may make you feel

like you did more work, but presenting

options that don’t work is risky. What

if the client likes those designs? I never

promise a set number of options to

clients, rather, I tell them I’ll generate

as many directions as their brand would

benefit from.

Team effort The Ghostly Ferns freelancers all havedifferent skills, from product design to illustration

Left Services like PhoneGap are designed to help create cross-platform apps, if you don’t have scope

to go native Right The UI of a native app should have the same tone as the web app or website

Page 13: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 13/116

Page 14: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 14/116

SAN FRANCISCO 15 JULY 2016

Learn all about SVG animations, the Internet of Things,

TICKETS ON SALE NOW

MIKE MONTEIROCO-FOUNDER, MULEwww.mikemonteiro.com

SARAH DRASNERUX DESIGN MANAGER, TRULIAsarahdrasnerdesign.com

PETER SMARTUX DIRECTOR, FANTASYwww.petesmart.co.uk 

LYZA DANGER GARDNERCO-FOUNDER, CLOUD FOURwww.lyza.com

Page 15: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 15/116

 

 june 2016 

15

People, projects& paraphernalia

THIS MONTH FEATURING...

SIDE PROJECT OF THE MONTH 16

Matthias Martin gave his CSS skills a shot

of life with his 100-day challenge

BEYOND PIXELS 20

Craig Lockwood spends his spare time

creating knives for professional chefs

CLIENTS FROM HELL 17

An exasperated client gets a lesson

in how to speak clientese

NEED LIST 21

The stuff we want, including a book that

lets you peek inside the mind of a designer

WORKSPACE 18

Christopher Murphy takes a guided tour

of Brewbot’s HQ with one of the founders

EVENT REPORT 23

Oliver Lindberg shares his experiences

from Smashing Conference Oxford

Page 16: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 16/116

16 

 june 2016

FEEDSide project

net: Where did the idea for your 100 Days

CSS (100dayscss.com) challenge come from?

MM: I was annoyed by the restrictions in daily

business. Everything has to perform well in the

old browsers and be optimised for search engines,

conversion rates, and a wide range of devices. In this

project, I don’t worry about any of these things and

use as many experimental features as I want. I have

a little notebook for my ideas, most of which are

spontaneous thoughts I get throughout the day.

net: Have you learnt any new skills?

MM: I’ve learnt many new tricks and techniques,

especially in the area of animation. It is a powerful

tool and has become an important part of interfaces

I am creating. I find the variety and complexity

exciting – there are a hundred ways to transition

a square into a circle, and each is the right way for a

particular situation. I have also learned to love SVGs.

They are very useful if you want to animate anything

that is not a circle or a rectangle.

net: Have you run into any obstacles?

MM: In the second week I encountered my first

performance issues on the project website, which

were due to the many embed exercises. As I did not

want to split up the site into multiple pages, I wrote

a JavaScript function that loads and unloads the

exercises based on the user’s viewport.

net: How has this project pushed your creativity?

MM: The challenge to come up with a good exercise

each day keeps me attentive towards other creative

work, and I am becoming quicker at designing my

ideas. As I usually work better with a time limit;

this gives me an extra boost of creativity.

net: Would you recommend a challenge like this?

MM: If you have something you want to learn or

achieve, I would highly recommend starting a

100-day challenge. The concept itself can be

transferred to almost anything and it is incredible

what other people already have accomplished. For

me, it is no longer an exhausting task, it has become

a natural part of my daily routine. You are mistaken

if you think you do not have time for it. 

100 DAYS CSSMatthias Martin is improving his CSS skills and

inspiring others with his daily challenge

 SIDE PROJECT OF THE MONTH

  INFO

 job: Junior art director

and web developer

w:matzemachtdesign.de

t: @RoyDigerhund

Page 17: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 17/116

  june 2016 

17

Feed

   I    l    l   u   s   t   r   a   t    i   o   n   :    S    é    b   a   s   t    i   e   n    T

    h    i    b   a   u    l   t

   s   e    b   a   s   t    i   e   n   t    h

    i    b   a   u    l   t .   c   o   m

clientsfromhell.net

I work as a graphic artist for a country

newspaper. Our sales reps liaise with

clients, then supply us with excellent design

briefs and high quality, print-ready assets.

At least, that’s how things go in the perfect

world of my daydreams.

The reality is I’ve become fluent in ‘clientese’,

that private language of the deranged and

defective, and cobble together the advert they

want despite their best efforts to make their

instructions unintelligible. Sometimes, though,

even I am not up to the task of translation.

Client: Can you sharpen the yellow in the banner

of this ad?

Me: The swatch I’ve used is 100 per cent yellow.

It doesn’t get any more yellow, I’m afraid. Do you

want a different colour? I could add some orange,

or I could lighten the tint.

Client: No, the yellow is fine – but can you make

it sharper?

Me: It’s vector – that means pixelation isn’t going

to be an issue. It won’t look blurry when it prints.

To be honest, I’m not sure what you mean.

Client: Like this!

He sends a PDF example of a yellow advert.

I check the separations, and it’s 100 per cent

yellow. Just like in my ad.

Me: The example you sent has the same swatch

value that I’ve used.

Client: Are you sure? We won’t be happy if it

comes out differently.

Me: Well, it is being printed on low-quality

newsprint stock. Some colour variation does

happen, but since the yellow is only on one plate,

we shouldn’t have any real issues. This is part of

the reason our services are cheaper.

Client: Okay. Well just sharpen it then to be sure.

Me: But … never mind. Sure thing.

 I send the same proof I did the first time.

Client: Much better. Thanks. That wasn’t so hard,

was it?

Me: No, it wasn’t. It really, really wasn’t.

LEARING CLIENTESE

 CLIENTS FROM HELL

Exclusively for net: the latest in a seriesof anonymous accounts of nightmare clients

Our Twitter followers dole out

advice on how to successfully

communicate your brilliant ideas

TALK IT OUT

@manuel_sofia says honesty

is the best policy: “Be straight-

talking. No marketing BS or lies.

Give facts and figures.” “Make it

simple and to the point,” says

@Michael0glesby. “Clients always

want more. Make sure scope creep

is covered.” @missstephwalker

also advocates keeping an eye on

costs: “Pay attention to covering

every aspect of the project – it will

serve you when dealing with late,

unexpected requests.”

KNOW YOUR AUDIENCE

“Learn about your client,” offers

@formforthough. “Take them

through what your work will do to

their business.” @McKay_1988

suggests starting by talking to the

client. “It determines the language

you use and what to include.”

“Don’t guess and don’t be afraid

to engage the prospective client

to fill gaps in their brief before

submitting a proposal,” says

@DecibelDigital.

 

STEP-BY-STEP

@matthamm lays it out nicely.

“1. Keep it simple (no blurb)

2. Summarise the project 3. List

the design problems and proposed

solutions 4. Clear project timeline

5. Show a pricing table, keep it

simple and show the breakdown

6. List or show your process.”

WRITE A GOODPROPOSAL

 HOW TO

Page 18: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 18/116

1

18   june 2016

In 2013, four friends started

a Kickstarter campaign for

Brewbot, a unique company that

would combine smart technology

with brewing to enable anyone to

brew beer using their smartphone.

The project was successful, raising

over £114,000.

The company’s design-focused

vision has seen it featured in Fast

Company, New Scientist, Wired and

more. As they put it: “We believe

that thoughtful design, intuitive

technology and natural materials

simply belong together; to us,

they’re inseparable.”

Brewbot employs a distributed

team of creatives based all over

the world, from San Francisco and

Chicago to Bristol and Dunbar in

Scotland. The hub, however, is in

Belfast. I dropped into the studio

for a guided tour from co-founder

 Jonny Campbell, a graduate from

my Multidisciplinary Design course

at Belfast School of Art.

A Brewbot (1) occupies pride of

place in the corner of the studio,

on hand for the team to experiment

with new recipes and enable them

to pursue their goal of making

brewing beer accessible to all.

The hardware lab (2) is where

new products are imagined and

brought to life. The team only use

the best materials to create their

Brewbots, and the lab provides a

space for them to sweat the details.

When your focus is brewing,

a studio bar (3) is de rigueur (for

sampling purposes, of course).

This is a space for getting together

and promoting conversation and

collaboration.

With a remote team, hot desks (4) 

are essential, offering visiting team

members a space to call home

when they’re in the city. No one

wants to be cooped in a dark and

dreary workspace. A skylight 

allows sunshine to work its

wonders, and sheds a little light

on the dark arts of brewing.

The team recently expanded its

vision by opening its first bar (5),

nestled underneath the studio.

Serving a cornucopia of craft beers

– local and global – the bar has

rapidly established itself as a

thriving addition to Belfast’s

flourishing nightlife.

A passionate educator and a mentor

to many creative entrepreneurs,

Christopher (@fehler) is a writer

based in Belfast

WHAT’S BREWING?Christopher Murphy  takes us on a tour of Brewbot’s Belfast

studio as he checks in on his graduate, Jonny Campbell

 WORKSPACE

2

3

4

    P   R   O   F   I   L   E

Page 19: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 19/116

Page 20: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 20/116

    P   R   O   F   I   L   E

20 

 june 2016

FEEDBeyond pixels

For as long as I can remember, I have

had a fascination with knives. As a kid

I remember my grandfather (‘Bamps’) having a

chest of drawers filled with his treasures. The

third drawer down was my favourite, and it held

a collection of old knives.

I can still remember the first knife I ever

owned, a 3" folding pen knife with a mock ivory

handle, given to me by Bamps from his collection.

I treasured that knife and wish I still had it now.

I now know why I love knives so much: apart

from their beauty, I love the pure utility of a knife.

A knife is a tool that performs a task with little

fuss; no batteries required. A good knife will last

a lifetime and beyond.

As a child of the late 70s, my teenage years

were rudely interrupted by the advance of home

computers. Move forward 20 years and I have

been working with computers for over half of

my life. This equates to tens of thousands of

hours hunched over a keyboard with a blue

phosphorus glow burning into my face. A few

years back I made the decision to change this

unhealthy lifestyle and to balance screen time

with other pursuits.

I have always been a maker, with multiple

projects on the go at the same time. I also love to

cook, so the decision to make a kitchen knife was

obvious to me. I bought a cheap belt grinder and

spent any spare time grinding into various pieces

of steel and practicing the heat treatment

process until I had a technique I was happy with.

There are only a few people in the UK making

quality kitchen knives by hand and I am focused

on one goal: to produce the highest quality

kitchen knives possible. I use only the finest

carbon steels and hardwoods. You can see

a video of me making a paring knife at netm.ag/ 

lockwood-280 .

I now have an order book for kitchen knives

with orders from Michelin-starred chefs from

around the world. In the beginning, I did not

market the knives in any way apart from posting

images to a dedicated Instagram account. Like

the web community, chefs are pretty good at

sharing what interests them.

Making knives has taught me to focus on the

detail and to iterate on my designs. I have come

to realise any work I do on the web will one day

be lost, but in generations to come I would love

for somebody to think of one of my knives as a

treasure, just as I did with my Bamps’ knives.

KITCHEN KNIVESThis month … Craig Lockwood creates knives for

Michelin-starred chefs around the world

 BEYOND PIX ELS

STUFF I LIKE

SARA SOUEIDANFrontend developer

www.sarasoueidan.com

MOLESKINE TIMEPAGE

This is a calendar app, but

instead of the usual grid

format, it’s arranged into a

timeline that shows events as

a continuous flow. The app

has a sleek UI and nice

interactions. Plus, new

features are added with every

update, such as the latest

monthly heat map view.

netm.ag/timepage-280 

PAYDIRT

There are quite a few

invoicing and time tracking

apps, but most are packed

with too many features.

Paydirt is the simplest I have

found, but it has everyt hing

I need to run my small

freelance business.

www.paydirtapp.com 

DECKSET

Using markdown is the

quickest way for me to create

slides, and Deckset allows me

to do exactly that. Although

it is missing many

customisation features, it

helps me focus on the actual

writing process, which is

great when I’m short on time.

www.decksetapp.com 

Craig has been developing for

the web since his teens, and until

recently ran Five Simple Steps.

When not doing web stuff he

makes knives (chopknives.com )

Page 21: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 21/116

Need list

(1) This handbook offers back-to-basics advice for working with HTML typography in email (netm.ag/type-280 ). (2) Peer into the mind of

influential designer Aaron James Draplin as he reveals the thought processes behind his work in this amusing book (netm.ag/draplin-280 ). (3) Sara

Wachter-Boettcher and Eric Meyer ex plain how to adjust your design work for the stressed or t ime-pressed (netm.ag/life-280 ). (4) Freelancers

and creative entrepreneurs can take their careers to the next level with this roadmap to success (netm.ag/creativetruth-280 ). (5) Become the

master of your inbox with Polymail, an email productivity app that lets you schedule, snooze and even unsend your emails (netm.ag/polymail-280 ).

(6) Plan your website in the real world before you dive into code with these UX Flowchart Cards (netm.ag/flowchart-280 ).

Small objects of web design wonder: from an HTML

typography handbook to a deck of UX planning cards

 NEED LIST

What we think

STUFF WE WANT

DESIGN FOR REAL LIFE $18PRETTY MUCH EVERYTHING $40A TYPE OF EMAIL £15

POLYMAIL FREECREATIVE TRUTH £24.99

32

4 5

UX FLOWCHART CARDS $29

  june 2016 

21

6

1

Page 22: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 22/116

PRINT EDITION, BACK ISSUES AND SPECIAL EDITIONS AVAILABLE AT

myfavouritemagazines.co.uk

DIGITAL EDITIONS AVAILABLE ON ITUNES, GOOGLE PLAY, KINDLE, NOOK AND ZINIO

net.creativebloq.com

ISSUE 281 ON SALE 19 MAY

BUILD A PROFITABLEDESIGN BUSINESS

In our special money issue we provide the best financeadvice and explain how to boost your ecommerce sales

NEXTMONTH

PLUS

Reveal and hide

a menu withCSS animations

7 great techniques

for your Shopifytoolbox

Implement Material

Design elementswith Pixate

Page 23: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 23/116

  june 2016 

23

Feed

EVENT GUIDE 

IA SUMMIT

DATE: 4-8 MAY 2016

LOCATION: GEORGIA, US

This year’s IA Summit focuses on

the migration from a page-based

model to cross-channel, data-

dependent, multiplatform

creations. Léonie Watson and

Carolyn Dew are on the speaker

list for this prest igious gathering.

www.iasummit.org 

BEYOND TELLERRAND

DATE: 9-11 MAY 2016

LOCATION: DÜSSELDORF, DE

If you can’t wait for the return of

beyond tellerrand Berlin, now’s

your chance to attend one of t he

biggest design, technology and

inspiration conferences. Talks

and workshops come from Lil

Chen, Mr Bingo and Val Head.

beyondtellerrand.com

CODE MOTION

DATE: 9-12 MAY 2016

LOCATION: AMSTERDAM, NL

With two days of workshops

followed by a conference

weekend, the biggest dev

conference hits Amsterdam in

May. Four speakers have been

announced: Bert Jan Schrijver,

Davide ‘Folletto’ Casali, Bruce

Lawson and Leslie Hawthorn.

netm.ag/codemotion-280 

UX LONDON

DATE: 18-20 MAY 2016

LOCATION: LONDON, UK

Bringing industry leaders from

around the world to present a

combination of inspirational talks

and lively, hands-on workshops,

UX London returns for three

days. The schedule includes talks

from Abby Covert, Cennydd

Bowles and Leah Buley.

2016.uxlondon.com 

 EVENT REPORT

    P   R   O   F   I   L   E

DATE: 15-16 MARCH 2016

LOCATION: OXFORD, UK

URL: smashingconf.com/oxford-2016 

It’s the season of design systems. One of the

major takeaways from the third SmashingConf

Oxford was to move away from designing individual

pages in favour of reusable pattern libraries.

The approach was first mentioned by interaction

designer Alla Kholmatova, who encouraged

everyone to explore modular design for semantic

and structural behaviours. Jina Bolton took a deeper

dive into the topic when she explained Salesforce’s

approach to living design systems and how she

helped create a style guide that could be used by

various different teams (also see Salesforce’s open

sourced projects at github.com/salesforce-ux  and

Bolton’s post at netm.ag/salesforce-280 ).

Mark Boulton, who was the conference’s mystery

speaker, explored how design systems can provide

consistency and prevent the marginal degradation of

a brand’s reputation that results from disconnected

experiences. A design system helps you establish

a shared vocabulary, becomes self-policing and

creates design health.

The more technical talks repeatedly hailed the

arrival of flexbox for better layouts, especially the

presentation by Campaign Monitor’s Chris Wright,

who created Flexbox Adventures (netm.ag/flexbox- 

280 ). Wright noted that while many frameworks

(such as Bootstrap and Foundation) tackle content

breakpoints by focusing on devices, components

that are dependent on the viewport are brittle.

Instead, content should only respond to the

available space. Flexbox, especially combined with

CSS columns, can help designers avoid too many

media queries; a point that Vasilis van Gemert also

picked up on in his excellent talk. Both speakers also

urged listeners to start playing with the upcoming

CSS Grid Layout module.

More excellent frontend tricks were provided by

Sara Soueidan, who took us on a whirlwind tour of

SVG animation, and Smashing Magazine’s editor-in-

chief Vitaly Friedman (who stepped in for Rachel

Nabors when she was denied entry to the UK) with

a fast-paced presentation that included more than

300 slides crammed with practical techniques.

For slides, see SmashingConf Oxford’s Lanyrd

page (netm.ag/slides-280 ). Videos of the talks can

be found at vimeo.com/smashingmagazine .

SMASHINGCONF OXFORD

Oliver Lindberg 

                                                                            m    a    r    c     t     h     i    e     l    e .    c

    o    m

Oliver (@oliverlindberg) is net’s

editor and has been working with

the title since the Iron Age. He’s

also, in the words of Carl Smith,

a “dancing machine”

Page 24: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 24/116

Terms & conditions: Prices and savings quoted are compared to buying full priced print and digital issues. You will receive 12 issues in a year.If you are dissatisfied in any way you can write to us at Future Publishing Ltd, 3 Queensbridge, The Lakes, Northampton, NN4 7BF, UK tocancel your subscription at any time and we will refund you for all un-mailed issues. Prices correct at point of print and subject to change.

For full terms and conditions please visit: bit.ly/magterms . Offer ends 31 May 2016

SAVE UP TO

29%

SAVE UP TO

31%

PRINT EDITION ONLY DIGITAL EDITION ONLY

FROM

£55FROM

£45

SUBSCRIBE TO NETGET THE NO.1 CHOICE FOR WEB DESIGNERS AND DEVELOPERSDELIVERED TO YOUR DOOR, YOUR DEVICE, OR BOTH

Take out a print subscription to net andget your copy before it hits the shops.Each issue is packed with the latest webtrends, technologies and techniques

Take out a digital subscription to net for on-the-go access to our interactiveedition, with streaming screencasts,extra images and more

BASED ON AN ANNUAL SUBSCRIPTION BASED ON AN ANNUAL SUBSCRIPTION

Page 25: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 25/116

SAVE UP TO

54%

myfavouritemagazines.co.uk/NETMAG16

PRINT & DIGITAL EDITION

FROM

£66

Enjoy a combined print and digital subscription, and take advantage

of print as well as exploring the digital experience on the go

 Print edition delivered to your door

 12 issues in a one-year subscription

 iPad and iPhone edition download

 Android edition download

 Money-back guarantee

GREAT REASONS TO SUBSCRIBE

ARE YOU A WEBPROFESSIONAL?GET OUR PRO PACKSEE PAGE 51

Page 26: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 26/116

Opinions, thoughts & advice

THE NEWHOMEPAGE RULES

The role of the homepage haschanged. Natalie Be’er explores

how our design approach needsto evolve with it

Could your website survive without

a homepage? Based on today’s user

behaviour, I’d venture to guess the answer

is yes. Over the years, how we use websites

has evolved. We need to start designing

homepages that work for our product and

its users, rather than simply copying

trends. It’s easy to follow the same

homepage design pattern as the latest hot,

new startup. It’s also lazy.

In 2015, we saw the prevalence ofresponsive design and its impact: large

hero areas above the fold, with single

calls to action, rows of three words or

phrases explaining the product, a full-

bleed value proposition, and then a grid of

interchangeable media or products.

Change the logos on these homepage

designs and I’d bet users would barely

notice that the exact same website was

being used for a different product.

 USER EXPERIENCE

Q&A  41Co-founder of yiibu and Generate speaker

Stephanie Rieger discusses emerging

technologies and design fiction

INTERVIEW  32Cloud Four co-founder Lyza Gardner talks

about performance, pattern libraries, and the

danger of comparing yourself to others

FIGHTING EBOLA WITH JAVASCRIPT 28Patricia Garcia helped create an offline-first

JavaScript app that became a key player in the

fight against Ebola. Here she explains how

Page 27: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 27/116

  june 2016  27

Opinion

Until the early 2000s, homepages large-

ly functioned as a signal to users that

the brand had an online presence. The

pages didn’t need to function much beyond

displaying this presence and contact infor-

mation. As more companies and people

came online, homepages evolved into

brand salesmen, trying to prove that the

product was worthy of users by presenting

as much content up-front as possible.

This approach worked ... until users

stopped coming directly to the homepage.

We’re now seeing search, social media and

email driving traffic directly into product

or article detail pages, completely bypass-

ing the homepage. For example, in 2014

The New York Times reported its homepage

visits were down 40 per cent even though

its online readership was unchanged. It

still receives homepage visits, but they no

longer form the majority of its traffic.

A DIFFERENT A PPROACH

The most important part of designing a

homepage that meets your users’ needs

is asking the simple question: Who is

currently visiting the homepage? Look at

your analytics and try to understand where

the user is coming from and what their

internal path is after the homepage.

The New York Times found its homepage

traffic was coming from power users:

those who were loyal, frequent and

knowledgeable about the product. It didn’t

need value propositions or an explanation

of the brand; it needed tools and content

personalised to these users’ interests.

On a different type of website, these

loyal users might immediately funnel into

a logged-in state or purchase flow. In that

case, the homepage should be designed

with that flow front-and-centre, rather

than making users search in the top-right

corner for the correct button.The way navigation functions is also

changing. When a user comes to a site,

however they may have got there, they

need context. Design for a user that

has zero knowledge about your brand

and product. Clear navigation is cru-

cial. Prioritise site content and embrace

tiered navigation when necessary – the

best navigation acts as a kind of table of

contents for the site. Try not to resort to

The key is this: at any point on the

website, the user should be able to identify

that it’s the same experience. When they

bypass the homepage, consistency is key.

Elements like navigation, branding and UI

should remain the same throughout the

ecosystem, even (or especially) if it’s a large

one. That way, no matter how or where a

user arrives on your site, they’ll be greetedwith the information and encouragement

they need to take the next steps.

It’s not all about the homepage any more.

But that doesn’t mean that homepages

don’t serve an important – if evolving –

purpose to those that do use them.

hamburger menus, which can easily end up

being the equivalent of a junk drawer.

If your users are bypassing the

homepage, your content pages must work

extra-hard to give users all the informa-

tion they might be missing – every content

page should be viewed as an entry point to

your brand and product.

Make sure the content on the pageanswers the following questions: What else

can I find here? What value is this offering

me? Why should I care about this?

The first question can be addressed with

navigational elements or breadcrumbs.

Some brands find that reiterating their

mission statement below the page content

helps anchor and guide the user. Providing

context about the brand or product can

help users in exploring other content.

Natalie (www.natalierachel.com ) is a user

experience lead at Huge, and is responsible for

producing intuitive and intelligent work   P   R   O   F   I   L   E

Users have stopped coming to thehomepage – we’re now seeing search,

directly into detail pages

Page 28: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 28/116

VOICESEssay 

28 

 june 2016

Page 29: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 29/116

  june 2016 

29

Essay 

FIGHTING EBOLA

WITH JAVASCRIPTIllustration by Ben Mounsey

In September 2014 I joined the software team of an

NGO working at the intersection of tech and public

health. By then the Ebola outbreak in West Africa had

reached epidemic proportions, with thousands of cases

reported. One month before, the outbreak had reached

Nigeria, where the NGO had provided phones and a

custom Android application that helped reduce the

reporting time for suspected cases from 12 hours to

almost nothing. Now it was the time to bring that

expertise and those tools to the most affected countries:

Guinea, Sierra Leone and Liberia.

THE CHALLENGESThe Ebola virus is non-airborne and contagion requires

direct contact with the bodily fluids of an infected

individual. To control the outbreak, infected persons

must be isolated and everybody who has come into

contact with them must be kept under observation for

the 21 day-long incubation period. This requires the

collection of an enormous amount of data, and it is

critical that the information collected is reported

promptly so sick persons can be treated and proper

quarantine implemented.

This is a scenario where technology shines. As well

as speeding up the transfer of data considerably, even

a simple application based on web forms can have a

positive impact. For example, things like making certain

fields mandatory, or letting users choose from a set of

options in a drop-down can greatly improve the quality

of the data collected.

However, while the technology solutions required

are simple, implementing them in the context of a

critical emergency situation in a developing country

makes things much more challenging. Shipping early is

not a nice-to-have but a must – there is no excuse for

taking a long time to deliver a feature or not fixing a bug

when human lives depend on it.

More important than that, internet connectivity is a

scarce resource that can’t be counted on. Even when

broadband internet is available, it is not unusual for it to

stop working for hours or days. Designing the applica-

tions to be offline-first is a necessity.

Because of these constraints, we chose CouchDB as

our central piece of software. CouchDB has been designed

with distributed systems in mind, making it perfect to

use in an offline context, where a local database is

contained in each device. Offering an HTTP REST API,

it became not only our database but our backend, too. In

the frontend, PouchDB offers a JavaScript database that

can store data locally while offline, then synchronise

with the CouchDB backend when back online.

SCALING OFFLINE APPLICATIONSWith the combination of CouchDB and PouchDB we were

able to move from zero to production in a week in two of

our most important applications, and with a relative

simple and clean codebase. This worked very well in

Nigeria, where the scale of the outbreak was relatively

small. However, the complexity got higher as the amount

of data and number of users grew.

  OFFLINE-FIRST

Patricia Garcia explains how shrewd use of technology helpedtackle an emergency situation in a developing country

Page 30: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 30/116

VOICESEssay 

30   june 2016

In offline applications with a high amount of data that

needs to be accessed and modified by many users, two

significant problems appear.

First, synchronising the remote database with the

local one (especially initial synchronisation) gets

increasingly slower. On top of that, browsers have a limit

for the amount of data that can be stored locally. For

example, the newest Firefox and Internet Explorer

have soft limits of 50 and 10MB respectively, after which

the user is asked to authorise the application to use

more space – not an ideal experience. The most permis-

sive browser is Chrome, allowing a single application to

use up to 6.66 per cent of the total free space on the hard

drive. However, this might still cause problems when

dealing with low-cost mobile devices.

Lack of local space can have even more dramatic

consequences. In general, when the available local space

is full, the browser starts clearing out data based on an

LRU policy. That means the data from the application

used most recently is deleted, losing all changes that

haven’t been synchronised to the remote database.

The second major problem occurs when more than one

user modifies a document while both their devices are

offline. When the local databases synchronise with the

remote one, CouchDB will detect both versions. As it has

no way to know which is right, it will just choose one and

mark the other as a conflict.

SOLUTIONS

Fortunately, most of the time these two problems can

be addressed by knowing our application and our users.

To solve the data issue, we need to ask ourselves what

data must be locally available for the application to work.

Often that is a relatively small dataset, saving us from

the problems of maintaining a big local database.Where some functionality requires a very big part of

the database to be replicated locally, we must consider

if that functionality should be available at all times, or

if we can make it available only when access to the remote

database is possible.

In one of our applications we found that some users

did require access to all the data at all times. However,

these particular users were all working in an office.

We realised what we really needed was not an offline-

first application, but an offline-first architecture.

We set up a local CouchDB database in each office, with

the local and remote databases synchronising when

the connection was working.

In the case of document conflicts, it is possible to

resolve this issue programmatically, but with the right

data architecture we can avoid it altogether. The question

to ask is: which data is going to be updated together and

which data is going to be updated separately?

Personal data about a suspected case will seldom be

edited, but data about their possible symptoms will be

added every day, often by different persons. If we keep

all the information in the same database document,

conflicts could be quite common, but if we maintain a

separate document for the personal data, and each day

add a new document with the symptom information,

much of the risk of conflict disappears.

THE AFTERMATH

More than two years after the Ebola outbreak began,

there is finally reason to celebrate. Although it is very

difficult to say for sure all cases have been identified,

and therefore that the outbreak has ended completely,

the epidemic is finally under control and people can

return to their normal lives.

In the 15 months on the project I discovered the big

difference technology can make in a situation like that.

I also learned in emergency situations, you need to be

pragmatic in your technical decisions.

Keeping in constant contact with the situation and

your users is vital, to make sure you understand the

problem and their needs. Although we had team

members spending time on the ground in affected

countries, when we were working from our office in Berlin

it could have been all too easy to lose sight of the context:

an emergency situation in a developing country.This is true in every industry perhaps, but more true

than ever here. Without constant detailed feedback

from the field, one can provide beautifully engineered

solutions, but not useful ones.

A software developer with over 10 years’

experience, Patricia (@patggs) has a

passion for working in open source

and impact-driven projects

   P   R   O   F   I   L   E

Page 31: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 31/116

Page 32: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 32/116

32 

 june 2016

VOICESInterview

LYZA GARDNERWords by  Jim McCauley Photography by Lisa Boomer

 

Cloud Four’s co-founder talks aboutexciting new web technologies, andthe dangers of measuring yourself

against the industry’s standards

Page 33: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 33/116

 

 june 2016 

33

Interview

  IN

 job: CTO a

co-founder, Cloud Fo

t: @lyzadang

w: www.lyza.c

Page 34: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 34/116

 “I actually dropped out of high school

when I was 14, because I hated it, ”

reveals Lyza Danger Gardner. She’s not your

average high school dropout, though – what

she did instead was to go straight to univer-

sity. Allowed by Portland State University to

test in instead of finishing school, Gardner is

one of those developers who started on an

arts degree and then discovered web develop-

ment along the way.

“One day I was in the library and I was

playing with one of the first web browsers,

probably Mosaic or something. I happened

to click on the View Source option and saw

HTML, and I was like, oh wow, this totally

makes sense to me.”

This was back when the only way to learn

HTML was to be self-taught, and that is

exactly how Gardner started on the path that

led to her to co-found Cloud Four in 2007. The

studio launched with a focus on the mobile

web, the principles of open, transparent work,

open source, education and respect.

“What we wanted to do – and this sounds

kind of aspirational or sort of loosey-goosey,

but in retrospect it’s a legitimate thing – was

to create an organisation that internally

fostered the people involved and treated them

with great esteem,” she tells us. “At the same

time, we wanted it to be constantly looking

at the edge of what the web can do, and helping

shepherd it to the right kind of future.”

OLD FIR AND NEW TECH

Based in an old warehouse in Portland,

Oregon (“There’s a lot of exposed brick and

high ceilings, and because we live in the fir

forests of the Pacific Northwest, all the floors

and stuff are old fir, and it’s lovely”) Cloud

Four has been going for eight years. “We’re

kind of mature compared to the technology

startups in the area, ” says Gardner, “but

we’ve stayed very small. There’s a grand total

of about 10 of us.”

Top of Cloud Four’s job list at the moment

is a subject close to Gardner’s heart: service

workers. “It’s a script that stands between

your client-side web application and the

network, ” she explains, “so you’re able to

intercept network requests from your ap-

plication and respond to them in different

ways as makes sense.”

Service workers can be used to explicitly

cache items to save on server requests and

provide a good offline experience. However,

Page 35: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 35/116

Interview

  june 2016 

35

this current project is taking things to a

whole new level, creating a production-class

of solution for Smashing Magazine’s site.

“It’s a very high-traffic, high-performance,

complex WordPress site with a lot going on.

Actually trying to make a service worker

for them that performs well at scale is going

to be an interesting challenge.”

PUZZLES AND

PATTERNS

A huge part of Cloud

Four’s work is responsive

design. One thing

Gardner has noticed is

how well responsive has

bedded in. Rather than

having to sell responsive

to sceptical clients, now-

adays the studio’s role is more helping them

improve the way their site works across

different devices. “A lot of our clients are

starting to integrate pieces of that kind of

thinking into their work, but we can come

in and help with the big picture and the

cutting-edge stuff and bringing it all

together and the best practices.”

One of Cloud Four’s specialities is convert-

ing existing sites to responsive without

having to throw everything out and start

again. In order to do that, the team uses

pattern libraries.

“It’s interesting to take a site, break it down

into the constituent patterns, break those

patterns down and build a library of them,”

Gardner explains. “And then you start

piecing them back together in the combina-

tions that make up the elements on the

page and, in the end, the

whole page. You make

minimal adjustments to

the way the site feels for,

say, the desktop browser

for which it was origi-

nally designed.”

This approach ensures

the site is supported com-

fortably across a lot of

different platforms and

screen sizes. “That’s a complicated puzzleto solve, and it’s one that Cloud Four really

puts a lot of energy and focus on.”

Gardner is also currently refactoring the

internal software the team uses to create its

pattern libraries (which come in the form of

a website), so it can be open-sourced.

INDUSTRY YARDSTICKS

Something that’s clear about Gardner is that

she thrives on puzzles and on keeping pace

with the ever-changing world of web devel-

opment, even when it seems a hopeless task.

The aspect that’s challenging her at the

moment is CSS. “It’s becoming so powerful

that being an expert in CSS is like a field unto

itself at this point, and sometimes it feels

beyond me,” she admits.

This feeling hooks into the theme of

Gardner’s talk at July’s Generate conference

in San Francisco (netm.ag/gardner-280).

Entitled ‘Everyone Else is so Clever’ , the

presentation will address how web develop-

ers are in the habit of continually comparing

themselves to world-class performers, and

 just how demotivating this can be.

“One of things that’s most rewarding for

me is to share with other developers the

psychological challenges of being really

good at what we do and not recognising it,”

she tells us. “Or just feeling the stress of the

kind of eternal change we’re facing every

single day.”

Part of this stress comes from comparing

yourself to others. “I see people who are

producing three open source projects a week.

That’s really cool, but part of me feels like

I’ll never be able to do anything like that, so

why even try?’ Yardsticks of success are

challenging, there’s no standard method to

establish whether you’re really good at

“CSS is becoming sopowerful that beingan expert in CSS is

like a field untoitself. Sometimes itfeels beyond me”

Page 36: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 36/116

VOICESInterview

36 

 june 2016

what you do.” She goes on to explain that

because being a successful web developer

requires a good general overview of

everything going on, it is very difficult to

specialise in a particular topic.

What this does mean, though, is that

there’s plenty to keep Gardner busy. She’s

passionate on the subject of performance,

and delighted that advances in browser

technology and protocols, plus the growth

of HTTP/2, are bringing with them improved

web performance. However, this is countered

by frustration that some are taking advan-

tage of these improvements by making

poorly performing sites that seem to work

on a fast connection, but really don’t when

it matters.

Gardner blames this on a combination of

poor education, time pressures and a lack of

focus on the part of the developer. “It’s easy

to throw a lot of crap at a web page; it takes

a different perspective to step back and think

with a performance angle, but it will serve

you well in a lot of ways,” she says. “It’s not

 just that it’ll make your site smaller, as a side

effect it will typically become more robust,

less fragile, and clearer and easier to main-

tain as well. People don’t necessarily think

about that.”

Gardner feels that in the long term it

needs to become much simpler to make

well-performing websites. This means

there’s an onus on standards- and browser-

makers to keep pushing performance in APIs

and browsers.

“As much as I do want developers very

much to take responsibility for their sites’

performance, ” she points out, “there’s a

responsibility in all parts of the ecosystem

to keep that moving forward.”

PRESSING

AHEAD

Moving forward is a theme

that seems to be on

Gardner’s mind constant-

ly; she’s fizzing with ideas

on where the web ought to

be going, and a mine of

information on new tech-

nologies that will change

the way it works as well as

how we interact with it.

We discuss Google’s Physical Web project,

whereby beacons attached to physical objects

can broadcast a URL via Bluetooth; sort of

like QR codes, but ones that people might

actually use.

“That’s a very good comparison, ” she

remarks, “but the idea is that it takes a little

less work. The things are around you waiting

to be discovered and not bothering you until

you look for them. So you might be 100 feet

away from a billboard but be able to interact

with it without having to walk up to it, get

your phone out, launch the camera or

whatever and take a picture of the QR code.”

Constantly driven by the possibilities of

the web (“There are a lot of developers around

the world who are really excited about the

web, so I hope we can just make it work for

everyone and continue being a really power-

ful platform”), Gardner brings herself back

down to earth with an

assortment of anachro-

nistic hobbies: letter-

press printing, distilling

essential oils in her

Portuguese alembic

copper still and main-

taining a library of old

and rare books.

She thrives on it, she

tells us, partly because

it involves working with tangible materials

in the real world, and partly because of the

limitations this brings. “It slows me down,

 just because I’m working with things that

are actually things. With software and the

web and all the software tools we have, it’s

like the sky’s the limit, you can do anything,

and sometimes I like to have hobbies that

restrict me in certain ways.”

Next month: We catch up with Google

Ventures’ Braden Kowitz

“There’s aresponsibility inall parts of the

ecosystem to keepmoving forward

with performance”

Page 37: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 37/116

  june 2016  37

Opinion

  CAREERS

    P   R   O   F   I   L   E

Harvey Wheaton on why immersing yourself inthe tech community could land you your dream job

If ever there was a time to be in

digital, it’s now. The tech sector is

bursting at the seams with new ideas and

extraordinary opportunities for anyone

who can code. And there are thousands of

companies, from disruptive startups to

global giants, inviting programmers to

come along for the ride.

But to get a job in tech, it’s not just

hardcore software skills you need – ‘soft

skills’ are just as important. Any extra-

curricular activity over and above the

qualifications you’ve earned demonstrates

a genuine interest and passion for the

industry. When embarking on a career in

a fast moving and ever-changing sector,it is vital you do everything you can to

stand out from the crowd. That’s where

community comes in.

THE ONLINE COMMUNITYContrary to popular opinion, we coders are

a sociable bunch and like nothing more

than to communicate with others in our

industry. Online communities, also known

as forums or discussion boards, have grown

up around every new language or method-

ology as it came along.

They exist as a place for you to be

curious, ask questions, share information,

help you become a better programmer

and allow the industry to move forward.

Use the community to engage with like-

minded people, learn new code and hacks,

access learning resources, or even find a

mentor or coding buddy to learn with.

First and foremost, it’s important that

you find a community that suits you. Take

a look at one of the most popular options,

like Stack Overflow or Reddit, as a starting

point. From there you can explore others

with more specific niche interest. Havingfound one you like, it’s time to get involved.

The more you put in, the more you will get

out. You are the community, so be sure to

make the most of it.

THE LOCAL COMMUNITYOnline is great, but remember you have to

live and work in the real world. This means

socialising in person with your local com-

munity and building your own network.

There’s an old adage that still rings true:

it’s not what you know, but who you know.

And there’s nothing quite like a room full

of motivated business owners to put you

– stand by for another adage – in the right

place at the right time.

Wherever you are in the world, get to

know your local tech events and cut your

networking teeth by heading along to a few

socials. It may seem daunting at first, but it

does get easier. After having experienced

a few, it’s likely you will find ones you feel

are more useful and relevant to what you

are passionate about.

Finding these events is not difficult.

Check out your local startup incubator

(these are springing up all over the UK)

and register for  Meetup.com  to find ‘your

people’ and pin down the most relevant

events. Again, go for the most popu-

lar gatherings and from there you will

naturally gravitate towards the ones that

work best for you.

When you network, you are not just

gaining exposure to the people in the

room, you are building connections with

their extended network too, making

yourself visible to people far beyond

whoever you have just shaken hands with.

You never know what will happen or where

a new contact will lead. A new job, a new

country, a new language?

Use socials not just to tell people about

yourself but to ask questions. Be curious.

Find out about the innovations and ideas

that will get you out of bed in the morning

and the job you can see yourself working

full-time in.

As the tech industry develops and attracts

more and more people, it’s important to

recognise the value of being an active

member of the community, both on and

offline. Whether you use the community to

learn from or to build a web of connections,

employers and recruiters will recogniseyour passion and the genuine interest you

have in tech. And it is this energy and focus

that may well land you your dream role at

your dream company in this exciting and

wonderful industry.

Harvey (www.harveywheaton.com ) is the CEO

at CodeClan, where he coaches software

development teams to transform their workflow.

He’s also the chairman of Scrum Alliance

GO COMMUNAL

Page 38: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 38/116

VOICESBig question

38 

 june 2016

 STEVE SOUDERSChief SpeedCurver, SpeedCurve 

www.speedcurve.com

Most website owners replicatedifferent conditions (56K, 3G,

etc.) with WebPageTest – but inreality, network conditions change.For accurate results, Headspinprovides access to real mobilenetworks in places like Bangaloreand Rio de Janeiro, for free.

The conditions for a single mobilecarrier also vary throughout theday. In most cases, I use SpeedCurvewith emulated network conditionsbecause it’s easy and consistent.To test with more realistic mobilenetwork conditions, I drop intoWebPageTest using the Headspinagents. I correlate these synthetictest results with RUM (real usermonitoring) metrics to understandwhat the user experience is like.

Your site might work great on your super-speedy home connection,but how will it perform in the wild? Web pros share their testing tips

HOW DO YOU SIMULATENETWORK CONDITIONS?

  WEB PERFORMANCE

 PAUL IRISHFrontend developer, Google 

www.paulirish.com 

For the web, latency is the most influential

network variable; while throughput/

bandwidth drops considerably on 3G and 2G,

changing it doesn’t impact web performance

as much. 150ms is a decent figure for ‘typical’

mobile latency, but you should test 300ms

as ‘typical slow’ as well. How? In the Chrome

DevTools, hop over to the Network Panel.

On the top toolbar you can choose a throttling

preset, or define your own custom preset.

ZENO R OCHADeveloper advocate, Liferay 

www.zenorocha.com

It’s very easy for us to forget

about other users’ network

conditions when we’re at work

with our fibre optic internet, butperformance matters. I use

Chrome DevTools to emulate

different network conditions. You

don’t have to install anything and

it doesn’t affect traffic from other

tabs. Also there’s a variety of

presets, including Edge, 3G, 4G,

Wi-Fi, and even offline.

Page 39: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 39/116

 

 june 2016 

39

RESOURCES

 MARCY SUTTON 

Senior frontend engineer, Deque 

www.marcysutton.com

I test website performance usinga variety of tools, including the

Network Link Conditioner from Apple(downloadable as part of Xcode) and thethrottling mechanisms built into desktopChrome and Firefox. Loading a site onactual mobile networks with limited

bandwidth and higher latency is agood practice as well – you’ll identifyslowdowns impacting users around theworld, or even yourself as you catch thelast bit of connectivity when heading intothe wilderness. That reminds me, I needto do some more testing!

ZACH LEATHERMAN 

Web Developer, Filament Group

www.zachleat.com 

Set WebPageTest to simulate 3G on

the Connection select. Chrome also has

throttling built into its DevTools, and Canary has

added a really useful filmstrip view. But perhaps

most importantly, we need to know what

happens when requests fail (yes, JavaScript

requests can fail). SPOF-O-Matic is a Chrome

extension that will analyse your site for single

points of failure (SPOFs), and WebPageTest

provides a SPOF tab that allows you to set

specified domains to silently fail.

HARRY ROBERTSConsultant frontend architect

www.csswizardry.com

My preferred quick-and-dirty way of testing is to use Chrome’s throttling.

Here I can simulate preset network conditions and latency. However, there

is no replacement for testing in the wild. Late last year I did some performance

optimisation work for David Guetta/Euro 2016, and I actually carried out most

of the work over train and hotel Wi-Fi. These conditions were far more realistic

(slow connections, dropping packets, etc.) and gave me a great idea of how the

site was likely to perform in the real world.

APP CONDITIONS

With apps on mobile devices facing

possibly the most turbulent network

conditions, developers need to pay attention

to things like high latency and DNS delays.

Thankfully Apple’s Xcode tool does exactly this.

Yogev Sitton explains how to use it to put your

app through its paces: netm.ag/xcode-280 .

PROBLEM SOLVING

Network connectivity is just one issue

that separates fast websites from slow

ones. To see how it all works as part of a larger

picture, founder and host of the ScaleYourCode

podcast Christophe Limpalair sheds some light

on the situation in this comprehensive article

(netm.ag/performance-280 ).

IAN CARRICOPerformance engineer,

Vox Media

www.iamcarrico.com

We use WebPageTestfor some standardised

monitoring. Locally, we use ChromeDevTools or Charles to imitate theWebPageTest throttling. We’re

working on getting a good RUMtool to monitor what real users areseeing (and looking at outliers aswell as quartiles). We also activelyuse our sites under varyingconditions, usually within thebrowser embedded in the Twitteror Facebook apps. Data can only goso far – understanding our users’frustrations is invaluable.

SIMPLE SIMULATIONS

Sometimes a simple trick can make it easy

to test varying network conditions. In this

short post (netm.ag/simulations-280 ), Anthony

Fresina explores quick fixes for iOS and Android,

including Wi-Fi-free environments, emulator

commands and settings adjustments that could

save you headaches further down the line.

Page 40: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 40/116

LONDON 21-23 SEPTEMBER 2016

Generate is back in London for its fourth year – join us for three

amazing days of insight, inspiration and practical tips

www.generateconf.com

TICKETS ON SALE NOW

LEA VEROUFRONTEND DEVELOPER

lea.verou.me

BRUCE LAWSONWEB DEVELOPER

www.brucelawson.co.uk 

IDA AALENUX DESIGNER

www.idaaa.no

BRENDAN DAWESINTERACTION DESIGNER

www.brendandawes.com

Page 41: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 41/116

  june 2016 

41

Q&A

an opportunity to design smaller, low-commitment

experiences that are modelled after today’s highly

mobile and social web. For example, what is the VR

equivalent of a small, meaningful, easily shareable

social thing like an animated GIF? How can VR learn

from progressive enhancement to deliver more

universal experiences?

net: What do you think is the role of design fiction

in the industry at the moment? Do you use this

approach in your day job?

SR: Design fiction is an emerging technique, but

an increasingly important one. As software seeps

into the world, products are not only growing in

complexity, they must also comfortably co-exist

within rapidly evolving ecosystems and mental

models. Design fiction is a means of prototyping

these more complex scenarios.

Rather than describe the most optimal future,

design fiction challenges teams to envision and raise

questions about their product’s place in the world.

What will it mean to co-exist with the product?

Who will the product help? Who could it hurt?

We increasingly use this technique to help socialise

and explore these challenging issues well in advance

of building a product.

net: You’re talking about the Internet of Things

at Generate San Francisco. Why does this interest

you in particular?

SR: I often speak to conference delegates who feel

the Internet of Things isn’t something they should

really worry about, because they primarily design

or develop for the web. This may have been true a

few years ago, but aspects of IoT are now seeping into

all areas of product design. My aim with this talk is

to break through some common myths and help you

think about IoT in a way that’s more relevant to your

day-to-day work.

net: It feels like the IoT has been slow to arrive.

What do you think has caused this?

SR: IoT touches so many areas that most people don’t

really know what it is. Industrial IoT is growing quite

well, but at the consumer level many products still

feel like a solution in search of a problem. I’m hopefulnew technologies such as Web Bluetooth and the

Physical Web will enable far more experimentation.

Faster prototyping, more frequent iteration, and more

ad-hoc consumer testing should mean more carefully

designed products, with better market fit, and

more time for consumers to understand how these

products could fit into their lives.

Stephanie Rieger will be speaking at Generate San

Francisco in July: www.generateconf.com

STEPHANIE RIEGER Q&A

net: You co-launched yiibu in 2006. What was

your original aim, and has this changed at all?

SR: yiibu’s aim was always to design for mobile

– although it was never really about the technology.

Even in 2006, we were fascinated by the use,

re-appropriation, and ultimately evolution of

technology at the hands of users. Although mobile

is now well-established, much of our work still

involves working with teams to determine how their

technical, design and commercial requirements

intersect with both established and emerging

user behaviours.

net: What do you do day-to-day?

SR: Lots of reading, thinking and discussing,

interspersed with epic bursts of writing and design.I’m also the resident bug-catcher. Hardware or

software, if there’s a bug I’ll probably find it.

net: Tell us a bit about an interesting project

you’ve worked on recently.

SR: We just soft-launched a side project called

oorümchi (oorumchi.com) that aims to explore the

intersection of just-in-time media and virtual

reality. Although the current narrative around VR

often assumes full immersion, we believe there’s

The co-founder of yiibu on theevolution of technology

  INFO

Job: Co-founder, yiibu

w: stephanierieger.com

getrevue.co/profile/yiibu 

t: @stephanierieger

Page 42: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 42/116

NEVER MISS AN ISSUE!

NETM.AG/NET-IPAD (UK), NETM.AG/NET-IPAD-US (US)

Download net’s digital edition for your iPad, iPhone or iPod Touch

GOT AN APPLE DEVICE?

#273 NOV 2015 Join the Sketch revolution!We help you make the switch

to the new top tool. Plus:what makes a great portfolio

#278 APRIL 2016We show you how to top up yourtool stack without spending apenny, and walk through thebasics of CSS blend modes

SAVE UPTO 31% 

WITH A DIGITALSUBSCRIPTION 

SEE PAGE 24

#279 MAY 2016Discover which areas you should

be skilling up on right now, andlearn how to test and optimiseyour sites on all devices

Page 43: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 43/116

CATCH UP ON ANY ISSUES YOU’VE MISSEDBY DOWNLOADING OUR DIGITAL EDITIONS

net is also available on Google Play and Zinio, as well as Kindle, Nook, Windows 8 and more

PREFER TO READ ON ANDROID, PC OR MAC?

NETM.AG/NET-GOOGLEPLAY NETM.AG/NET-ZINIO

#277 MARCH 2016Discover the future of CSS,including CSS Shapes andPostCSS. Plus, we reveal thetop design trends for 2016

#276 FEB 2016We run down the prototypingtools you need to sit up and takenotice of in 2016, and show youhow to get started with ES6

#274 DEC 2015Learn how to build perfectlayouts without media queries,and take a look at the 15 APIsthat will solve your dev problems

#272 OCT 2015We reveal the UX insightsyou can glean from Google

Analytics, and explore howto design for smart devices

#271 SEPT 2015We tackle the new designchallenges presented by

the advent of wearabletechnology

#270 SUMMER 2015The freelance special: welook at the pros and cons

of going it alone, and sharetips for landing big clients

#269 AUG 2015Designers share their tips forbuilding a better web. Plus,

discover how to optimiseyour sites for mobile

#275 JAN 2016Your guide to great UI design.Plus: We introduce flexbox – theCSS module that will help youtackle complex site layouts

Page 44: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 44/116

GALLERYInspirational sites

44 

 june 2016

Sensational design and superb development  w: www.annadahlstrom.com 

t: @annadahlstrom

ANNA DAHLSTRÖM

Anna is a Swedish UX

designer in London.

She’s the founder of

Glimt, and likes fika

and flexible working

LOL Colors is a personal project by MacKenzie

Child, who designed, coded and launched the

colour palette collection site in just 24 hours as a

challenge to himself. For now everything is curated

by Child himself, but there is the potential to open it

up for others to add their own palettes. It was this

possibility that prompted Child to base the site on

Rails instead of something like WordPress.

The site works seamlessly from the big screen to

the small screen, and I picked it for its simplicity and

appealing design, combined with the curated angle.

Although creating the MVP took longer than expected,

Child finished the site in roughly 20 hours. “One of the

reasons it ended up taking so long was that I kept going

down rabbit holes and trying various things that ended

up not working,” he explains on his vlog (netm.ag/child- 

280 ). “If I ever do this again, I just need to plan better

and think through everything I’m going to do before I

 jump in to actually build it.”

When asked about what’s on the horizon for LOL

Colors, he says: “The two big things I want to do next

are to allow users to create their own palettes or create

collections of their favourites and show examples of the

palettes in use.” Personally, I can’t wait to see it.

  RAILS, SASS, LOTS OF COFFEE

WWW.LOLCOLORS.COMMacKenzie Child www.mackenziechild.me

Page 45: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 45/116

  june 2016 

45

Inspirational sites

When NBCUniversal reached out to UNIT9 to create an interactive second

screen experience for the new Syfy series The Magicians , one of the

challenges they were presented with was to think of a magic lesson for every

episode. The aim was to create a website that was more informative than game-

like, but still offered plenty of challenges and content for the user to discover.

In close collaboration with Syfy, the team at UNIT9 created 13 games for the ‘Magic

lessons’ part of the website. These can be played on all devices and adapt to the

device in question.

“The challenge on the technological side was building standalone games for the

13 lessons, which each required different tech – from AngularJS and WebGL to 3D

animations,” says UNIT9’s Ligia Stan.

After each episode has aired, the user can return to the site and take a different

lesson, as well as learning more about the characters. The team needed to ensure

the code, copy and assets became accessible at the same time the episode aired,

which meant finding a custom way to release content, beyond classical CMSs.

This was the team’s biggest challenge, but the result is one of the better examples

of its kind.

WWW.BRAKEBILLSU.COMUNIT9 www.unit9.com

“It’s technologically brilliant(on a fast connection) andlovely visually”

  HTML5 VIDEO, WEBGL, CSS3 ANIMATIONS

Page 46: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 46/116

GALLERYInspirational sites

46 

 june 2016

S I T E O F T H E

M O N T H

Allbirds is a new sports shoe brand from

the land of 29,221,344 sheep. It began when

co-founder Tim Brown observed the amazing qualities

of Merino wool, and wondered why it had never been

used in footwear before.

The website, which has been built using Shopify,

mixes lifestyle photography with illustrations. The

result is a delightful experience that doesn’t just tell

the story behind the Allbirds, but also gives you a feel

for the product itself.

“It’s designed to showcase the incredible attention

to detail and thought behind our product design,”

explains Brown on the reasoning behind the site.

site to life and articulate our mission of making better

shoes in a better way.”

Both Brown and the Red Antler team talk of their

extreme dedication to the UX of the site and how they

leaned into the details that so often are overlooked.

The mundane FAQ section is brought to life with

animated GIFs, and illustration is used throughout the

site as unexpected storytelling motif. It’s one of the

aspects I love most.

  SCROLLMAGIC, GULP, BROWSERIFY

WWW.ALLBIRDS.COMRed Antler www.redantler.com

Page 47: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 47/116

  june 2016 

47

Inspirational sites

“I love how the UI educates users about thesignificance of colour in search results. There’slots of content to handle, and yet they manageto make it look clean and effortless”

The website for Authentic Jobs,

a service that connects creative

professionals with great companies,

recently got a complete design and

code overhaul.

“We really wanted to give something

new to both employers and job-seekers

in this redesign,” says Adam Spooner,

who developed the site. “We added a

few new required fields – most notably,

skill level and compensation – that

we hope will make the job-seeking

experience even better.”

As part of the process, the team

reworked UI components that had

remained untouched for years and

varied between screen sizes. The new

design is fully responsive – anyone can

reach the site on any device, and access

almost all functionality, regardless of

their viewport dimensions.

The application process has also

been revamped, and the reimagined

listing page puts the spotlight firmly

on the job itself. Employers are now able

to include hero images to help convey

more of the personality and culture of

their company.

“We intentionally stripped away even

more of our branding so employers could

link to the application process as if it

was their own,” says Spooner.

The posting process has been

improved with the use of the Redactor

text editor. Spooner explains how

initial tests have indicated that it’s

much friendlier to those who copy

and paste job descriptions from Word

documents. Overall, the result of the

redesign is carefully crafted minimalist

beauty, just as you would expect from

Authentic Jobs.

  REDACTOR, JQUERY-FILE-UPLOAD, SKETCH

WWW.AUTHENTICJOBS.COMAuthentic Jobs www.authenticjobs.com

“Allbirds isthat rarest ofsites: smartlydesigned withan authenticallypersonable toneof voice andeffortlessly usable.The split-pagecheckout processand microcopy tipsare particularlyneat”

Page 48: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 48/116

GALLERYInspirational sites

48 

 june 2016

GOOGLE STREET VIEW: PETRAGoogle Brand Studio

Petra in Street View (netm.ag/petra- 

280 ) allows anyone to explore the

ancient city of Petra. The city is brought to

life through photo sphere, Street View and

narration by Queen Rania Al-Abdullah of

Jordan. Viewers can explore interactive

hotspots including the iconic facade of

Al-Khazneh (the Treasury), an 8,000-seat

amphitheatre, as well as the tombs and

temples nearby.

The experience took days to capture

with the Google Street View Trekker,

a 22kg piece of equipment that carries

15 high-resolution cameras and captures

a photo every 2.5 seconds. It’s the fifth

and largest Street View project that

Google has launched in the Arab world,

and it’s pretty magical to be able to

explore one of the wonders of the world

from your own home.

It is predicted that virtual reality will

really take off in 2016, but we mustn’t

forget about the possibilities immersive

experiences like Google Street View’s

Petra create, which are accessible to

in Street View, I hope I’m one day able to

go there in person.

  RWD, HTML5 AUDIO AND VIDEO

Page 49: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 49/116

  june 2016 

49

Inspirational sites

WWW.ASHORTJOURNEY.COMcher ami www.cher-ami.tv

A Short Journey was born in the

summer of 2015, when the team

at cher ami took a break from client

work to collaborate with 3D artist Benoît

Challand. At first it was supposed to

be a short film, but it turned into an

interactive story about a journey to the

sea when the team realised a website

could involve the user more.

“We designed some elements in 3D

with Cinema 4D and other elements in

2D with Photoshop. The idea was always

to obtain a fresh design by combining

modern technology and classical

techniques,” says founder Jean-Frédéric

Passot. “We used WebGL to recreate each

scene in 3D and even if there are a lot of

tricky technical aspects in this website,

the goal was always to offer a nice feeling

of a sunny journey.”

The website launched as a greeting

card for the new year, to warm up clients

on cold winter days. A Short Journey

is a simple yet lovely example of how

interactivity can be used to move an

experience along.

  HMTL, JAVASCRIPT, WEBGL

Page 50: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 50/116

GALLERYInspirational sites

50 

 june 2016

Marvel started off as a side project in 2013. Today,

265,000 people use it to communicate their ideas. In

the newly released version, several parts of the app have been

reengineered in React to work faster and smarter, and the

web interface has been cleaned up and redesigned.

“A large part of the redesign was spent creating a style

guide based on a functional CSS principles, where we used

immutable classes to apply styles,” says co-founder Murat

Mutlu. “This has cut development time down drastically

and added consistency across the platform.”

As the Marvel team has grown, so has the scope of the

product. In version 2.0 a number of features have been

introduced, including new user roles and folders for organising

work. There is also a Stories section, with case studies from

the likes of ustwo, Deliveroo and Marks & Spencer.

With Marvel 2.0 launched, the team is now focused on

improving existing features and creating new products,

all aimed at removing friction and complexity and making

prototyping fun and accessible – something the team is

certainly doing a great job with.

WWW.MARVELAPP.COMMarvel www.marvelapp.com

  REACT, PUSHER, DJANGO

Page 51: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 51/116

WORTH£371

WHAT YOU’LL GET 12 issues of net in print and digital

 Annual Industry Report worth £100

 4 months free when you sign upfor a Treehouse subscription

 Discounts to industry eventsincluding Generate

 Design annual worth £9.99

 Special discounts from selectedindustry partners

JOIN TODAY VISIT www.myfavouritemagazines.co.uk/netpro

For more than 20 years, net magazine has been at theforefront of web design and development. Join net Pro and

as a special introductory offer, you can save £30!

YOU ARE INVITED

TO JOIN NET PRO

Terms and Conditions: Pricing and savings quoted are compared to buying full priced UK print and digital issues. You’ll receive 12 issues in a year.Prices correct at point of print and subject to change. Full terms and conditionsbit.ly/magterms . Offer ends 31 May 2016

Page 52: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 52/116

Sublime design& creative advice

HOW WE BUILT 64Penguin Books needed an online presence that

unified its existing brands and microsites. We

find out how Clearleft rose to the challenge

PROFILE 58We chat to one of the founders of EPIC, the

small Belgian agency that snags big clients and

refuses to be constrained by technology

FOCUS ON 57Gone are the days of web-safe colours – now

we are free to experiment. Sam Kapila explores

how to choose the colours for your projects

DESIGN

 CHALLENGE

THIS MONTH FEATURING...

BRIEF

This month we’d like you to design a website for abrewery. Tap into the artisan craft beer trend, embraceold fashioned ales or branch out into something newaltogether – it’s up to you. Just make sure you capturethe imagination of your beer-loving audience.

    P   R   O   F   I   L   E   S

COLE HENLEY

Cole is a bearded socialist, teacher, fatherof two, and technical director at Mudw: www.ournameismud.co.uk t: @cole007

CHRIS ROBINSON

Chris is a freelance web designer andfrontend developer based in Hertfordshirew: www.thelonelypixel.co.uk t: @lonely_pixel

AIDEN BENNET T

Aiden is a frontend web developer at Aiir,a platform for radio station sites and appsw: www.aiir.com t: @AidenLBennett

This month ...

BREWERIES

Page 53: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 53/116

 

 june 2016 

53

Design challenge

 MY MONTH

What have you been

doing this month?

Tidying up my portfolio

and working on a

redesign for theweb

designforum.co.uk .

Which sites have you

visited for inspiration? 

None outside the usual

culprits. I have a bit of

an infatuation with the

colour yellow at the

moment as I’ve recently

redecorated my flat

– it seems to be

subconsciously

affecting my designs.

What have you

been watching? 

Mozart in the Jungle .

What have you

been listening to? 

Classical (see above). 

CHRIS ROBINSON

PEBBLETONS An innovative split-screen design enables this site to promote two different products at once

Pebbletons is an established brewery

and a well-known maker of scotch. It was

very important that its new website promoted

not just its fabulous range of scotches but also

its beers, which were going mostly unnoticed by

users on the old website. With this in mind the

homepage is split into two halves, with one side

dedicated to each type of drink.

Strong background colours complement the

product photography. As the user scrolls down

the site, the products change and animations

kick in, with the products on the left sliding

up and the ones on the right sliding down.

The background colours also change to match

the new products.

On mobile devices the split is removed and

replaced with a toggle that sits behind the

product imagery, allowing users to quickly

switch between the two categories. Strong CTAs

are used throughout to encourage users to click

through and find out more.

 CLOSE UP

(1) Navigation is tidy and simple to keep the look of the

site clean. On mobile this is replaced by a hamburger icon,

which toggles an off-canvas menu that slides in from the

top. (2) Contrasting background colours are used to mark

out the two halves of the website. As the user scrolls,

the colour changes and switches from the left side to the

right to quickly shift emphasis from one product type to

another. (3) A pager is used to indicate which sect ions the

user is currently viewing. To keep things simple there is

a maximum of three sections, which means a total of

six products can be promoted on the homepage.

(4) I didn’t want to use generic fullscreen background

images. Instead I opted for strong photography and

bold colours to really show off the products. (5) When

you transition from one section to another, the word in

the background animates and changes to describe the

products currently in view.

2

1

3

4

5

Page 54: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 54/116

54 

 june 2016

SHOWCASEDesign challenge

  AIDEN BENNETT

T IM SYKESThis simple site has broad appeal and ensures all users can find exactly what they want

 The Tim Sykes website provides users with

all the information they might need.

When they land on the homepage they are

greeted with a general overview of the product.

More detailed information about the range of

beers and events can be accessed by clicking on

the accompanying content sections, to ensure

the homepage itself doesn’t become cluttered

and overwhelming.

For the navigation, I wanted to stick with

patterns the user was already familiar with.

The fixed header has been very popular over

the last few years as it provides an accessible

way to navigate pages. The hamburger icon

is also widely known and most users now

understand its function.

When the hamburger menu is open the icon

transforms into a cross. For this I would use

 JavaScript to add a class and CSS animations

to rotate the lines.

 CLOSE UP

(1) A large image with clear accompanying text towards

the top of the page ensures the user instantly knows

what kind of product the site is for. (2) Fixed navigation

at the top of the viewport provides a way for users to

easily move around from wherever they are on the site.

(3) Using CSS animation, the hamburger icon transforms

into a cross when the menu is open, to let the user know

they can tap again to close the menu. (4) The store locator

lists Tim Sykes distributors, making it easy for potential

customers to find the product they ’re after. (5) I have

included a jQuery content slider/carousel lower down the

page to help display information that isn’t vital but st ill

helps to promote the beer.

MY MONTH

What have you been

doing this month?

Improving my icon

design skills in Sketch

3, learning how to

use Principle for

prototyping, and

exploring how I can

further visualise

website interactivity

using mockups.

Which sites have you

visited for inspiration? 

lukejamestaylor.com ,

www.takeitapp.co/en 

What have you

been watching? 

11.22.63 , The Simpsons ,

Skins. 

What have you

been listening to? 

New Found Glory,

Slayer, Blink-182. 

4

1

2

5

3

Page 55: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 55/116

 

 june 2016 

55

Design challenge

  COLE HENLEY

BRUISERThis no-nonsense offering draws its branding from its heritage, and has a flavour that packs a punch

 Bruiser is a new brand of independent,

no-nonsense craft beers brewed in a

former amateur boxing club in the industrial

centre of Sheffield. Because of our roots,

the branding is inspired by the culture and

terminology of the amateur boxing ring.

The site aims to provide an introduction

to the brand, explaining the process behind

brewing and the individual qualities of each

beer. Whilst ultimately a physical sport, boxing

is defined by movement and lightness of foot.

Similarly, Bruiser beers combine strength with

a fine balance of delicate and subtle flavours.

The design mirrors this apparent paradox, with

clear, sophisticated typography alongside dark,

gritty black-and-white imagery.

The site is responsive, to be built mobile-

first. Web fonts and technologies like flexbox

enable us to build simple, consistent layouts

without impacting on performance.

 CLOSE UP

(1) The design uses simple navigation for mobile and

desktop, and shuns the hamburger icon in favour of clear

language to signpost the key areas of the site. (2) Strong

use of high-contrast imagery communicates the brand

and story behind the company. (3) An interactive carousel

showcases Bruiser beers, highlighting the full range of

different options available and their individual qualities.

(4) Sophisticated web typography helps reinforce the

brand. The site employs the beautiful Abril Fatface for

headings and core messaging, which is contrasted with

the simple, geometric Quicksand for body copy. (5) The

magazine-style layout has been created using flexbox.

This lets us control layout between different viewports

and devices, providing a more linear mobile layout but

a more complex, grid-based desktop layout. (6) Logos

are all SVGs, to ensure the identity is crisp at different

resolutions and to keep down page size.

 MY MONTH

What have you been

doing this month?

It has been a crazy

month at Mud with

several site launches.

Which sites have you

visited for inspiration? 

netm.ag/micro-280  

– an entertaining

read about Alastair

Humphrey’s miniature

escapes.

www.viget.com  

– a cracking new

site design with anemphasis on what

they’ve learned

in their projects.

What have you

been watching? 

At this time of year a

lot of energy/emotion/

despair goes into

watching my beloved

MUFC’s fall from grace.

1

3

2

5

6

4

Page 56: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 56/116

33% OFFVPS

33% OFFPremiumHosting

50% OFFResellerHosting

6 monthsFREE

VPS Backups

USE CODE:

HIRBV33

USE CODE:

HIRBP33

USE CODE:

HIRBR50

CALL SALES ON:

0330 660 0255

Your websites deservegreat web hosting

The UK’s best web hosting backed by

free 24 x 7 support

Page 57: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 57/116

Focus on

  june 2016  57

COLOUR THEORY

 FOCUS ON

Sam Kapila’s take on choosing colours for web projects

 One of the best things about the

current web design scene is how much

more of a role is played by colour. The days

of web-safe colours are gone, and we can

focus on colour as a crucial design tool.

Here are a few things to keep in mind as

you choose colours for your projects:

First, go for colour contrast. Multiple

system settings, plugins and glare

protectors mean users today have total

control over how their screens look – so

it’s vital to keep contrast in our designs.

But there’s another reason why this is key:

colour-blindness. There are plenty of types

of this common impairment, and the more

contrast between content and background

colours, the less likely it is viewers will

become unable to see content.

Second, stray away from black and white.

Warmer or cooler shades of dark greys and

off-whites still provide ample contrast,

can work better with monochromic tones

or palettes, and look a bit more interesting.

Also avoid primary colours, which can give

off an elementary school art class or 1990s

web design vibe. With rgba() as a colour

option (including transparencies) in CSS

we can experiment a lot more!

Finally, use colour to draw the user’s

eye. Bold or unique colours can be used

as a way to draw attention to actions

(like buttons, clicks and so on) or to must-

see and must-read content. Similarly,

colour hierarchy can come into play to set

secondary content back so it supports (but

doesn’t distract from) the primary purpose

of a page, section or module. (1) The site for Pycon

2016 (us.pycon.

org/2016 ) is based

around several

inviting, bright

shades of blue. The

slate colour used for

unexpected colour

palette full of

vibrant, contrasting

shades. (3) The

site for art project

In Space We Trust

(inspacewetrust.

org ) makes use

of monochromatic

gradients, paired

with bright white,

bold typography.

Accent colours

create interest.

    P   R   O   F   I   L   E

the darkest areas

is a fresher look than

black. (2) Digital

communications

agency Details

(www.details.ch )

has gone for an

Sam (samkapila.com ) is a designer

living in Texas and an instructor

at The Iron Yard, an international,

immersive coding school

3

1

2

Page 58: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 58/116

58 

 june 2016

SHOWCASE

 PROFILE

The small Belgian digitalagency with lofty ambitions

EPICwww.epic.net

EPIC launched in 2009 with one clear aim:

keep the studio small but think big when

it comes to clients and quality. Together, the four

founders had everything they needed to lead the

studio to success – Hugues Lismonde covered

backend development, Benoît Rondeux was a

pro in project management, Morgan Leidgens

brought business savvy to the table and Karim

Maaloul had a background in web design and

interactive animation.

With the exception of Leidgens (who runs his

own company), the founders now each take

charge of a different department at EPIC. Along

with its groaning awards shelf and impressive

client list, the agency has caught the industry’s

attention for its innovative side projects and

internal experiments. We chatted to creative

director Maaloul to find out more.

net: Tell us how EPIC came about ...

KM: EPIC was founded seven years ago based on

the observation that the digital market in Belgium

was divided into two segments: large, Brussels-

based agencies with international ambitions and

small studios targeting local SMEs. Given that we,

as founders of EPIC, had already been working for

these so-called large agencies, we knew there was

this niche in-between to seize. We came up with

the idea of creating our own agency that was

limited in size but delivered the quality and

ambitious approach of a large, reputable one.

net: How do you stand out in a crowded industry?

KM: EPIC offers a unique blend of experiences:

between us we have worked for well-known

agencies, freelanced, been martial arts champions,

and launched a designer furniture shop. But the

common trait is that we are all driven by a genuine

Page 59: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 59/116

 

 june 2016 

59

 INFO

Location: Liège, Belgium

Established: 2009

Areas of expertise: UX and UI,

branding, interactive, motion des

illustration, digital strategy

Clients: Red Bull Media House,

Crop Trust, UPS, EXKi, Studio 100

Awards: Five FWAs, nine Awww

Site of the Day, CSS Design Award

Best Belgian Design Agency 2015

Page 60: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 60/116

60   june 2016

SHOWCASE

scheduled to work on. Work kicks off

at 9.30am, and we break for lunch at 1pm.

Lunch is often combined with a table

football tournament.

At 2pm we’re back on track, satisfied

and full of motivation. The show must go

on. Those who are craving caffeine have

a break at 4pm for coffee and chit-chat in

the kitchen. The day ends around 6pm with

a quick progress check from each of the

project managers.

net: How do you test UI?

KM: We are constantly looking to provide

the best interfaces for the websites we

produce, and at the heart of our approach

is empathy. With this in mind we begin

every project by systematically trying to

get under the skin of our clients and their

target audiences. We always ask a lot of

questions before coming up with a

suggestion. We are not used to doing

A/B testing ourselves, but we sometimes

outsource it to external companies for

Crop Trust EPIC has collaborated extensively with this NGOdedicated to safeguarding crop diversity, creating its branding,logo, website, annual report, animated video and more

Babel, the Cat who would be King This interactivebook required EPIC to master UX for children

Chill the Lion One of Karim Maaloul’s polygonexperiments and 2015’s most hearted CodePen

passion for everything related to digital

and we have this constant urge for quality

and creativity. This state of mind has been

conveyed in every single step of the projects

we have produced so far, and I’m sure our

clients can feel it from the first contact.

net: Talk us through a typical day in

the life of EPIC.

KM: We start the day off right with a fresh

lemon juice or cup of tea or coffee. First

thing we have our daily stand-up meeting:

together with the team, we gather to

discuss the different projects we are

certain projects (for example when it

involves kids or when there’s a need to

fulfil a very specific objective).

net: Can you tell us about your personal

polygon experiments?

KM: In the beginning, these experiments

were an attempt to learn three.js. I come

from the era of Flash and ActionScript,

and three.js brings me the same excitement

that coding a character in Flash did a few

years ago. After a few months of practice

I created Chill the lion (netm.ag/chill-280),

which became the most hearted and viewed

CodePen of 2015. Clients have started to

ask us to come up with concepts based on

these experiments, showing the same look

and feel.

net: Your interactive children’s book

Babel (babeltheking.com) is beautiful.

How did you approach the UX?

KM: Babel was created a couple of years

after my daughter was born. She was too

young to understand the story when I

started the project but it was amazing to see

what a 2-year-old little girl was capable of

doing with a tablet. She loved scratching

the clouds, and blowing on the iPad to

simulate wind. It was obvious which parts

were most appealing to her.

Children tend to be more intuitive and

spontaneous, and that’s also true when

it comes to UI and UX. Where adults like to

think before activating an option, children

are more open to trying things. That has

a huge impact when you want to build

Page 61: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 61/116

 

 june 2016 

61

a seamless workflow. Watching kids

play with the app was both an invaluable

help and a ruthless eye-opener. The project

was completely different from everything

we had previously done, both technically

and in terms of storytelling and user

experience.

net: For your work with the Crop Trust,

was it difficult to balance the needs of

the client and the user?

KM: The initial request from the Crop Trust

was to rebrand the organisation, build a

strong digital presence, find new ways to

share their vision and help them to support

their endowment campaign. In other

words: it was one hell of a challenge, and

their expectations were pretty high to say

the least.

Before we started to design anything,

we spent almost a month reading, talking,

meeting with the Crop Trust teams and

stakeholders, and benchmarking other

NGOs around the world. Why did we spend

so much time on this? Because no matterhow empathic you can be, it’s impossible to

solve a problem if you do not understand it.

And it also helped us narrow the scope of

the project and define the outputs more

precisely. While we were doing this we

had to keep an eye on the bigger picture

to come up with an innovative solution.

This approach ensured we stayed on the

same page from the very start of the project

and meant the Crop Trust could give us

more freedom. And that’s what every

agency dreams of, isn’t it?

net: Tell us a bit about your Spartans

vs Hipsters game (epic.net/mmxiv)?

KM: The game started with a brainstorm

about the yearly, boring topic of the New

Year’s greeting card to send to our clients.

The idea of sending ruthless Spartans

(which were part of EPIC’s previous

branding) to kill some cuddly hipsters

appealed to everyone.

We all had a lot to learn before we

could master a multiplayer, cross-device

HTML5 game. We also created a small paper

Spartan figure with conductive ink that the

player could place on the screen of their

smartphone and use to control their

Spartan within the game.

Making this project happen required

an amazing commitment from the entire

team. There were numerous challenges,

from the creation of the paper model, to

synchronising the players with the game

engine. Plus, everyone had to fit this non-profitable project into their schedules.

net: How did you structure the project

to ensure it stayed on track?

KM: Although it’s fun to work on projects

with no brief or client pressure, we learnt

from previous internal projects that it

was vital to first define the output of the

game, what we wanted to feature and what

experience we wanted to provide. We set

OFFICE CULTURE

What little things make yourlife worthwhile? 

Apps: Photoshop is my main daily tool;Sketch comes second but could quickly

become my favourite. I use Pocket to

save links to read later.

Audio: Fado [a kind of classical music

from Portugal]  helps me to code.

Reading: Currently Creativity Inc ,

the story behind Pixar.

What do you haveon the walls? 

Some dangerous designer wall

lamps we often bump into.

What will you do for lunch? 

Today is our special monthly ‘discoverylunch’, where one of the team presents

a topic they care about. Our two Italian

frontend developers have been assigned

the mission of cooking for all of us.

What hours do you work? 

As a husband and father of two, I strive

to find the right balance between work

and family time. I’m usually at the office

9am-7pm and I work for a couple of

hours in the evening.

What else do you doin the office? 

Discuss animation with the frontends,

and attend way too many management

meetings. I also (sometimes) wash the

dishes then give a roasting to those

who don’t wash theirs.

Describe your working culturein three words ...Wise, mighty, visionary.

KARIM MAALOUL

Partner and creative director 

Spartans vs Hipsters This popular game started out as a way to liven up the agency’s New Year card

Page 62: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 62/116

62   june 2016

SHOWCASE

a list of must-have and nice-to-have

features, defined a deadline and estimated

the resources needed.

We’ve always believed it’s essential to

keep an eye on those ‘ties’ to stay focused

on the final result. Paradoxically, we also

strive to never be limited by resources

or technical constraints if we believe

something is going to improve the global

user experience.

net: How do you ensure you get the

most from these experiments?

KM: We firmly believe that experiments

help us broaden our horizons. They

enhance our technological knowledge and

expertise while broadening our creativity

and boosting our visibility and credibility.

To ensure they’re effective, we always

respect three rules.First: Do or do not, there is no try.

Whatever your experiment, just do it! Make

an end product; make something you can

use and share. Experiments cost time and

money, the least you can do is to make it

useful for your portfolio, right?

Second: Sharpen your weapons. Just as

an athlete trains before a competition to

improve their abilities and develop new

techniques, experiments are the best way

to acquire new skills. It’s these skills that

will help you when you are competing to

win the sexy project of your dreams.

Third: Have fun! Nothing great is created

without passion. Experiments must be

something you love, and be refreshing

and really foster creativity.

net: What can brands do to better connect

with their audiences?

KM: Brands could pay more attention to

what their design agency advises them to

do! More seriously, a brand is something

emotional. Most of the greatest brands are

the result of passionate, long-term and

very hard work from a dedicated team.

Because brands are so deeply involved in

building a great story for their customers,

it’s often very difficult for them to let

someone from the outside influence theirstrategy. However, we truly believe this

is the best way to find a disruptive way to

push the brand forward.

Another common mistake is that clients

muddle up what they need and what their

customers actually need. We have received

countless change requests that were brand-

oriented but certainly not aiming at making

the user’s journey easier. As with a lot of

things, empathy is the key.

TIMELINE  

Key dates in the evolutionof EPIC

2009

EPIC is founded by four digital lovers

2010

First digital experiment is released:

Tweets for Honor, an augmented-reality, 3D, Twitter-based game

FEB 2011

Hires first employee

JUNE 2011

Starts developing an interactive

book for kids on iPad

2012

The team continues to expand and

moves into its current loft space

2013

NATO joins EPIC’s portfolio

2014

Releases Spartans vs Hipsters

– another personal project

SEPT 2015

Steps into the world of agile and

embraces Scrum methodology

DEC 2015

Chill the lion is the most hearted

and viewed CodePen of the year

2016

Three new team members join, and

EPIC embarks on a project with one ofForbes’ three most powerful brands

Left Work in progress forupcoming HTML5 gameTrackfinity, which will giveplayers a glimpse of whatit’s like to be a DJ

Below The EPIC teamembrace 80s fashionfor casual Friday

Page 63: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 63/116

Page 64: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 64/116

4

5

3

SHOWCASEHow we built

64 

 june 2016

HowClearleft unified a mass of brands and micrositesto create a one-stop shop for book lovers of all ages

PENGUIN BOOKS

 HOW WE BUILT

(1) The sidebar anchors the core navigation, and

reinforces the fact that all site content is part of

the Penguin universe. The logo updates to reflect

the particular page content. (2) One goal was to

highlight the quality and diversity of Penguin’s

design values and heritage. The use of large imagery

(where appropriate) celebrates this and allows the

visual content to speak for itself. (3) The design

employs a system of visual containers that help

mark out different types of content and create a

hierarchy. (4) Penguin has a huge catalogue and the

team worked hard to ensure an engaging experience

across all devices, no matter what the content.

(5) After much testing and deliberation, Bliss was

selected as the new digital typeface to complement

the renewed brand system.

 BRIEF

Penguin Books needed to presenta unified web presence in theUK, bringing its existing brandsand author microsites under oneroof to improve the quality andconsistency of its digital offering.Clearleft took on the challenge.

CLOSE UP 

21

Page 65: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 65/116

How we built

  june 2016 

65

BEN

WHITE

UI designer Ben brought his

experience of interaction design

to the project through modern,

responsive design

t: @iambenwhite

BEN

SAUER

 

As the UX lead on the project,

Ben’s expertise was used to

develop the digital strategy

w:www.redbeard.org.uk

t: @bensauer

When Penguin Books merged

with Random House it recognised

a need to unify its UK web presence

(www.penguin.co.uk ). With a number of

existing brands, from Penguin Classics

to Peppa Pig, and an audience of both

children and adults, this represented

quite a challenge. Penguin needed to

create a consistent visual language

(and HTML prototype) that would work

across all its brands while reflecting its

strong design heritage. With that in

mind, the company called in Clearleft.

net: You have described the site as an

IMDb for Penguin; can you elaborate?

BS: In a world dominated by Amazon,

you have to ask yourself why people

would visit a publisher’s site? The clear

answer is to get closer to the authors and

their titles, so we set about turning the

Penguin site into a one-stop shop for

book fans. Somewhere they could come

to hear interviews from authors, read

exclusive content, and learn about

upcoming titles. However, rather than

being limited to official content, we

wanted to draw information from

around the web – magazine articles,TV and radio interviews, and so on.

As such the project had a big content

strategy component.

net: Tell us about the research stage ...

BS: We’re big proponents of both design

research and formative usability testing

at Clearleft, so this formed a large part

of the discovery phase. We undertook

workshops and one-on-one interviews

with a range of internal stakeholders;

from brand managers to the marketing

teams responsible for delivering content

on the site. We also spoke to authors to

understand their needs and concerns.

Once we had some early concepts

ready, we tested them with a range of

potential users. This included home

visits with parents and children to

assess the navigational concepts for

Puffin and Ladybird books.

net: What are the typical user journeys

on a Penguin site?

BS: On a site as large as this there are

numerous user journeys to consider,

so we mapped each one out in detail

before jumping into design. A common

 journey would involve a fan searching

for a particular author on Google.

This presented a clear opportunity to

influence the user’s experience before

they even reached the Penguin site.

To do this we recommended the

landing pages used structured data.

This would allow the pages to be seen

by Google as the canonical listing for

that author, augmenting the typical

search results with rich biographicaldata. So by the time the fan had clicked

on the link, they already expected the

page to be the authority on the author

they were searching for.

net: The project required three teams

– how were they organised?

CK: The engagement started with a

three-month discovery phase in which

we ran workshops, interviewed brand

CLARE

KIRKLAND

Clare was responsible for

facilitating and managing

the project delivery, and

embedding agile practices

w: clearleft.com

  TIMELINE

The key stagesin the project

NOVEMBER 2014

Planning and discovery to determine the

strategic direction, focus and product

backlog for the first release

FEBRUARY 2015 

Two-week production sprints for the

Consumer and Corporate workstreams

MAY-JUNE 2015 

UX and design work starts on the

Children’s workstream, using the

modular design language established

by the Consumer workstream

JULY 2015 

In-depth testing sessions and

focus groups take place for the

Children’s workstream

AUGUST 2015 

The high-fidelity HTML prototype for

the Consumer stream is finished

MID AUGUST 2015 

A manual conveying the design strategy

is passed on to the internal Penguin team

so they can continue to develop the site

SEPTEMBER 2015 

UX and design work across all

three workstreams completes

FEBRUARY 2016 

Launch of Corporate, Consumer

and Children’s websites

Page 66: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 66/116

4

5

SHOWCASEHow we built

66 

 june 2016

6

1

2

 EVOLUTION

A look at the sketches, wireframesand moodboards that led to

the final design

(1) During the discovery stage, Clearleft started

to develop user personas with the client based

on research and business intelligence. (2) The

next stage was to map the user journeys for

these specific users, with a user story mapping

technique and lots of Post-Its. (3) Once a clearer

idea of specific user stories had been developed,

the team ran co-design low-fi sketchingsessions with business stakeholders to get their

input into the design process. (4) The ideas and

thoughts from the sketching sessions were

consolidated and iterated into more detailed

concepts. (5) The team began to explore the

UI design system using moodboards.

(6) The moodboards were iterated and

developed into early design ideas. These were

then iterated into the final designs, with input

from the client and dev teams.

3

Page 67: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 67/116

Author hubs Enabling users to get closer to authors was a key aim for the project. Individual author hubsaggregate relevant and interesting content, along with author details

How we built

 

 june 2016  67

owners and authors, and put a roadmap

in place. We then spent several months

working with the Penguin brand agency

to develop a consistent design language

that would work across all its various

brands. At that point we split into two

separate teams: one focusing on the

adult consumer proposition and one

focusing on the children’s brands. We

also introduced a third team, responsible

for the new corporate site.

net: Tell us about some of the key

design features.

BW: We developed a design system

that was consistent within the Penguin

brand whilst allowing other brands

(such as Jamie Oliver or Puffin) to

express themselves. An example of

this is the sidebar design, which is

reminiscent of a book spine and anchors

the page in the Penguin universe. The

contents of the page and the hero image

– much like a book jacket – allow the

individual brands to shine.

net: How did you pick the typefaces?

BW: Penguin historically used Avant

Garde as its primary brand typeface,

but the project highlighted the need for

a new digital typeface to compliment

the renewed global brand system. We

agonised over the details – choosing

a new typeface for such a well-known

brand is no small task! We finally settled

on Bliss; a natural, humanist typeface

by Jeremy Tankard. Apart from looking

great and working excellently on screen,

it has a fitting Englishness we thought

would be perfect for Penguin.

net: Did you build the entire site from

scratch? What tech did you use?

BW: We designed everything from

scratch, providing Penguin’s technology

partners at Cognifide with a responsive

prototype to help guide implementation.

The project was built on top of Adobe

Experience Manager, a decision that was

made before we joined the project.

net: How did you approach the task of

importing Penguin’s legacy content?

BS: A significant amount of existing

content needed to be moved to the new

platform. Fortunately this was handled

as part of a separate re-platforming

exercise that took place in parallel with

the design process. Due to the new

strategy, a considerable amount of

content needed to be created from

scratch. We provided support in the form

of content strategy and data structures,

but most of the heavy lifting was done

by the PRH marketing team.

net: What was the biggest technical

challenge you faced?

BS: Designing for a platform that saw

responsive design as a series of device-

specific breakpoints, rather the layout

being dictated by the content. As a result

the initial launch isn’t as responsive as

we would have hoped. However, in true

MVP style, this is being worked on as we

speak and more nuanced breakpoints

will start finding their way into the site

as the platform is developed over time.

net: Was there anything you wanted

to include but couldn’t?

BW: Oh, there are plenty of things that

didn’t make the initial launch, and have

been lined up for future releases. These

range from small design details, through

various content types, to features like

ecommerce. So we expect to the see

the site continuing to evolve over the

coming months and years as the internal

PRH team take ownership of the product

and release its full potential.

Next month: Behind the scenes’

on Fantasy’s site for The MetChildren’s stream The Puffin and Ladybird brands formed a separate stream, aimed at younger readers

Page 68: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 68/116

FEATURESCover feature

Page 69: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 69/116

 

69

Cover feature

 june 2016 

69

Cover feature

ith five browsers regularly releasing

bigger and better versions of their

embedded developer tools, the outlook

for web developers has never been

rosier. These tools are indispensable for

building, debugging, analysing and optimising our

sites and web apps.

In recent years, the Chrome and Firefox DevTools

have innovated at a breakneck pace to provide a

superior debugging environment. Microsoft’s Edge

has also made great steps forward, and Opera’s tools

are now in complete parity with Chrome.

Below are 20 tips to help you get even more from

your DevTools. If you’re new to Chrome’s DevTools

check out Katie Fenn’s great tutorial on page 104.

01  EXPAND ALL NODESThe Elements panel shows the Document

Object Model (DOM) tree of the current page

and is the first panel that appears when we hit F12

on Windows or ‘cmd+alt+I’ on Mac. In Firefox this

panel is called the Inspector, while in IE/Edge it is

called the DOM Explorer.

When you right-click on the page and inspect an

element, the DOM tree is automatically expanded

to reveal that element within the pane. We can also

drill down the DOM tree using the triangular arrow

to the left of each element. In Chrome, Firefox,

Opera and Safari, holding down Alt whilst clicking

that triangle to open a closed element will expand

every node underneath, providing you with fast

and full visibility of all the element’s children.

02MOVE ELEMENTSYou can drag and drop elements within

the DOM tree to change their position in

the document. Simply click and drag the element

into the position you want it, and a line will appear

showing where it will be placed.

03

INCREMENT CSS VALUESStyles applied to the elements in the DOM

are displayed in the Styles panel shown to

the right of the DOM tree. In Firefox, this panel is

called Rules. From it, you can modify the values for

any CSS property currently applied to your elements,

as well as adding new properties and values.

We can adjust numerical property values such as

margins, padding, borders, width, height, rotations

and even colour, using the cursor keys. The Up or

Down keys will increment or decrement the value

by a unit of 1. Holding the Shift key while pressing

AUTHOR

ANDI SMITH

Andi is the director of

web development at

ideas and innovation

agency AKQA. He blogs

at andismith.com  andtweets at @andismith

ILLUSTRATION

ANDREA MANZATI

Andrea is an Italian

illustrator based in

Verona. His client list

includes The New York

Times , Bloomberg ,

Wired , Wallpaper*  

and Computer Arts

www.alconic.it 

BOOST YOURDEVTOOLS

KNOWLEDGEThe browser developer toolshave become indispensable

for web development.Andi Smith introduces 20

new techniques you can useto get the most from them

 NEW SKILLS

Page 70: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 70/116

Up or Down will change the unit to 10, while holding

the Alt key will change the unit to 0.1. In Chrome

and Opera, you can also use the mouse wheel to

adjust the value.

04  VIEW THE BOX MODELThe CSS Box Model describes the space taken

by each element, including margin, padding,

border, width and height. These values are used by

the rendering engine to calculate the rectangular

space taken up by the element, and ultimately the

layout of our page.

As modern web developers we often simplify our

layout calculations by configuring the Box Model so

the border and padding are included in the width

and height values. We use the following CSS:

  body * { box-sizing: border-box; }

With an element selected in our DOM tree, we can

view the CSS Box Model of this element within the

Styles/Rules panel. In Chrome and Opera, this is

found under the Computed tab. In Firefox it is in

the Box Model tab; in Safari the tab is called Metrics,

and in IE/Edge it is called Layout.

Hovering over the Box Model diagram with your

mouse in Chrome, Firefox or Opera will apply

a coloured shade to the relevant element and

properties on the page, so you can visualise your

layout. You can edit the values of the Box Model

 just by clicking and changing them.

05STYLE PSEUDO-CLASSESWe can force the display of CSS pseudo-

classes like :hover and :focus from within

DevTools. This enables us to style and debug these

element states without having to interact with them.

DEBUGGINGPERFORMANCE

 The Timeline panel in Chrome and Opera

and the Performance panel in Firefox and

Edge provide detailed views of the frontend

performance of your page, mapping a recorded

timeline of events against the frame rate, CPU

and memory usage.

To reduce the amount of data collected, each

recording should focus on a particular action or

event. So if we want to test our navigation menu

opening and closing, we should avoid scrolling

the page during our test.

The overview of the captured recording

displays a number of useful charts (see image

above). You can focus in on different things by

selecting and highlighting part of the chart.

 The top green chart displays our frames per

second (higher values represent higher FPS).

In Chrome and Opera, the red blocks above the

chart indicate where drops in the frame rate

and juddering (jank) occur

 The bar chart below shows the network

requests, with lighter areas representing

response waiting times and darker areas

representing transfer times

 In Chrome and Opera, the area chart

shows what CPU resources were used

during the events. If the Screenshot option

is checked, we can see a breakdown of how

the page displayed during the test. Checking

the Memory option shows how memory

is handled

In addition to the overview, a waterfall chart

shows the operations laid out sequentially,

while the flame chart (toggled in Chrome and

Opera using the View option) shows the call

stack. Clicking an item in these charts displays

a breakdown of the time this operation took.

This performance information can help us

locate code that is causing delays as well as

showing bottom-up scripts.

Box model Hovering over

the Box Model diagram

will colour in the relevant

element and properties

on the page

Recording performance The ‘record’ button in the

top left allows us to make a capt ure to analyse

Page 71: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 71/116

  june 2016 

71

Cover feature

At the top of the Styles/Rules panel is an icon

that will enable the other states. Depending on the

browser, the icon is either a pin icon, three small

boxes, or the letters ‘:hov’ or ‘a:’.

In Safari, right-clicking on an element in the DOM

tree view of the Elements panel will show a menu bar

where ‘Force pseudo-classes’ is an option.

In Chrome, Firefox and Opera, whenever we turn

on a pseudo-state, an orange indicator will appear

next to the element. The :before and :after pseudo-

styles for an element can be found below the main

list of styles in Chrome and Opera.

06INFLUENCE CSSIn Chrome and Opera, long-hovering

over a particular CSS selector in the Styles

panel will highlight where it is being used on the

page. With an element selected, we can turn on

and off individual CSS classes to see what they are

styling. Simply toggle the ‘.cls’ option in the Styles

panel, then check and uncheck each class name.

07PICK COLOURSChrome, Opera, Firefox and Edge all offer

a colour picker to enable you to choose and

define the colours for your page. To access the colour

picker, click the swatch next to any colour property

within the Styles panel.

In Chrome and Opera, you can toggle the colour

value between hex, RGBa and HSLa using the arrow

icon alongside the value. You can also see a palette

showing the colours that are already being used on

your page in Chrome, Opera and Edge, as well as

creating a custom palette and a palette containing

the Material Design colours.

08DOCK THE DEVTOOLSEach of the developer tools can be

repositioned to one of three options: dock to

the bottom, dock to the right, or a separate window.

The docking option can be found in the top-right

corner of the DevTools (or top left in Safari). The

keyboard shortcut ‘cmd+shift+D’ will toggle the last

two chosen options in Chrome, Firefox and Opera.

In Edge, ‘ctrl+P’ will toggle between docking to the

bottom and a separate window.

09INSPECT MEDIA QUERIESWe can see how our web page will appear

on different screen sizes using Responsive

Design Mode. In Chrome and Opera, this is toggled

by pressing the devices icon to the left of the top

bar; while in Firefox the icon is a resizing square.

Firefox offers a series of differing width and height

combinations to try, with the ability to type into the

Left Don’t forget you canpress the ‘Pretty Print {}’icon to un-minify sourceJavaScript in Chromeand Opera

Right The colour pickerin Chrome allows for thecreation of custom palettes

Long-hovering overa particular CSS selectorwill highlight where it

is being used

Page 72: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 72/116

72 

 june 2016

FEATURESCover feature

drop-down field to add additional sizes. IE and Edge

offer similar options to change display size within

the Emulation panel.

As well as a list of devices and the ability to

customise your own, Chrome and Opera offer an

additional Media Query Inspector (found under

‘More Options > Show Media Queries’) that enables

you to quickly view and change between each of your

breakpoints. These browsers also offer the ability to

throttle network speed and adjust round trip time

(RTT) to simulate slower networks.

10ENABLE EXPERIMENTSThere are a number of extra features in

the DevTools that aren’t quite ready for

mainstream release, but can provide some extra

Top Chrome’s Responsive

Design Mode has an

assortment of features

Right Microsoft is taking

the DevTools seriously with

a dedicated Twitter account

providing help and feature

updates

debugging functionality, as long as you’re willing

to accept they may not be stable.

Enable them by typing ‘chrome://flags’ into the

address bar in Chrome (or ‘opera://flags’ in Opera)

and then hitting ‘Enable’ on the option for ‘Enable

developer tools experiments’. New functionality can

then be toggled on and off from within the Settings

menu under the Experiments tab.

Current experiments include an Accessibility

and Promise inspector, and a layout editor for

changing margins and paddings (accessible from the

Style panel). You can find even more experimental

features in the Chrome DevTools by pressing the

Shift key six times when on the Experiments tab.

These include experiments to display a contrast line

in the colour picker; CPU throttling and showing a

GPU data graph on the Timeline panel.

Firefox also lets users turn on experimental

features individually from its settings menu.

11DEBUG ANIMATIONDebugging CSS animations can be difficult

at times, but Chrome, Firefox and Opera

have turned their attention to making this process

easier. Each has provided new features to enable

you to analyse how your animations are playing

and working together.

To play and replay animations at different speeds

in Chrome and Opera, use the Animations panel

accessible from the Console tray (press Esc to toggle

open), or the Animations panel in Firefox.

The controls allow for the debugging of CSS

transitions, CSS animations and the Web Animations

API (netm.ag/wilson-280). From the Animations

panel in Chrome/Opera there is also live editing of

animation timings and delays, with a drag-and-drop

interface for further debugging.

12  DEBUG ANIMATION EASINGAlongside each CSS transition and animation

style that contains an easing property,

you can find a swatch. Clicking this will open up

an easing debugging menu with predefined easing

options, together with a graph tool allowing for

greater customisation and live previews.

13MONITOR EVENTSThe Console panel is great for logging

debugging information about your web

page and entering JavaScript to interact with the

document. In Chrome, Opera and Safari it can

also be used to monitor and log events.

To monitor a particular event use:

monitorEvents(elem, 'eventType');

Page 73: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 73/116

Android extras On Android you can even screencast your device back toDevTools by hitting the icon in the top right

Top Chrome’s FPS meterand new AnimationInspector in action

Left In the easing editorthere are a numberof predefined optionsavailable, together with agraph to customise easing

DEBUGGING DEVICES 

All of the browsers offer the option to view your

responsive pages at the dimensions of popular devices

with emulated user agent strings. However, the rendering

engine on those devices is likely to differ from the one on your

development machine. We can test more accurately by

attaching devices to our machine and using the DevTools.

ANDROID

Chrome can be used to test Android devices like so:

 On your Android device, go to the Settings icon and select

Developer Options. If the option is missing, go to About

Phone and tap the build number seven times

 Select the USB debugging checkbox and press OK at

the prompt

 Connect the device to your computer with a USB cable

 In Chrome on your desktop, type ‘chrome://inspect’ into the

address bar

 A prompt to allow desktop access will appear. Press OK

 The Chrome Inspect page will display the device’s open tabs

and any WebViews with debug enabled. Click Inspect next

to the tab you wish to debug to begin

iOS

Safari (Mac only) can be used to debug iOS devices like so:

 Open Safari and make sure the Develop menu is enabled

by going into ‘Preferences > Advanced’

 On iOS go to the Settings icon; select ‘Safari > Advanced’

and enable Web Inspector

 Connect your iOS device to your computer using a USB cable

 Open Safari on your iOS device

 Go to the Develop menu. Your device should be listed,

together with each open tab

If you wish to use Chrome or Windows to debug iOS pages try

the iOS Webkit Debug proxy at netm.ag/proxy-280 .

Where elem is the element you wish to monitor

and eventType is the event (for example, mouse , click ,

keydown , touch , resize or scroll ). If the element you

wish to monitor is currently selected in the Elements

panel, you can use $0 to access it.

To stop monitoring events use the command:

unmonitorEvents(elem);

14RE-RUN CONSOLECOMMANDSAfter running a command in the Console

panel, simply press the Up arrow to reveal a history

of previous console commands. To re-run one,

hit Enter.

15CHANGE FRAME FOCUSIf your web page contains one or multiple

iframes (as is often the case with tools

like CodePen, JS Bin and JSFiddle), debugging the

right frame from within the console can prove

a challenge. You can target the frame from the

DevTools console by selecting the frame from

a drop-down list found at the top of Chrome and

Opera’s console window; or with the frame selection

icon in the top-right of Firefox’s menu bar. Safari

offers the same option to the right of the console

command line.

16EMULATE GEOLOCATIONGeolocation can be emulated in Edge

from the Emulation menu. In Chrome and

Opera, geolocation and the accelerometer can be

Page 74: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 74/116

74 

february 2014

emulated by selecting ‘More Tools > Sensors’ from

the menu on the right-hand side. Geolocation allows

you to override your position with another set of

longitude and latitude coordinates, or emulate an

unavailable position.

17EMULATE ORIENTATIONAccelerometer emulation can be found in

the same panel as geolocation in Chrome

and Opera. This allows you to change the alpha, beta

and gamma values of the device orientation:

 Alpha represents the motion of the device around

the Z-axis from 0 to 360 degrees

 Beta represents the motion of the device around

the X-axis from -180 to 180 degrees, resembling

a front-to-back motion

 Gamma represents the motion of the device

around the Y-axis from -90 to 90 degrees,

resembling a left-to-right motion

Changing the values will trigger a deviceorientation

event, which you can test with: monitorEvents(window,

'deviceorientation'); .

18RUN A PERFORMANCE AUDITYou don’t need to be an expert in how

network traffic and pages render to find

useful tips for how to speed up your site. Chrome

and Opera both provide the ability to audit, and

offer advice on how to improve the network and

page performance.

To run an audit, select the Audits panel, choose the

tests you want to execute and hit Run. The network

audit will identify bottlenecks in your site load (such

as large image sizes); while the performance audit

will identify ways to speed up your page (such as

removing unused CSS rules).

19FILTER RESOURCESThe Network panel in each browser shows

a list of resources that have been requested

during page load, together with the status code,

the file size and the amount of time it took for the

request to return. The accompanying waterfall graph

visualises the time spent loading each of these

resources onto the page.

While the resource list can be filtered by type

(such as CSS, images or XHR) in each browser,

Chrome and Opera also allow for advanced filtering

in their search boxes, with the following prefixes:

  domain : To filter resources from the specified

domain

  larger-than : For file size

Top left Firefox’s DevToolshave caught up with

Chrome’s, offeringa ton of great featuresand functionality

Top right Emulating deviceorientation with Chrome

DevTools

Below Find quick wins for

improving performanceon your website with theAudits panel

Page 75: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 75/116

  june 2016 

75

Cover feature

New features Chrome

Canary offer the latest and

greatest DevTools features

for you to try

  mixed-content : For filtering resources loaded

through HTTP on a secure site

  status-code : To filter on a particular status code

(such as ‘404 not found’).

A number of extra columns are also available in

Chrome and Opera’s Network panels that can

provide further useful information. These include

Cache-Control and Initiator. You can toggle columns

on and off by right-clicking any of the headers.

20DEBUG ASYNCHRONOUSLYThe Sources/Debugger panel allows you

to add breakpoints and walk through your

code, watching variables and examining the call

stack as you go. By watching a variable you can

monitor its value as your program is executed.

To add a watch, just type the name of the variable

into the panel on its right-hand side. The watch

will keep its value up to date as you step through

your code.

With Chrome and Opera you can also view the

full call stack of asynchronous JavaScript callbacks

and promises by checking the Async box in the

right-hand corner. When you walk through the call

stack, the watch values will also update to their state

at the time. You can make debugging the call stack

easier by naming callbacks rather than making them

anonymous functions.

SUMMING UPBrowser developer tools can be invaluable when

developing and debugging web projects. It really

is worth investing the time to experiment and

explore the DevTools in your browser of choice so

you get to know how it all works. And with new

features appearing all the time to address classic

problems (such as a layout editor) and help debug

brand new web functionality (like the Sources

Service Worker panel), it has never been more

important to stay up to date.

Filter resources loadedthrough HTTP on

a secure site with the

RESOURCES

Want to learn more? You can get the

latest updates for Chrome DevTools on

Google’s official developers page (netm.ag/ 

update-280 ), with tutorials and videos on

how to use the latest features.

Umar Hansa offers weekly DevTools tips

in the form of animated GIFs straight to your

inbox at umaar.com/dev-tips , and you can find

more advice at devtoolsecrets.com . Or follow

@chromedevtools, @firefoxdevtools or

@edgedevtools on Twitter.

LIFE ON THE BLEEDING EDGE

If you want to stay on the cutting edge,

the preview versions of each browser will

often reveal new DevTools features weeks

before they arrive in the main release. This

also means you can provide feedback to the

browser developers.

 Chrome Canary: netm.ag/canary-280 

 Firefox Developer: netm.ag/firefoxdev-280 

 Opera Beta:www.opera.com/computer/beta 

 Webkit Nightly: nightly.webkit.org 

MORE FEATURES

Chrome DevTools can be extended with

plugins to add extra features, such as the

ability to debug JS frameworks and build

tools: netm.ag/extend-280 .

Page 76: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 76/116

Page 77: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 77/116

Second feature

  june 2016 

77

Have you ever wondered how

sites like Facebook or apps

like Snapchat get users to

come back again and again?

It’s not magic; whether

they know it or not, they are using

psychological tools that play on our

emotions and biological instincts.

The fascinating thing is that humans

usually don’t realise why we are drawn

to something or moved to do something

at first. Studying the psychological

triggers that spur users on will help us

understand how to utilise these to make

more effective products.

At ZURB, we utilise psychological

triggers and patterns to increase

engagement with the products we

design. Over the last two decades,

we’ve helped over 300 companies do

 just this. In this article, I’ve pulled

together 10 techniques we use at

ZURB to help us build addictive

and effective products.

01 FAMILIARITY BIAS

People are naturally biased

towards things they find familiar. People

like and trust what they know; change is

scary and uncomfortable. That’s why the

best new products and experiences use

familiar patterns.

Familiar moments create trust, while

unfamiliar patterns create confusion

(at least at first). When the pull-to-

refresh option was first introduced onTwitter, many people were baffled. Now

that interaction is near-universal. With

repeated exposure, users can develop

a fondness for things that they initially

disliked or didn’t understand.

AUTHOR

JENN TANG

Jenn (@happyim

adesignr) is a product

designer at ZURB.

She joined the company

to do what she does

best – solve problems

and create beautiful,

smart designs

10 WAYS TO

GUIDE PEOPLEWITH DESIGN Jenn Tang explains how

designers can pull emotionaland cognitive strings to guideusers through their products

and drive engagement

Page 78: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 78/116

78 

 june 2016

FEATURESSecond feature

Often, the best design comes from iterating on

someone else’s ideas. Successful products are

built using patterns that have proven effective

in other places. A deeper look at these patterns

reveals that they play on human psychology and

behavioural tendencies

There’s an almost unlimited wealth of research

and data on these topics available for curious

designers to pick through, but that also presents

a challenge – it’s literally everywhere. The research

is so plentiful and so spread out that it takes

a tremendous amount of time and effort to pick

out the applicable gems.

ZURB set out to collect the psychological

motivators in a product design resource library

called Design Triggers (zurb.com/triggers ). In it,

you’ll find a collection of common psychological

motivators, cognitive biases and behavioural

patterns that can be used to plan entire workflows

that trigger users into action.

iPhone’s patterns started to enjoy much

more widespread adoption, Apple was

able to abstract its interface by pushing

for flatter designs.

Takeaway  Make it easy for users to get

to know you! Provide a tour or demo to

introduce users to your product. Familiarity

bias is powerful, so use things that are

known to your audience to help them adopt

 your product faster.

02RELATIVE VALUEHave you ever suffered from

choice paralysis? Don’t worry, we all do.

It’s difficult to evaluate the cost or value

of an item on its own. People are wired to

compare. Having a starting point to help

you choose is always going to be easier

than appraising with no reference.

Not every feature needs to be new for

it to be memorable. When the iPhone

was first released, it was a very foreign

idea: it was a phone that was completely

touchscreen, with no physical keyboard,

and it used brand new gestures like

pinch-to-zoom.

The interface, however, was very

familiar. Apple designed a calendar

that resembled a physical calendar. The

iPhone’s virtual keypad looked like the

buttons from its physical counterpart.

Apple chose use familiar patterns rather

than abstract representations.

Designing the iPhone’s interface this

way meant the phone immediately felt

familiar to users. These interactions

and metaphors for the real world helped

people adapt faster while learning

how to use the new device. When the

Relative value techniques work

remarkably well in helping users

make decisions and follow through on

purchases. The tried-and-true example

of this is a pricing table. When people

are trying to make a decision, they feel

more comfortable about it if they can

compare it to something else. Making

other prices visible helps reassure them

they’ve made the right decision.

Options also make us feel in control.

The pricing table for ZURB’s responsive

email course displays pricing in three

tiers, so the user can clearly see their

different options. This helps them

evaluate what’s included in each tier

and make a better decision.

Takeaway When possible, highlight the

key features of a product in comparison to

DESIGN TRIGGERS

Hand holding Airbnb makes it easy for potential customers to learn all about the service,

with clear explanations of each feature

Show options ZURB University highlights the differences between three course options to

make it easier for potential students to choose what’s right for them

Page 79: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 79/116

 

 june 2016 

79

Second feature

other packages or even to competitors. This

makes it easier for users to make a decision

and determine which option will provide the

most value.

03 BANDWAGONWhether it’s signing up for a

new app or sharing a new meme, we’ve

all jumped onto a bandwagon at one

point or another. That’s because we, as

consumers, are easily swayed by the

behaviour and opinions of others.

When people see others enjoying a

product or service it impels them to try

it out as well. Even if their own personal

interest in the product is low, seeing

that friends, family or large numbers

of people have joined already heightens

their curiosity.

FOMO (‘fear of missing out’) can

be a powerful trigger. When creating

products, you can home in on this

by highlighting the ways people are

enjoying your product.

If a product is new, there are methods

that can be employed to suggest it hasa much bigger community than it may

have in reality. For example, including

imagery of people using the product

or service can give the illusion that

many people are already benefiting

and enjoying the experience.

Takeaway Highlight the activity of users’

connections to demonstrate the popularity

of the product or the benefits of specific

 features. The greater the number of users

someone perceives a product to have, the

more likely it is they will be swayed.

04 AUTHORITYWhen people are told to do

something by an authority figure, they

tend to obey the direction and rarely

question it. Authority can trump our

own instincts.

There was a classic experiment

at Yale University by psychologist

Stanley Milgram that demonstrates the

strength of this phenomenon (netm.

ag/milgram-280). When someone

posing as the teacher instructed study

participants to administer an electric

shock to another man posing as a fellow

student when they answered a question

incorrectly, 65 per cent of participants

obeyed even though didn’t want to.

Why? Because they had been instructed

to by an authority figure.

As designers, we can establish our

organisation as an authority in its space

through building trust. Infographics and

statistics can help users see the value in

something and show your organisation

is reliable.

Like many other companies, on its

website Campaign Monitor supports

its offerings by featuring testimonials

from big, trusted brands like Airbnb and

37 Signals. If the user has had positive

experiences with any of those othercompanies, they will be inclined to feel

positively about Campaign Monitor

before they even start using its services.

Takeaway By establishing authority

through testimonials, data and reviews,

designers can build trust in a product.

 Make testimonials and data clearly visible

on websites and place them strategically

around barrier points.

 Designers can buildtrust in a product byestablishing authoritythrough testimonials,

data and reviews

On the bandwagon Services like Foursquare highlight

which of the user’s friends are signed up to t he tool

Authority figure Campaign Monitor brings attention to the trusted brands that use its tools and services

Page 80: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 80/116

80 

 june 2016

FEATURESSecond feature

Takeaway Play on our instinctive drive

to succeed by giving users achievable goals.

 Make it social so they can compete against

 friends, to increase user engagement and

satisfaction. Go for the win!

07 ZEIGARNIK EFFECTHumans love to complete things.

It’s satisfying to finish and celebrate.

Tasks that remain uncompleted can

linger in people’s minds even after their

attention has been focused towards new

goals. It’s often easier to recall details of

uncompleted tasks – the closure gained

from completing a task frees you from

the responsibility to remember it.

LinkedIn does a great job of getting

users to do things with its stepped

approach. It uses notifications to inform

users of how complete their profiles are,

as a percentage. This plays on users’

desire to finish things and encourages

them to figure out how they can reach

100 per cent completion.

Takeaway The key is to get people to start

something so they want to complete it. Make

Understand that users will extend their

opinions about how a site looks to make

assumptions about its credibility and

backend functionality. Paying attention to

usability alone isn’t enough – for people to

use your site, it also needs to look good.

06 ACHIEVEMENTWe have a biological drive to

succeed. In turn, achieving our goals

makes us feel good and increases our

motivation to take on more challenges.

People want to be rewarded for their

efforts and enjoy being pitted against

others to demonstrate they have the

drive to succeed. Nike+ and Fitbit have

capitalised on this desire to win with

their leaderboards. Not only do these

help people reach their goals, they also

promote more engagement with the

companies’ products.

However, keep in mind that while your

users may enjoy competition, no one

likes something that is completely out

of their reach. Learn from Fitbit, which

calculates its leaderboard for each week,

instead of an overall basis.

05 FAITH IN AESTHETICSPeople judge a product by its

appearance first, before considering

its content. The visual design affects

more than just surface aesthetics; users

often describe more attractive sites as

easier to use.

When presented with the option

of a brand name medicine like Bayer

Aspirin or a generic pharmacy brand,

most people automatically feel like

the brand name is better quality.

Why? It has a lot to do with the design

and look of the packaging.

Humans judge if something is

trustworthy or not within seconds.

For most people, the more attractive

something is, the more trustworthy it

seems. In a study asking people if they

would trust a health website, 83 per cent

of negative comments stemmed from

the aesthetics rather than the content,

criticising things like the visuals, text

size or the name of the site.

Takeaway Don’t underestimate the

power of beautiful and consistent design.

Appearances first A better designed product inspires more trust than generic options

For the win The Nike+ Challenge leaderboard inspires users

to engage in some friendly competition

Stepped approach Weekend Getaway look by Polyvore. Asking customers to follow just just four simple steps to

complete a look means they are unlikely to abandon the process

Page 81: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 81/116

 

 june 2016 

81

Second feature

barriers to entry low and vary the length of

steps to keep people motivated.

08 SELF-EXPRESSIONUsers feel a stronger connection

to products that reflect and display their

own sense of identity. Customisation

provides a way to transform products

into unique versions that represent each

user’s sense of self. When people can

add something to a website to make it

more personal to them, they feel more

ownership of it.

Nike allows its customers to customise

the colours of their trainers, so they

aren’t stuck with the colours a company

has defined for them. The standard

options may not quite reflect someone’s

personality and could be deterring them

from buying. People perceive things they

own (or create) as being more valuable,

and in turn want to show others how

unique they are.

Takeaway Find ways to make the user

experience feel more personalised and less

transactional and cold. Don’t be afraid to

have a little fun. Letting your users show

off their style in a small way can boost their

enjoyment of an app, website or product.

09 RECIPROCITYHumans don’t like the feeling of

owing anything to anyone. When people

receive a gift or someone does them a

favour, they feel socially obligated to

return the favour. Designers can use this

to their benefit by providing something

exclusive as a gift. This can keep that

feeling of indebtedness on users’ minds.

Offering free samples or trials is a great

marketing strategy.

Takeaway Start giving before you

giving something for free to create a feeling

of obligation. 

10 SURPRISE AND DELIGHTUnexpected perks can increase

levels of user satisfaction and make an

experience more exciting. Interesting

rewards produce increased levels of

dopamine in the brain.

Give a little extra thought to a product

to include exciting and unexpected

details. Surprise is an addictive feeling

and turbo-charges emotions to foster

loyalty in your products.

Takeaway Surprise your users with a

special birthday gift, even if it’s just a note

in their inbox. Or delight your users with an

Easter egg – it’ll keep them coming back and

they might even share it with their friends.

GUIDE YOUR USERS TO SUCCESSAmong many other things, being a

product designer means understanding

how users make decisions. Since the

invention of advertising, we have been

aware of a number of emotional and

cognitive triggers. Designers can pull

on these strings to help encourage users

to adopt their product.

Unlike a design trend, which may

change in less than a year, these triggers

will remain relevant for decades. When

skilfully used by a designer, these tactics

can make products more intuitive and

addictive, resulting in a more satisfying

experience for our users.

Surprise users witha birthday gift, evenif it’s just a note intheir inbox. It’ll keepthem coming back 

Return the favour Roku offers a variety of free deals and trials that compel users to give the

paid service a try

Keep it unique Nike customers can make their shoes personal to them through its

customisation options

Element of surprise ZocDoc sends surprising messages to make users f eel special

Page 82: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 82/116

SYDNEY 5 SEPTEMBER 2016

Generate is heading to Oz! Join us for a single-day, single-trackconference with talks on user experience, CSS and more

www.generateconf.com

TICKETS ON SALE NOW

ERIKA HALLCO-FOUNDER, MULE DESIGNwww.muledesign.com

JONATHAN SNOOKUX ARCHITECT, XEROwww.snook.ca

NICK FINCKUX SPECIALIST

JOHN ALLSOPPAUTHOR AND DEVELOPERwww.johnfallsopp.com

Page 83: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 83/116

 

 june 2016 

0

0

0

0

0

Mobile/tablet

0

0

0

0

0

Desktop

Tips, tricks& techniques

THIS MONTH FEATURING...

EXCLUSIVE VIDEOSBROWSER SUPPORTWe feel it’s important to inform

our readers which browsers the

technologies covered in our tutorials

work with. Our browser support

info is inspired by @andismith’s

excellent Can I Use web widget

(andismith.github.io/caniuse-widget ).

It explains from which version of

each browser the features discussed

are supported.

94 104

BOOST D3.JS WITH

SVG GRADIENTS 84

DESIGN A MOBILE APP

WITH ADOBE XD 90

GET STARTED WITH

PATTERN LIBRARIES 94

ACCESSIBILITY:

DESIGNING ACCESSIBILITY 114

11 TIPS FOR ERGONOMIC

MOBILE INTERFACES 98

WEB STANDARDS:

WEBASSEMBLY 103

GET MORE FROM

CHROME DEVTOOLS 104

7 HIDDEN

GREENSOCK GEMS 108

Look out for the video icon

throughout our tutorials.

This issue, Demian Borba has

created an exclusive screencast

to complement his article on

Adobe Experience Design: take

a look to see how this new tool

helps you design, prototype and

share your digital experiences

without breaking your stride.

108

HEAD TO HEAD:

JASMINE VS MOCHA 97

Page 84: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 84/116

PROJECTSSVG

84 

 june 2016

  SVG

View source

files here!

All the files you need for this

tutorial can be found at

netm.ag/D3git-280 

in a scatterplot chart, <rect> to create a bar chart,

<line> as an axis, parallel coordinates or slope

graph, <text> as labels, and the extremely useful

<path> for practically everything else. Furthermore,

SVGs are resolution-independent, thus look great

on any display or zoom level.

Even if you’re just using SVGs for their shapes,

you can create wonderful visualisations. However,

they can do much more – think of SVG filters for

example. In this tutorial, we’ll take a deep dive into

one specific aspect and look at a few different ways

it can be applied to brighten up a visualisation.

Let me introduce you to SVG gradients!

BOOST D3.JS CHARTSWITH SVG GRADIENTSNad eh Bremer

ABOUT THE AUTHOR

NADIEH BREMER

w: www.visualcinnamon.com 

t: @NadiehBremer

 job: Data visualisationdesigner, Adyen

areas of expertise:Data visualisation, D3.js

q: what’s the last lie

you told?

a: I said I couldn’t joinfriends for dinner dueto work, but I just reallywanted to read the newfantasy novel by BrandonSanderson

 RESOURCE

One of the best booksfor learning D3 is Scott

Murray’s InteractiveData Visualization for the

Web , and it’s availableonline for free!

netm.ag/scott-244

D3.js has taken over the world of interactive

data visualisation. An enormous number of

examples can be found, each showcasing its own

fun and useful twist on the library. You see, D3 is

not a charting library, but something much better.

It gives you only the basic tools to create data

visualisations, and in doing so enables you to create

practically anything you can think of. Even though

some ideas might take more time than others,

you’ll get there eventually. And this freedom is

exactly what I love about D3.

At its core, every D3 visual is built out of SVG

elements. For example, <circle> for each datapoint

Page 85: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 85/116

  june 2016 

85

SVG

LINEAR GRADIENTS

Sometimes when I create a line chart with a single

line it just feels a bit too empty and can get lost on

the white background. To make it stand out more,

I place a l ight gradient below it using D3’s d3.svg.area

function, filled with an SVG gradient (see fig 1).

I want the gradient to run vertically from the top

(where it is the same colour as the line but a lighter

shade) to the bottom (where it should become white,

or transparent). This is what is known as a linear

gradient; something that changes colour along a

straight line.

We start with an SVG. This is the canvas on which

our line chart will be drawn. We then create a defs

element onto which we can append a linearGradient

element. It’s very important to give the gradient a

unique ID – we will use this later when we need to

give the area below the line its fill.

var areaGradient = svg.append("defs")

  .append("linearGradient")

.attr("id","areaGradient")

  .attr("x1", "0%").attr("y1", "0%")

  .attr("x2", "0%").attr("y2", "100%");

The last two lines of the code above define how the

gradient should run. Think of it as a invisible line:

x1 and y1 are the starting positions of the invisible

line and the x2 and y2 indicate its end point, to give

the direction of the gradient. It’s often easiest to

define these as percentages, although it is possible

to use exact pixel locations. By default the locations

refer to the bounding box of the element onto which

the gradient is applied. We want the gradient to run

vertically, so x1 and x2 should be the same

( 0% is fine), y1 has to be 0% and y2 100% .

Now we can define the colours of the gradient.

At least two colours are needed for a gradient, but

you can use as many as you like. For each colour in

the gradient you add a stop element. Within this you

specify the shade with stop-color , and the location

(along the invisible line) where you want this colour

to be pure (the exact colour) with offset .

Optionally, we can also set the opacity of each

colour with stop-opacity . Here I’m making the

shade slightly lighter at the top and completely

transparent at the bottom.

At its core, every D3visual is built out of SVGelements – but theycan do much more

If you’ve ever looked up anything about D3.js before, it’s

very likely you’ll have come across a D3 example hosted on

bl.ocks.org . This page by D3’s creator Mike Bostock has become the

prime location for the D3 community to share (small) visualisations

or code samples. The diversity of char ts and useful functions found

on this page is mind-boggling, and it’s an extremely useful resource

for those creating visualisations with D3.

However, it used to be quite a hassle to get your code into

a block (and even more so if you wanted to start or fork from

another block), because you had to create and adjust your code

on a local server and then upload and commit it to GitHub’s gists.

But those days are over, thanks to the introduction of Block Builder

(blockbuilder.org ). Created in 2015 as a Kickstarter project by Ian

Johnson, it is especially useful for those starting with D3 who

are not used to working in a terminal.

You can start with a blank slate or copy/fork over someone else’s

example and edit the code directly in the browser. The results of

your changes will be displayed immediately in the frame at the top

of the screen, so there’s no need to continually switch between

code editor and browser while you tr y and find a result you’re happy

with. You can also add new files, and even upload a small thumbnail

of the block’s result. Everything you save will become part of your

own block gallery. Check out the 3-minute video on blockbuilder.org/ 

about  to learn how easy it is to use!

BLOCK BUILDER

  FOCUS ON

D3 in the browser A screenshot of the Block Builder website showing the

interactive visualisation at the top and the code below

Page 86: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 86/116

PROJECTSSVG

86 

 june 2016

areaGradient.append("stop")

.attr("offset", "0%")

.attr("stop-color", "#21825C")

  .attr("stop-opacit y", 0.6);

areaGradient.append("stop")

.attr("offset", "80%")

.attr("stop-color", "white")

  .attr("stop-opacit y", 0);

Now the linear gradient is set up, we can create an

area chart and f ill it with the gradient. To do this,

use url(#gradient-ID) in the fill style, along with the

unique ID we set earlier.

svg.append("path")

  .style("fill", "url(#areaGradient)")

  .attr("d", areaFunction(dataset));

Afterwards, draw the line on top of this area of the

chart so the viewer can read results off your graph.

In my chart, I’ve also placed circles to emphasise

the locations of specific data points.

A SMOOTH LEGENDLegends are very common in data visualisations.

When you’re using colours to represent a particular

aspect of your data, you need to explain what each

colour means. This is where a legend comes in.

In some charts, you will be using colour to

discriminate between discrete cases (for example,

different countries), in which case the colours are

often all very different. However, you can also

use colour to indicate a quantitative value.

Here we’re representing the temperature outside

(see fig 2). The colour changes gradually to indicate

the temperature going from low to high. To show

this in a legend, we’re going to create a long

rectangle and fill it with a gradient going from left

to right. We can reuse the gradient we created for

our line chart, but flipped by 90 degrees (so x2 now

runs to 100% , rather than y2 ). Although generally

a rainbow palette is not recommended in data

visualisation, people are used to seeing colourful

temperature maps, and I’ve chosen nine colours to

use in our example.

Instead of writing out each stop to append,

we can put all of the colours in a dataset and use

D3’s nifty data step to make the process quicker.

With D3 it is possible to access any property of the

dataset in the subsequent chaining steps using

an anonymous function, thereby enabling us to

set the colour and offset in just two lines.

svg.append("defs")

  .append("linearGradient")

  .attr("id", "legendGradientMulti")

  .attr("x1", "0%").attr("y1", "0%")

  .attr("x2", "100%").attr("y2", "0%")

  .selectAll("stop")

.data([

  {offse t: "0%", color: "#2c7bb6"},

{offset: "12.5%", color: "#00a6ca"},

{offset: "25%", color: "#00 ccbc"},

{offset: "37.5%", color: "#90eb9d"},

{offset: "50%", color: "#ffff8c"},

{offset: "62.5%", color: "#f9d057"},

{offset: "75%", color: "# f29e2e"},

{offset: "87.5%", color: "#e76818"},

{offset: "100%", color: "#d7191c"} ])

.enter().append("stop")

.attr("offset ", function(d) { return d.offset; })

.attr("stop-color", function(d) { return d.color; });

Like before, the final step is to create a rect and fill

this using the unique gradient ID.

svg.append("rect")

  .attr("x", 0).attr("y", 0)

  .attr("width", 500).attr("height", 20)

  .style("fill", "url(#legendGradientMulti)");

Figure 1 A smooth SVG

gradient applied to an areachart that lies below theline chart

Figure 2 The gradient of different colours represents the temperature in alocation, explained in a legend below (based on www.weather-radials.com )

Page 87: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 87/116

  june 2016 

87

SVG

The charts these legends go with are recreated

after the fabulous work of www.weather-radials.com 

showing the temperature in New York or Beijing

in 2015. The average temperature each day is

indicated by a coloured line, and these lines are

arranged to form a circular graph. The legend below

explains what each colour means. One graph uses

a gradient from one colour to another, and the other

progresses through all nine colours.

DATA-BASED GRADIENTSIn a manner similar to the previous example, we

can also create multiple gradients. We could make

a unique gradient for each data point, based on a

particular aspect of the data. I used this approach

in an exoplanet visualisation (fig 3, nbremer.

github.io/exoplanets), where each planet was given

a gradient based on the stellar class of the star

it orbits. I used a subtle sphere effect to give the

impression each was lit by the star in the centre.

So let’s go back to the 90s and turn a collection

of flat circles representing the planets in our

own solar system into 3D-looking spheres with

radial gradients (fig 4). I’ve created a small dataset

containing the planet’s name and diameter. Each

will be generalised by one colour, which we’ll use

to create a unique gradient for each planet.

var gradientRadial = svg.append("defs")

.selectAll("radialGradient")

  .data(planets)

  .enter().append("radialGradient")

  .attr("id", function(d){ return "gradient-" + d.planet; })

  .attr("cx", "15%")

  .attr("cy", "50%")

  .attr("r", "85%");

The code is slightly different here: instead of first

appending a gradient element, we now immediately

append the planets dataset and only after the

enter do we create a gradient element (in this

case radialgradient ). This way, a gradient is created

for each point in the dataset. Keep each point’s ID

unique by basing it on the data. The index i usually

works, but here the planet name is safer. This

ensures we can access the correct gradient later.

Keep each point’s IDunique. This ensureswe can access the

correct gradient later

A radial gradient is slightly different to a linear

one. We create it in a similar way to an SVG circle:

supply the centre of the gradient with respect to the

object bounds to which it will be applied, using cx

and cy . These values default to 50% , which is the

centre of the object.

To simulate the appearance of a star shining on

the planets from one side, we’ll move the centre

of the gradient to the left by setting cx to 15% .

The radius of the gradient (where a gradient stop of

100% should end) is indicated by r . It also defaults

to 50% , but due to our cx offset, this is now 85% so

it fills the entire circle.

We can use the planet data to append the colour

stops. To create the appearance of a sphere that

is being shined upon, the colour at 0% should be

lighter. By using d3.rgb().brighter(k) I don’t have

to specify a separate colour, as D3 will do that

calculation for me. The value k defines how much

lighter I want the colour to become. At around

50% I set the true colour in the dataset. At the edge

I want a colour that is slightly darker, giving the

appearance of shade. Logically, there is also

a d3.rgb().darker(k) that we can use.

gradientRadial.append("stop")  .attr("offset ", "0%")

  .attr("stop-color", function(d) {

return d3.rgb(d.color).brighter(1); });

gradientRadial.append("stop")

  .attr("offset ", "50%")

  .attr("stop-color", function(d) { return d.color; });

gradientRadial.append("stop")

  .attr("offset ", "100%")

  .attr("stop-color", function(d) {

return d3.rgb(d.color).darker(2.5); });

Figure 3 In this exoplanet

visualisation, each planet

has its own data-based

gradient, creating the look

of a sphere

Page 88: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 88/116

PROJECTSSVG

88 

 june 2016

If you were to inspect the HTML after running

this, there would be eight different radial gradients

present. Last, we need to create eight circles, give

them a radius as defined by the data, and fill them

with the correct gradient.

svg.selectAll(".planets")

  .data(planets)

  .enter().append("circle")

  /* Set the class, location and radius attributes ... */

  .style("fill", function(d) {

return "url(#gradient-" + d.planet + ")"; });

I’ve also added the Sun, which has its own radial

gradient, but I’ve left cx , cy and r with the default

setting of 50% to make it look like the Sun is

glowing from the centre outward.

A disclaimer: Although the diameters of all

the spheres are correct relative to each other,

the distances are of course completely bogus.

And I’m sorry that Saturn has no rings.

PLAYING WITH THE ORIENTATIONSWe’ve now explored how to set colour aspects based

on data, but there are a lot more possiblities. We can

set practically everything based on data – even the

orientations of each gradient.

To try this out, let’s make a D3 chord diagram

showing the collaborations between the Avengers

in the Mar vel Cinematic Universe (fig 5). The

chords that run between the six Avengers are

sized according to the number of movies in which

they both appear. We’re going to fill these chords

with a simple linear gradient, changing from one

Avenger’s colour to another’s.

A chord is usually not exactly horizontal or

vertical. So we’ll have to set the x1 , x2 , y1 and

MARGIN CONVENTIONS

  IN-DEPTH

Unique gradients For each planet in figure 4 a unique gradient element

has been created

All D3.js creations start with an SVG element, which is the

canvas on which the data visualisation is drawn. Ideally,

you would set the width and height of the SVG e qual to the chart

area. But as everything that falls outside the S VG is invisible,

this can result in clipped axis labels and ticks. There is a way to

avoid clipping, but still use width and height to specify only the

chart region: the margin convention.

First, set up the margin, width and height:

var margin = {top: 20, right: 20, bottom: 20, left: 20},

  width = 700 - margin.left - margin.right,

  height = 500 - margin.top - margin.bottom;

Create the SVG, giving it a size that incorporates the w idth, height

and margins. Append a <g> element and translate this by the top

and left margin:

var svg = d3.select("body").append("svg")

  .attr("width", width + margin.left + margin.right)

  .attr("height", height + margin.top + margin.bottom)

  .append("g")

  .attr("tra nsform", "translate(" + margin.left + "," + margin.top +

")");

Now the origin (0,0) location of your canvas has shifted down and

to the left with the <g> element. The benefit is that you can set

your scales to intuitive values while the axes are still visible inside

the SVG as a whole (full example at netm.ag/margin-280 ):

var xScale = d3.scale.linear()

  .range([0, width]);

var yScale = d3.scale.linear()

  .range([height, 0]); /* This flips the scale so it starts at the

bottom */

We can set practically anything based on data,

even the orientationof each gradient

Page 89: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 89/116

 

 june 2016 

89

SVG

Figure 5 Each chord has its own unique gradient, where the orientations(and colour) are defined by the data

 y2 values based on the locations of each Avenger’s

outer arc. This data is not in our original dataset,

but after we’ve supplied it to D3’s d3.layout.chord

function, we will get back a new dataset containing

the start and end angles of each arc (as d.source.

startAngle and d.target.endAngle ). This is the dataset

we supply while creating the gradients.

We need to know the pixel positions of the

invisible line that runs from one end of a chord to

the other. These are then used to give the x1,..,y2

attributes of each gradient. We can apply some

trigonometry using the radius of the chord diagram

and the location halfway along each Avenger’s arc

to get back these positions. The full trigonometric

formula has been removed from the following

code, but you will find it in the GitHub repo that

accompanies this article (netm.ag/D3git-280).

To make a unique ID for each chord we create

a string combination of the Avenger’s index value

at each end of a chord. D3’s d3.layout.chord always

sets one (of the Avengers) to source and the other

to target , which makes a unique pair. Later, when

drawing the chords, we can use the same technique

to call the correct gradient.

var grads = svg.append("defs").selectAll("linearGradient")

  .data(chord.chords())

  .enter().append("linearGradient")

  .attr("id", function(d) { return "gradientChord-" + d.source.

index + "-" + d.target.index; })

  .attr("gradientUnits", "userSpaceOnUse")

  //The pixel location of one end of a chord

  .attr("x1", function(d,i) { return /* ...trigonometry based on

d.source values... */ ; })

  .attr("y1", function(d,i) { return /* ... */ })

  //The pixel location of the other end of a chord

.attr("x2", function(d,i) { return /* ... */ })

  .attr("y2", function(d,i) { return /* ... */ });

Since each Avenger is defined by its own index

number, we can make a colour function, colors ,

that returns each Avenger’s colour per index value.

This makes it easy to refer to the right colour while

appending the two colour stops.

grads.append("stop")

  .attr("offset ", "0%")

  .attr("stop-color", function(d){ return colors(d.source.index);

});

grads.append("stop")

  .attr("offset ", "100%")

  .attr("stop-color", function(d){ return colors(d.target.index);

});

All that remains is to call the right gradient ID

while setting the fill style of the chords (with the

same function as we used to set the gradient ID).

ROUNDING UPDuring this tutorial, we’ve looked at four different

ways to use SVG gradients in data visualisations,

but there are always more things you can do. With

gradient animations, you could simulate a flow

from one part of the data visualisation to another,

for example.

So next time you’re designing a data visualisation,

let your creativity run free. With D3.js, you don’t

have to be constrained by what you think are

the limits of the tool. With a little out-of-the-

box thinking and effort, you can make the most

amazing things. 

Figure 4 Each planet’s gradient ha s been set to make it look like a sphere.Here, the four giant planets are clearly visible

Page 90: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 90/116

PROJECTSPrototyping

 Exclusive o!

SAVE 15% ONADOBE CC

Exclusive discount for new

Creative Cloud subscribers

See page 102 for details

90 

 june 2016

 Y

W

DESIGN A MOBILEAPP WITH ADOBE XDDem an Borba s ows you ow A o e Exper ence Des gn CC ena es you

to design and prototype digital experiences quickly and seamlessly

  PROTOTYPING

ABOUT THE AUTHOR

DEMIAN BORBAw: adobe.ly/xd 

t: @demianborba

 job: Productmanager, Adobe

areas of expertise:Design thinking, mobiledevelopment, communityengagement

q: what’s the last lieyou told? a: “Honey, you can inviteyour mom to visit us!”(When I was planning

a surf trip to Mexico)

 VIDEO

Demian Borba hascreated an exclusivescreencast to go withthis tutorial. Watchalong at netm.ag/ 

adobevid-280 

Page 91: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 91/116

Prototyping

  june 2016 

91

rectangle (#FF2BC2 with no border)

in Artboard 1 and set its dimensions

to 375x230 using the property

inspector panel on the right.

05To turn the border or fill on

and off, click on the ‘eye’ icon

on the right. Hit shift+cmd+[ to

send it all the way to the back, or go

to Object > Arrange > Send to Back .

If you want to change colours using

hexadecimal values, click on the

colour icon, and when the native

colour picker pops up, select the

second tab at the top and change

the drop-down to ‘RGB Sliders’.

06  Using the text tool ( T ), click

to create a header for your

team page. Mine is Helvetica Bold,

20, #FFFFFF, x: 18, y: 123.

Let’s start putting together our

list of team members. Draw a grey

square where the team member’s

photo will sit (100x100, x: 8, y: 238,

#D0D0D0 with no border).

07To the right of this, we need

a white rectangle (260x100,

x: 108, y: 238, #FFFFFF with no

border) on which we’ll include the

team member’s name as a header

and job title as a subhead. For now,

use placeholder text, and style it up

as you wish.

08To show this box will be a

tappable area, we’ll include

an arrow icon. Drag ‘path.svg’ from

01First, ensure Adobe XD is

installed on your computer

(netm.ag/XD-280 ). Launch it, take

a look at the welcome screen and

start a new design with an iPhone

6 artboard template.

02Use the Artboard tool

( A ) to create a second

artboard, then change their titles

(by double-clicking on them) to

‘iPhone 6 – Team Page’ and ‘iPhone

6 – Detail Page’. Change both

Artboards’ background colours to

black using the property inspector

on your right. With the Select tool

( V ) selected, you can press the

spacebar at any time to pan across

your design.

03I’ve put together a folder

of assets that I’ll be using

throughout this tutor ial. You can

download them at netm.ag/ 

XDassets-280 . From Finder, drag

‘iphone-status-bar.svg’ to the top

of Artboard 1 ( x: 8, y: 5 ). Then copy

and paste it into Artboard 2, so

both artboards have the status bar

on the top. Hit cmd+L to lock

these status bars in both artboards

so their properties cannot be

modified. To unlock them, you can

use the shortcut again or click the

‘lock’ icon.

04Let’s focus on Artboard 1

(the team page). Using the

Rectangle tool ( R ), draw a pink

Finder onto the XD canvas to

a point off the artboard. Then

reposition it to x: 330, y: 279.

09From Finder, drag a headshot

into place on the grey square.

10Now we can create our list.

At this point, you would

normally be copying and pasting the

top item, moving the copied version

down and adjusting the margin. You

would do the same for new items,

and if you wanted to change the

margins, you would have to do it

manually, one by one.

Well, not with Adobe XD – you

can use the Repeat Grid feature.

Select the items you want to repeat,

click on the ‘Repeat Grid’ button on

the property inspector on your right

( cmd+R ) and use the green handles

to repeat the items vertically. You

could also repeat them horizontally

for a tablet version.

11Adjust the margin of your

repeated grid by hovering on

the edge of your items, clicking and

dragging. Let’s set the margin to 7.

Drag the repeat grid to the bottom

of your artboard. We now have four

rows to play with.

  EXPERT TIP

With the Adobe XDwelcome screen, youcan create projects basedon presets for phones,tablets or the web, oryou can use customdimensions. There areUI kits for Apple iOS,Google Material Designand Microsoft Windows.You can also access agorgeous step-by-step

you through the mainfeatures of Adobe XDfrom the welcome screen.

WELCOME

SCREEN

Step 10 Use the powerful Repeat Grid feature to creat e your list of team members

Step 1 Start your design by selecting the iPhone 6 artboard from your template options

Page 92: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 92/116

PROJECTSPrototyping

92 

 june 2016

the team member’s contact details

(375x45, x: 0, y: 400). Use the Text

tool ( T ) to create a text element

reading ‘Placeholder link’, centre it,

style it up, and place it at

x: 169, y: 416.

16Let’s use the Repeat Grid tool

to create two more instances

of this text element. First, convert

the text to a Repeat Grid ( cmd+R ),

then hold the option key while

expanding your grid horizontally.

Beautiful, isn’t it? Direct-select the

text ( cmd+click ) and change the

contents to read ‘Email’, ‘Twitter’

and ‘LinkedIn’.

17To finish the design, create

a white box (360x214, x: 8,

y: 445) that will include the team

12While properties (colours,

x and y positions, and so on)

are global, each item’s content can

be unique. Edit the text fields to

each individual’s name and job title.

You can double-click to enter the

grid and the group, or cmd+click to

direct-select any element within a

group or repeated grid. Now we just

need to grab all the headshots at

once and drag them onto the grid

and we’re finished with this screen.

13Let’s jump to Artboard 2

(the detail page). Again, we’ll

start with a placeholder rectangle

(375x444, x: 0, y: 0, #FFFFFF with

no border) and drag a headshot to

fill it. We’ll create a darkened effect

by changing the image’s opacity to

60 per cent and sending it to the

back ( shift+cmd+[ ).

14Then lock the headshot item

( cmd+L ) and add another

arrow (‘back-arrow.svg’) to indicate

the user can return to the team list.

This needs to sit at x: 20, y: 40. It is

important to lock the image first,

because otherwise the SVG will

replace the headshot.

15  We want to include a pink bar

on each page, which will list

member’s name and biog. First add

a text element using the placeholder

‘Person name’. For the text element

that holds the biog, we want to use

Area Text. To do this, select the Text

tool ( T ) and click and drag to define

the area for your copy. Again, type

some placeholder text for now, and

adjust its styling properties.

18Now let’s make some new

artboards for other team

members. First unlock the main

image ( cmd+L ), then click on

Artboard 2’s title to select it, and

hit cmd+C to copy it. Zoom out

( cmd+- or use the trackpad to

pinch-to-zoom), then hit cmd+V

to paste three new artboards.

Add some biog info to each page.

Update the names and headshot

images, and arrange the artboards

on the canvas. Cool! Our design is

finished for now.

19  It’s time to start defining the

app’s flow. A prototype can

be worth a thousand meetings, so

we will create one to communicate

our design intent. Simply jump to

Prototype Mode (top left), select

the item that will be tapped by the

user (hold cmd to direct-select),

and drag a wire to the right

artboard. When the mouse is

released, we can set the segue,

easing and duration. Simple!

20Let’s go though each of the

items on our list on Artboard

1 and wire them to their respective

detail page. For each of these, we

Adobe XD’s new Repeat Grid feature enables you to repeat elements quickly and  cmd+R vertically or horizontally. You can adjust the grid’s margin by hovering, clickingand dragging on the edges of your elements. Best yet, you can have your properties multiple images from Finder to your grid to populate placeholder objects.

REPEAT GRID

  EXPERT TIP

Step 18 Duplicate your detail page so there is one f or each team memberStep 12 Drag all the headshots onto the grid

Page 93: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 93/116

Prototyping

  june 2016 

93

want to set the segue to Slide Left,

and the easing to Ease out. Next we

can wire the back arrows on each of

the detail pages back to Artboard 1

– remember to set the segue to

Slide Right this time. Boom – our

prototype is ready.

21To test the prototype, click

on the Play button on the

top right (Preview). You don’t need

to close the Preview window to

update your design or your wires.

Just start making changes, and

they will automatically be reflected

on the Preview window.

22It’s easy to record a video

of your interactions when

testing the prototype. With the

Preview window open, click on the

Record button to start and stop

recording. Save the ‘.mov’ file and

share with your stakeholders.

23To share the prototypes on

the web, click on the last

button on the top right (Share

Online). Click on the Create Link

button. All the assets will be

uploaded to Creative Cloud and a

link will be created. If changes are

necessary, you can go back to

Step 24 You can export designs as PNGs for Web, iOS and Android at different sizes, or S VGsStep 23 Share prototypes on the web

Design Mode, make the changes

and share again. The whole flow

 just works!

24From XD, you can export

PNGs for Web, iOS and

Android at different sizes, as well

as highly optimised SVG files.

25

Congratulations! You’ve

mastered the basics of

Adobe Experience Design CC

(Preview). Feel free to share your

prototypes on the web and social

media – add #adobexd so we can

see your work. 

Step 21 Any changes to your design will be refected immediately in the previ ewStep 20 Wire each item on your list to its respective detail page

  EXPERT TIP

Adobe XD introduces abrand new Pen tool thatenables you to quicklydraw paths. You can evenadd, move, and removeanchor points, editproperties, and adjustBézier curves while you’restill authoring the path,allowing you to draw theperfect shape in no time can edit vector objectsthat you import intoAdobe XD.

PEN TOOL

Page 94: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 94/116

PROJECTSProcess

94 

 june 2016

  PROCESS

At Pusher, we’ve been experimenting with

pattern libraries as a way of encouraging modular

development, simplifying our workflow and

reducing repetition. We’ve created a framework

around which we can build project-specific libraries

of all of the components and elements that makeup our pages, and it has been invaluable.

WHAT IS A PATTERN LIBRARY?Although definitions differ, the core concept of

a pattern library is a collection of frontend patterns

that make up a website. Patterns can be split into

components and elements. Elements tend to be

the smaller items such as form inputs, buttons

and spans. Components are slightly larger: think

navigation bars or image sliders.

GET STARTED WITH

PATTERN LIBRARIESAlex Pate

ABOUT THE AUTHOR

ALEX PATE

w: www.alexpate.uk 

t: @alexjpate

 job: Frontendengineer, Pusher

areas of expertise:SVGs, Sass, building tools

q: what is the last lie

you told? a: That I was going toget this article finishedby December

 RESOURCE

Vault is heavily based

on Primer, a toolcreated by the team

at Rareloop. For aPHP take on pattern

libraries, check it out:

github.com/rareloop/ primer  

A fresh project; a fresh slate. A chance to

put the new tools and techniques you’ve learnt

since the last development cycle into practice. This

is the project that will be hyper-organised. This is

the project where repetition will become a thing

of the past. But old habits die hard and before youknow it, the codebase is bloated, repetitive and

slowing the development team down. Any of that

sound familiar?

Keeping on top of your code is no trivial task.

There are a million and one ‘tips and tricks’ that

promise to be the saving grace of the frontend.

When it comes to design, we hear terms like

‘atomic’ and ‘modular’ being thrown around all the

time. But how do we enforce these methodologies,

and what do they look like in practice?

Exclusive o!

PUSHER: TWOMONTHS FREE

Pusher helps you build realtime apps quickly and easily

See page 96 for details

Page 95: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 95/116

  june 2016 

95

Process

Although they take time up-front to build, the

long-term benefits of pattern libraries are clear.

There’s more consistency, less duplication and

overall, more solid foundations for you to build on.

Likewise, testing becomes a whole lot easier.

Of course, you should still run tests on built pages,

but knowing individual elements and components

will work individually will help streamline the

process and reduce the number of final bugs.

There’s nothing more satisfying for a frontend

developer than knowing an element will just

work, regardless of its surroundings.

Besides the organisational benefits, pattern

libraries can also improve the overall quality

of code. They guide us to adopt modular coding

patterns (such as BEM or OOCSS), and having

a neutral environment to develop in helps to

ensure patterns are free of context-bias (i.e. they

are usable anywhere, in any template).

In the past few months in which we’ve had our

functional library, another benefit has become

clear. Onboarding new developers has suddenly

become a lot quicker. Having an easily digestible

reference for our patterns helps them get started

quickly and encourages them to see each pattern

as a Lego block they can use to build a page.

IS IT WORTH THE EFFORT?

Of course, every new technique comes with its

downsides. Pattern libraries shouldn’t be a place

where code goes to die. They need to be cared

for and maintained.

One of the hardest parts of introducing a new

stage into a product development cycle is building

the habit. I can recall various times when I’ve

discovered that components on production don’t

reflect those in the pattern librar y.

In order to combat this, we opted to use the

library as a proving ground. Rather than seeing

it as an optional extra that sits alongside our

development cycle, we integrated it to the point

that we now build all our patterns in the library

first, before porting them to create page templates.

Changes to existing patterns are first done in

the pattern library, and then on production. This

ensures the library is kept up to date.

Pattern libraries bringmore consistency, lessduplication and moresolid foundations

HOW DO I GET STARTED?

There are loads of great resources out there to help

you set up your own pattern library. Explore free,

open source frameworks such as Pattern Lab, or

check out example pattern libraries from the likes

of MailChimp (ux.mailchimp.com/patterns) or A List

Apart (patterns.alistapart.com).

We required something much simpler for our

projects at Pusher. In the end, we decided to build

our own framework using the tool our customer-

facing products are built on: Rails. Enter Vault.

On top of the benefits that pattern libraries bring

by default, we also set out some key criteria we

wanted our library to meet.

Firstly: creating new patterns should be a breeze.

We opted to take advantage of Rails’ built-in

generator. Creating the relevant files for a new

component is now just a case of running:

rails generate component navigation/global

This will then create the relevant Sass partial

( components/navigation/_global.scss ), and view partial

( components/navigation/_global.html.erb ), and well as

adding the necessary reference within the main

style sheet.

Secondly, the library should be easy to update

and sit in a centralised location where everyone

can access it. With it being Rails, we opted to host

it on Heroku (although of course, other web hosting

providers are no doubt just as good!).

Although we have afforded ourselves some

luxuries, such as filtering and quick access to

the raw HTML code, for the most part we wanted

something that would sit in the background.

The framework needed to be as stripped-back as

possible, to let the patterns take centre stage.

CONCLUSION

From the perspective of solving our problem,

Vault has been a success. It has improved our

workflow, but more importantly it has made

our codebase cleaner and leaner.

Having such success with Vault internally,

we decided to open source it to the development

community (github.com/pusher/vault) and we

would love to hear what you think. If you have

any comments or questions send me a message

on Twitter.

Although, like all tools, there is no one-size-fits-

all solution. The project was hacked together in a

couple of days, and although it works for us, don’t

feel inclined to use it if it doesn’t suit you. If you’re

after something a bit different, consider building

something from scratch.

Page 96: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 96/116

Page 97: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 97/116

Head to head

  june 2016 

97

Clayton Hunt explores which JavaScript framework

will help you tackle your testing needs

ABOUT THE AUTHOR

CLAYTON HUNTw: www.programming

fromscratch.com 

t: @ClaytonHunt_104

 job: Software consultant

areas of expertise:C#, JavaScript

q: what is the last lieyou told? 

a: I spent a bit more on mySurface Book than I waswilling to admit at the time

 

Jasmine ( jasmine.github.io ) is an all-in-one BDD

(behavior-driven design) testing framework that can

be used either in the browser or in node. Out of the

box, it handles asynchronous tests, mocking objects,

custom matchers, and running test subsets.

Jasmine uses an expect function to start all

assertions, followed by a matcher that will

determine if the value passed to the expect is

a match. Any matcher can be negated with a not

between the expect and the matcher.

A callback allows asynchronous tests to finish. To

create synchronous tests, Jasmine’s Clock enables

users to step through time and control the execution

of timeout and interval functions.

Jasmine includes a ‘spies’ feature that allows any

object or function to be mocked. Calls to a function

can be verified, parameters checked, and alternate

values returned. Spies can help turn untestable

code into testable code.

A suite of tests can be disabled using xdescribe .

Similarly, a test can be marked pending and thereby

skipped by using xit . Jasmine can focus on a test suite

with fdescribe , or a test with fit .

Mocha (mochajs.org ) is a highly extensible unit testing

framework that can be used with both node and the

browser. Using plugins such as Chai, Should a nd Sinon

it is easy to configure a custom testing framework

with exactly the right options for your project.

Mocha uses plugins like Chai, Should and better-

assert to handle assertions. Chai includes an expect

function followed by a fluent syntax that allows for

very expressive tests. Assertions in Mocha can also

be negated using not .

Mocha enables users to use a callback to signify the

completion of asynchronous tests. In order to avoid

writing asynchronous tests, another library (such as

Sinon) would have to be used.

Mocha provides no direct mocking facilities. As

with asynchronous testing, a librar y like Sinon must

be used to provide mocking capa bilities. Sinon is

commonly used with Mocha to verify call counts and

alter the return values of the targeted function.

Mocha will mark a test as pending if the tes t does not

have a function. It can isolate by appending only to

the it or describe . Marking more than one test or

suite with only can have unexpected results.

ASSERTIONS

ASYNCHRONOUS TESTS

MOCKING

TEST SUBSETS

JASMINE MOCHA

Both libraries are perfectly equipped for testing your JavaScript. Recently I switched fromJasmine to Mocha. However, after writing this I think Jasmine may be the better library forme. Jasmine provides what feels like a more natural expectation syntax, and its Clock wouldhave helped tremendously in testing a piece of asynchronous code I have recently written.

CONCLUSION

 FACT FILE

JASMINE

DOCUMENTATIONThe documentation

for Jasmine also formsthe tests that verify the

framework is working.Each piece of Jasmine’s

library is demonstratedand verified at the

same time.

MOCHA GROWLUsing a growl reporter,

Mocha can notify youof test results with

a toast notification.This means you can

minimise the browserwindow running the

tests while you work.

JASMINE VS MOCHA

 HEAD TO HEAD

Page 98: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 98/116

PROJECTSMobile UX

98 

 june 2016

 RESOURCE

For lots more insights,tips and advice fordesigning mobileinterfaces that arecomfortable to use, takea look at the excellentDesigning for Touch  byJosh Clark: netm.ag/ 

clark-280

My wife and I bought some new cutlery a few

years ago. It’s a great looking set: big, chunky

handles with sharp lines cut from gleaming stainless

steel. It looks great on the table, but we never

actually use it. Not because it’s too fragile or too nice

to use every day (like the niceness will somehow

wear off), but because it’s too damn uncomfortable

to use. Those sharp lines might look great, but they

cut into your hands. Those chunky handles make

the utensils heavy and unwieldy.

I often think of my poor, unused cutlery set when

I use some mobile designs: they might look great

on the surface, but start to use them and you soon

find out that an all-too-important factor has been

neglected: the ergonomics. The noble art of creating

designs that fit the human body (rather than the

other way around) is one of the true unsung heroes

of the design world.

Ergonomics has always been very important to

industrial designers, but it’s becoming increasingly

important to digital designers as well. Why? Becausesmartphones and tablets are changing the way we

interact with digital designs. We no longer only

use a cumbersome keyboard and a mouse to tell

our digital friends what to do. Now it’s more direct,

more physical. We hold our devices. We tap them.

We pinch them. We lovingly stroke them.

This increasingly physical bond with our beloved

mobile devices forces designers to not only think

about how a design looks and feels, but also the

physical aspects of using it. It forces designers to

think about how users hold and interact with their

smartphones and tablets; about how much of the

screen they can comfortably reach and how a design

will feel in the hand. It forces designers to think

about the ergonomics of a mobile design.

So how do you go about creating a mobile design

that is ergonomic and therefore comfortable to use?

This is how I do it.

1 GET OUT OF THE OFFICEEven before I start thinking about possible designs

I like to get out of the office to carry out some first-

hand observations. I might spend a morning or

afternoon looking at where, when, how and why

people are using their mobile devices.

I will make a note of how people are holding

and interacting with their device, what they might

be doing at the time and the sorts of challenges and

distractions they might have to contend with. This

information will help inform the ergonomics of the

design, and means that when it comes to testinga design I can test against scenarios I know actually

happen in the real world.

2 DESIGN FOR MULTIPLE HOLDSIf you observe people using mobile devices, you’ll

soon see that they use a variety of different holds

(see image opposite). The variety of holds used and

the frequency with which users change their hold

means it’s important to design with multiple holds

in mind. For example, I usually start a smartphone

11 TIP F R ERG N MI

M BILE INTERFA ENeil Turner runs down 11 tips or creating mobile and tablet

  MOBILE UXABOUT THE AUTHOR

NEIL TUR NERw: uxforthemasses.com 

t: @neilturnerux

 job: UX designer

areas of expertise:

UX design, UX research,agile UX

q: what is the last lie

you told? a: That the tooth fairy isreal (sorry, should havehad a spoiler alert)

Page 99: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 99/116

 

 june 2016 

99

Mobile UX

design with one-handed use in mind (as this is the

most challenging), but will always test designs out

across a range of holds to see how comfortable each

of them are.

3 PLACE POPULAR CONTROLS IN REACHI always try to place frequently used controls, such

as buttons and links, where they can be easily

reached by fingers or thumbs. The middle and

bottom of the screen are good areas to use, although

bottom corners can be tricky to tap when a device is

being held in only one hard.

It’s still the convention to place menus at the top

of the screen. However, this can be a hard-to-reach

area, so it’s a good idea to also support a swipe

action to bring up the menu.

4 PLACE CONTENT ABOVE CONTROLSYou don’t want someone’s finger or thumb obscuring

the content as they tap the screen, so I’ll always try

to place content above controls. I’ll also ensure key

information is not in an area of the screen where it

can easily be obscured by a finger or thumb – such

as the bottom corners, which are frequently covered

up when a smartphone is held in one hand.

5 DESIGN WITH PORTRAIT MODE IN MINDWhilst the hold used might change, one thing that

is much more consistent for both smartphones

and tablets is the tendency for people to hold them

vertically for the majority of the time. A horizontal

hold is often used for particular tasks, such as

viewing videos or photos, but this is the exception,

not the norm.

Of course a mobile design should ideally support

both portrait (vertical) and landscape (horizontal)

modes, but unless I’m designing a video or photo-

How do you usually hold your mobile? One-handed? Two-

handed? I’m a cradle in one hand, tap with the other kind of

guy. There are lots of dif ferent ways someone can hold a mobile.

In a 2013 study (netm.ag/hold-280 ) the subjects used their mobile

in one hand for about half the t ime (49 per cent), cradled it in one

hand and tapped with the other for about a third of the time (36

per cent), and for the remaining 15 per cent of the time held it with

two hands, and tapped with their thumbs. I suspect today you’d see

even more two-handed use, as the growing size of smartphones

makes one-handed use increasingly difficult.

The study also found that 90 per cent of the time people hold

their smartphone vertically, and will frequently change their hold

depending on what they’re doing. For example, they might swap to

a two-handed thumbs hold when typing, or utilise a one-handed

grip when carrying a drink.

As you would expect, people hold tablets differently from their

smartphones. A recent study (netm.ag/tablet-280 ) found that the

majority (88 per cent) of tablet use takes p lace whilst seated. Tablet

users are likely to tap away with both hands whilst the t ablet is flat

or propped up, or use one hand to secure the tablet and the other to

tap. Tablet users are also more likely to hold their tablet vertically,

with 60 per cent of use taking place in portrait mode.

  IN-DEPTH

HOW WE HOLD

OUR DEVICES

Hold on The three main holds used for a smartphone, and the frequency whichthey’re typically used (images and figures from netm.ag/hold-280 )

Device usage This study (netm.ag/tablet-280 ) explores how people use

mobile, tablet and phablet devices

Out of the way The BBC iPlayer iPad app places controls in easy to reac h areas

and below content

Page 100: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 100/116

PROJECTSMobile UX

100 

 june 2016

heavy site or application, I will always design with

portrait mode in mind.

6 DESIGN FOR THUMBSThumbs drive the majority of all smartphone

interactions. This is because thumbs are exclusively

used when a mobile is held in one hand and heavily

used when it is held in two hands. If you take a look

at your own thumbs you’ll notice that they’re slightly

larger than your fingers, and therefore need a larger

tap target.

I always try to make tap targets at least 44 x 44

points (16 x 16mm), with at least 7 points (2.5mm)

between them. Bigger tap targets are always better

and you should certainly not go any smaller than

44 x 30 points (16 x 11mm).

Even if I’m designing for tablets, I will still design

for thumbs because a design should support the

least accurate method of touch that it wil l encounter.

A large tap target isn’t just good for thumbs, it’s

great for fingers too.

Bigger tap targets arebetter. There’s no biggertarget than the wholescreen, so design withlarge gestures in mind

FACEBOOK’S MOBILE APP

Mobile is pretty important to Facebook. Nearly a billion

users and counting access Facebook on their phone every

day, and an increasing number only  access Facebook on their

mobile. Fortunately the Facebook team clearly know a thing or

two about ergonomics. The Facebook app is a great example of

an ergonomic mobile design.

The team understand the impor tance of designing for multiple

holds and ensuring the design works well when used one-handed

or two-handed, and in both portrait and landscape modes. The

main feed can be easily navigated with a deft f lick and tap of the

thumb, and big gestures are supported, such as a swipe-to-the-

right or -left to change the view.

Controls are largely in the middle and bottom of the screen,

where they are within easy reach of fingers and thumbs. When

more options are available, such as after tapping the drop-down

arrow for a particular post, these appear at the bottom of the

screen. Content is always above controls so users can still see what

they’re interacting with, and although links and icons are a little

on the small side, they are at least well spaced out. Big blocks of

content also make for nice large tap targets.

The one area Facebook does fall down on is minimising

interactions. Given that Facebook wants users to stay on their

app as long as possible, this is hardly surprising – and it is the

only blemish in an otherwise ergonomically excellent design.

  CASE STUDY

Easy use The Facebook app is a great example of an ergonomic mobile

design, and is comforta ble to use with one or both hands

Thumbs up The Spotify app is certainly designed to be thumb-friendly,

with nice large tap targets

Page 101: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 101/116

 

 june 2016 

101

Mobile UX

7 DESIGN FOR BIG GESTURES

I’ve said that bigger tap targets are better. What

bigger tap target is there than the whole screen?

Try and design with big gestures in mind, such

as allowing users to swipe to move forwards or

backwards in a photo gallery, or to bring up a

menu. Remember users might not realise a gesture

is supported, so it’s always a good idea to provide

a secondary way to do something, such as tapping

an arrow icon to bring up the next photo.

8 RISE TO THE CHALLENGE

In ergonomics you sometimes hear talk of designing

to suit at least 95 per cent of users by creating a

design that is comfortable from the 2.5th to the

97.5th percentile of users. There will always be

extreme users that are very hard to accommodate

– as we all know you can’t please everyone all the

time, but if you can create a design that the more

challenging users can use with comfort, it should

also work for all those in between. This is why I

design with challenging users and scenarios in mind.

For example, think of a busy commuter walking

down the street with coffee in one hand and mobile

phone in the other, or someone with arthritis.

9 KEEP INTERACTIONS TO A MINIMUM

Do you know which the most comfortable mobile

device interaction is? It’s not a tap, or a swipe,

or a press. It’s no interaction at all. The less

interaction your mobile design requires, the less

you have to worry about the ergonomics. I always

try to keep interactions to a minimum. Ruthlessly

cut down mobile forms, use autosuggests, and

restrict notifications to only the things a user

really needs to be notified about.

10 PROTOTYPE DESIGNS

You simply can’t judge the ergonomics of a mobile

design until you can physically hold it in your

hands and try out different grips. This is why I will

prototype a design as soon as possible. My tool of

choice is Axure, but there are lots of other great

prototyping tools. In the past I’ve even run user tests

with simple paper prototypes. A sketch or paper

printout stuck onto a mobile device will tell you

a surprising amount about the ergonomics.

11 TEST, TEST, THEN TEST SOME MORE

Want to know the one guaranteed way to create

ergonomic mobile designs? It’s to test designs, then

iterate and test, iterate and test ... and continue until

you’ve got a bunch of different people, covering a

bunch of different devices, all reporting that the

design is comfortable to use. It’s that simple.

Mobile devices are of course designed to be

‘mobile’, so I will tr y to get out of the office and testdesigns in the environments and situations they’re

likely to be used in. Coffee shops are a favourite

of mine. I try to test designs with as many people

as possible (at least five or six) and focus on more

challenging scenarios, such as using a smartphone

one-handed. If the design works well when the user’s

interactions are more constrained, it’s sure to excel

the rest of the time. It’s primarily by continually

testing and iterating that you can create truly

ergonomic mobile designs.Test time To test a design you need to be able to hold it in your hands.For this there are plenty of protot yping tools available, including Axure

Within reach

Green areas are easy toreach, amber takes more

effort and red areas arehard to reach (image from

netm.ag/hold-280 )

Page 102: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 102/116

Save 15% on your first year when you become anAdobe CC member! Follow this link to redeem:

GET 15% OFFCREATIVE CLOUD

netm.ag/AdobeCC-280Terms & conditions:

Discount applies to the All Apps plan (individual membership) and is eligible to readers that are new to theAdobe Creative Cloud only. The offer excludes the United States, Canada and Mexico and expires 31 July 2016.

Page 103: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 103/116

Standards

  june 2016 103

WebAssembly is an emerging standard

that defines a low-level, high-performance

compiler target to complement JavaScript. That is,

WebAssembly is not something you’d typically

write directly, but something you’d compile from

another language. For size and load-time efficiency,

WebAssembly defines a binary over-the-wire

format, along with a human-readable text format

that browsers will show for viewing, debugging,

profiling or modifying purposes.

To understand the purpose of WebAssembly,

we can look at how developers are already using the

related technologies. Emscripten is an open source

compiler from C/C++ to JS based on clang/LLVM, and

asm.js is the low-level, highly optimisable subset

of JS generated by Emscripten.

Emscripten can be used to compile whole, portableC/C++ applications by leveraging the SDL, OpenGL,

OpenAL and other API portability layers provided

by Emscripten, as well as the high performance of

asm.js. These applications often contain millions

of lines of code, written over many years, making

a manual rewrite to JS almost impossible.

Another common use for Emscripten is to compile

standalone C/C++ libraries and wrap the generated

asm.js with a more idiomatic JS interface so the

library can be easily used as part of a larger JS

application. Any computationally intensive task

is a good candidate (for example, cryptographic

algorithms, mapping or databases).

So why do we need a new standard? One reason

is that, for large codebases, JavaScript parse time

becomes a bottleneck – preliminary experiments

show WebAssembly decoding more than an order

of magnitude faster.

Another reason is that JavaScript is a high-

level language and its semantics don’t perfectly

line up with what a low-level compiler needs to

generate. As a new standard with a low-level focus,

WebAssembly is able to tailor its instruction set to

match the compiler’s needs, which allows better

performance while preserving all the safety and

portability of JavaScript.

That being said, asm.js has been a critical

stepping stone for WebAssembly in several ways.

On a technical level, asm.js implementations

demonstrated a new, lightweight sandboxing

strategy that allows much tighter web integration

than previous plugin approaches, while delivering

near-native performance. On a practical level,

we are providing a polyfill for WebAssembly

by translating to asm.js when browsers don’t

have native WebAssembly support.

CURRENT PROGRESS

Standardisation work is currently ongoing in a

W3C Community Group, with active work in public

GitHub repos (webassembly.github.io). Progress has

been fast, with experimental implementation work

in all major browsers. Demos should soon become

available that run on multiple browsers (on preview

builds, after setting a user preference) followed by

a period of feedback, iteration and convergence on

the initial spec. At our current pace, we may see

native implementations of the initial WebAssembly

feature set landing in mainstream browsers as

early as this year. And with the asm.js-based

polyfill, developers should be able to start usingWebAssembly even sooner.

Once this work stabilises, we already have a big

list of additional features, ordered by demand and

feedback, that will allow WebAssembly to integrate

more tightly with the web platform and support

more languages. Exciting times ahead!

WEBASSEMBLYLuke Wagner 

of this emerging web compiler target

Luke (blog.mozilla.org/luke ) is a research engineer at Mozilla and

co-chairs the W3C WebAssembly Community Group. He was

one of the inventors of asm.js and implemented the initial asm.js

optimisations in Firefox    P

   R   O   F   I   L   E

 JAVASCRIPT

Page 104: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 104/116

PROJECTSChrome

104 

 june 2016

Chrome Developer Tools offer a wealth of

features to help you debug your websites. You

can access them by clicking the hamburger menu in

the top-right of your screen and going to ‘More tools

> Developer tools’. Within the DevTools you’ll find a

number of different tabs, including Sources (which

deals with information about scripts), Console

(an interactive command-line) and Network (which

monitors the network connections of pages). In this

article I’ll take a closer look at each of these three

tabs, and explore how they can give you insights into

your scripts and network traffic.

SOURCESThe Sources tab is packed full of features to tell you

what is going on while your scripts are running.

Your first question might be how you can see what

your scripts are doing while they are running at

their usual speed. Let’s get started by learning how

to pause the execution of your script. If you select

a script from the File Explorer pane on the left, its

contents will appear in the main pane. Clicking on

a line number in this pane will create a breakpoint,

which will pause the execution of a script before

the line is evaluated.

While your script is paused, you can inspect the

values of your variables in the Scope pane on the

right. You can even expand objects and inspect

their properties, and double-click them to change

their values. If you remember the days of debugging

scripts using only the alert() function, this will be

an especially exciting feature!

GET M RE FR M

HR ME DEVT LKatie Fenn digs into the Sources, Console and Network tabs

to reveal how they can provide insights into your web pages

  CHROME

ABOUT THE AUTHOR

KATIE FENNw: www.katiefenn.co.uk 

t: @katie_fenn

 job: Senior UI develo per,Sky Betting & Gaming

areas of expertise:JS, CSS, PHP, test-drivendevelopment, React

q: what’s the last lieyou told? a: ‘Pluto is not a planet’

 VIDEO

Katie Fenn presented‘Chrome DevTools: Frontto Back’ at ScotlandJS2015. In it, she exploredsome of the featuresfrom this article, as wellas introducing somenew ones: netm.ag/ scotlandjs-280 

Page 105: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 105/116

  june 2016 

105

Chrome

The Call Stack pane on the left of the window

shows a list of in-progress function calls. Functions

in the callstack appear above the function that called

them. The function at the top is the current scope,

followed by the function that called it.

Clicking on functions in the list will show the

line where the call was made, and the Scope pane

will refresh to list variables when the function was

called. The ability to trace function calls is invaluable

when debugging your code, because it allows you to

work backwards from a variable’s unexpected value

and find out where things went wrong.

The Watch pane allows you to enter lines of

 JavaScript code that will be run every time your

script pauses at a breakpoint. It will display the

returned value for each line of code you enter, which

is much quicker than hovering over code with your

mouse. You can use any variables or functions that

are in-scope when the script pauses, including

global functions such as jQuery.

Clicking on the {} symbol at the bottom of the

window inserts line breaks into minified code. This

makes it slightly easier to read the soup of condensed

code on production sites.

Execution ControlBeing able to pause scripts isn’t much use if you

can’t resume them again. The Execution Control

buttons (see image at the top of page 98) are the most

powerful feature of the Sources tab. The first four

control how the script resumes:

 Resume: When your script is paused, this is

highlighted in blue. It restarts the execution

of paused scripts. Execution continues until

the next breakpoint is encountered.

 Step over: This will resume the script and pause

execution on the following line, ‘stepping over’

any functions called.

 Step into: This resumes execution and pauses

the script on the first line of the next function

that is called. If paused on a line that calls two

functions, and the first has already been called,

the debugger will step into the second function.

If no function is called, it functions identically

to the step over button.

The console is an interactive JavaScript prompt that you

can run code in to help you debug your scripts. For instance,

running console.log(window) will output the global properties of

the window object, and running window.blah = "blah" will add new

property "blah" . console.table() displays array and object data in

a formatted table.

console.warn() , console.error() , console.debug() and console.

info() work the same way as console.log() . However, they are

colour-coded for convenience and can be shown or hidden using

the console filter controls.

DevTools gives you a shortcut for selecting elements similar

to jQuery. $$('.menu') will select elements similar to jQuery’s

selection API. $0 to $4 store references to the last five selected

elements in the Elements tab. time() will start a timer that can be

stopped and displayed with timeEnd() . This can be used as a quick

and simple benchmarking tool.

 debugger acts in the same way as sett ing a breakpoint, which

is convenient on those occasions when your code is more accessible

in your editor than in DevTools. When your scripts are paused in

the Sources tab, the scope of the console will match that of your

paused script. This will give you access to all the variables and

functions your code does.

CONSOLE

  IN-DEPTH

Script manipulation The sources tab can pause execution of scripts, inspect their state and

play them out step by step

The Sources tab is fullof features to tell youwhat is going on whileyour scripts are running

Page 106: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 106/116

PROJECTSChrome

106 

 june 2016

 Step out: Resumes execution and pauses the script

when the current function returns to the line it

was called from.

There are two more buttons, but these are not

concerned with script resumption. Deactivate

breakpoints stops breakpoints pausing the execution

of scripts. This is useful when you are debugging

code that is executed often and that you want to

ignore. Pause on exceptions will pause your scripts

immediately before exceptions are thrown, and can

help you investigate errors.

NETWORKThe Network tab’s job is to monitor the network

connections of your web pages. Whether it is a web

page, a script, an image, a style sheet or even a

WebSocket connection, this tab shows all.

WaterfallUnder the Network tab is a chart of the requests

a page makes for resources. Each row represents

a single request, and includes details of its size, its

type and the time taken to download. The requests

are visualised by a timeline affectionately known

FURTHER READING

  FOCUS ON

These resources will teach you about dif ferent ways to

use Chrome’s DevTools, and help you stay up to date with

the latest features.

Chrome DevTools homepagenetm.ag/homepage-280 

The Chrome DevTools site is full of links to documentation and

useful resources. It’s also worth following the official Twitter

account (@chromedevtools) to find out about features as soon

as they are announced, and discover tips and tricks.

Node inspectorgithub.com/node-inspector/node-inspector 

This open source project enables you to debug Node.js scripts

using DevTools. You can use it to step through server-side

code, view outgoing HTTP requests, and even profile the

performance of scripts.

What’s new in Chrome DevToolsnetm.ag/osmani-280 

Addy Osmani’s 2015 talk is a great resource for discovering

the latest and greatest features of DevTools. Osmani works

at Google on the Chrome project.

Remote debugging on Android with Chromenetm.ag/debugging-280 

Use DevTools to remotely debug websites on Android

devices. This is an essential part of developing sites for mobile

platforms, because running your code on real devices often

exposes things emulators do not.

Firefox Developer Toolsnetm.ag/firefox-280 

Firefox also has a great set of developer tools, which will be

familiar to anyone who has used Chrome DevTools.

Network info The Network tab shows all network traffic and gives youpowerful features for troubleshooting performance problems

Execution control (L-R): Resume, step over, step into, step out, deactivate

breakpoints, pause on exceptions

Page 107: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 107/116

 

 june 2016 

107

Chrome

as the waterfall, due to the cascading way files are

loaded as the browser parses the page.

You may have noticed that the bars are split into

two sections. The lighter colour represents the

time spent on tasks occurring before the actual

request, such as DNS lookups and queuing for one of

Chrome’s six network connections. The darker colour

represents the request itself: sending the request,

waiting for the server to respond, and downloading

the resource. If you mouse over the bar, DevTools

will show you a breakdown of each.

The timeline is useful for troubleshooting the

order and content of data you are sending across the

network, which can guide you towards the goal of

a faster-loading website. Downloading scripts and

style sheets stops the browser parsing your HTML

and rendering it to the screen, so you may want to

use the waterfall to slim them down or prioritise

their order in the page.

Clicking on the names of requests will show you

detailed information, including the HTTP status

code, the URL and IP address, and the request and

response header information. The Response tab

shows you the raw body of the returned data, and the

Preview tab formats response data for requests to

 JSON and XML files in an expandable tree.

Waterfall items can be filtered by clicking on

the icon that looks like a funnel, and you can filter

items by filename by entering text into the free text

field. You can even query against HTTP status codes,

response headers, HTTP method and response size

– try experimenting with the field’s autocompletion

to discover what you can do.

ScreenshotsOne of the most useful features for optimising the

order content is loaded in is screenshot capture.

Click the camera icon in the top left to turn this on.

This will show snapshots of your page at specific

intervals when it is downloading. You can click on

the screenshots to see the exact point in the timeline

at which it was taken. Double-clicking displays an

expanded view of the screenshot.

Screenshots allow you to finely optimise how the

page content loads. If your content only becomes

visible very late in the timeline, a style sheet or

a web font might be taking too long to download and

need optimising. Improving a page’s time to first

render keeps your users happy.

ThrottlingOne of your most important concerns when building

a modern website is how it performs on mobiles

and tablets, when connectivity is at a premium. To

simulate slow connections, DevTools has a network

throttling feature that slows your connection to the

speed of a 2G or 3G line. To enable it, click on the

drop-down menu where it says ‘No throttling’. Here

you can select a range of network profiles, and even

simulate being offline.

When throttling is enabled, a warning icon is

displayed in the Network tab title bar to remind you.

It is not unusual to forget and start wondering why

your connection is so bad!

CONCLUSIONThis article only briefly summarises the features

DevTools gives you to debug your sites. Once you’ve

stepped through your own code in the Sources tab

and seen exactly what it is doing, you will be able

to find and fix problems quicker. You will also gain

confidence in tackling the new problems that are

arising as frontend technology advances.

We’ve also glimpsed one of DevTools’ main

features for profiling performance: the Network

tab. Our job as developers is increasingly focused on

making our sites work quicker. Understanding the

Network tab unlocks learning about performance

techniques such as the optimisation of content and

the critical rendering path. It also gives you valuable

evidence of any improvements gained when you

make changes to your site.

Integrating DevTools into your work really pays

off, and the insight it gives you makes you a more

effective developer.

The Network tabmonitors the networkconnections of yourweb pages

Timeline extras Clicking on request names shows request information, such as HTTP request

and response headers

Page 108: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 108/116

PROJECTSAnimation

108 

 june 2016

As GreenSock’s geek ambassador I spend

my days helping users tackle their animation

challenges in our support forums and through

in-person training. I love seeing animators reach

those A-ha! moments when they discover a GSAP

feature that solves a common obstacle. The

following gems usually take beginners a while to

stumble into, but once mastered, can revolutionise

their animation workflow.

If you’re not familiar with the basics of GSAP,

Sara Soueidan has written a great guide (netm.ag/ 

soueidan-280). You should also definitely watch

GreenSock’s Getting Started video (greensock.com/ 

get-started-js).

1 TWEEN A TWEEN! HUH?This gem is a little mind-bending but bear with me

– it’s worth it. At its core, GSAP simply animates the

numeric properties of JavaScript objects. Yeah, that

sounds pretty boring but it’s the secret behind the

flexibility of the entire platform.

Most GSAP animations apply those numeric values

to CSS properties like opacity, transform, width,

height, and so on. To move an object along the

X-axis (left to right):

var myTween = TweenLite.to(".logo", 10, {x:500});

However, what most folks overlook is the fact

that the tween ( "myTween" in this example) is a

 JavaScript object itself, and as a result has various

properties and methods that can be tweened.

For every animation created by GSAP, whether

it be a single tween or a timeline (a collection of

tweens), there are methods for getting and setting

different properties.

For example, the timeScale() method gets or sets

the playback speed of an animation where 1 equals

7 HIDDEN GSAP GEM reveals some often-overlooked features of the GreenSock

Animation Platform that may open a whole new world of possibilities

ABOUT THE AUTHOR

CARL SCHOOFF

w: www.greensock.com

t: @greensock

 job: Geek ambassador,GreenSock

areas of expertise: GSAP, HTML5,training, support

q: what is the last lieyou told? a: The lima beanswere delicious!

RESOURCE

Sara Soueidanpresented a fantastic

overview in theNovember 2015 issue

of net. Find the onlineversion of ‘Supercharge

SVG animations withGSAP’ at netm.ag/ soueidan-280 

View source

files here!You’ll find demos for all the

gems listed here at 

greensock.com/gems 

  ANIMATION

Page 109: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 109/116

  june 2016 

109

Animation

normal speed (the default), 0.5 is half speed, 2

is double speed, and so on.

// returns the current timeScale

myTween.timeScale()

// sets the timeScale to 2 (plays twice as fast)

myTween.timeScale(2)

Instead of setting the timeScale() to a specific value,

which would cause an abrupt change in speed, you

can tween the timeScale() of the tween for super-

smooth acceleration or deceleration.

//accelerate to 4x normal speed over the course of 2 seconds

TweenLite.to(myTween, 2, {timeScale:4, ea se:Power4.easeIn);

Note that when tweening a tween you can provide

any ease you want for even more control, as shown

above. Demos for tweening timeScale() , progress()

and all the other gems listed here can be found at

greensock.com/gems.

2 RANDOM ACCESS RUNTIME CONTROLS

Every GSAP animation, whether it be a single tween

or a timeline with 1,200 tweens, can be controlled

using handy methods like play() , pause() , reverse() ,

and so on. This means that during runtime (while

your animation is playing) the user can interact

with a simple UI and have total control over

playback. One convenient feature that is often

overlooked is that some of these methods accept

HTML5 BANNER ADS

  FOCUS ON

Runtime controls With GSAP’s dynamic runtime controls you can save yourself

hours of development time

Did you know that GSAP is exempt from file size calculations

on every major ad network, including Google’s DoubleClick

and AdWords, AOL’s Advertising.com, Sizmek, Flashtalking and

Flite? It’s the only robust animation library with such widespread

industry support since the demise of Flash.

This in itself is a hidden gem, because it means you can freely tap

into GSAP’s rich feature set in your ads, without worrying about its

file size counting against you on these net works (unless a publisher

objects, which is extremely uncommon).

Native technologies like CSS animations and large JavaScript

libraries like jQuery simply weren’t designed to deliver the precise

choreography animators need for banner ads. GreenSock went to

bat for developers, reaching out to the IAB and the major publishers

to prompt a discussion about file size and performance policies in

the post-Flash world. We’re happy to report that GSAP has been

embraced wholeheartedly, and we’re grateful to the industry for

its support along the way.

For more on HTML5 ads and why we need t o reconsider our

approach to kilobytes in the modern era, read The Kilobyte

Conundrum: greensock.com/kilobyte-conundrum . Now go forth

and build your ads with G SAP.

The tween is a JS objectitself, and has variousproperties and methodsthat can be tweened

Page 110: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 110/116

PROJECTSAnimation

110 

 june 2016

parameters that allow you to jump to a particular

point in an animation.

Below are multiple uses of the play() method to

illustrate this flexibility:

// plays the animation forward from current time

timeline.play();

// jumps 3 seconds into the animation and plays f rom there

timeline.play(3);

// jumps to the "section2" label and plays from there

timeline.play("section2");

Imagine you have a 45-second animation and you

only want to test the last five seconds? No problem,

 just use a negative value:

 // jumps 5 seconds from end of timeline and plays from t here.

timeline.play(-5);

No need to keep watching the first 40 seconds of

the animation over and over each time you preview.

This alone can save you tons of time (and your

sanity) during production.

 Just like play() , the reverse() method can jump

anywhere. A little bonus tip that not many people

know about:

// jump to end of timeline and reverse from there.

timeline.reverse(0)

One of the coolest implementations of GSAP’s

random access abilities is using a scrubber UI to

control the progress() of an animation. An HTML5

range slider works great for this.

var tl = new TimelineLite({paused:true});

tl.from("#hero", 0.5, {scale:0.2, opacity:0})

  .from("#greensock", 0.5, {yPercent:115, ease:Back.easeOut});

 function update(){

  tl.progress(progressSlider.value); // change the timeline’s

progress based on the slider’s value

  }

There’s plenty of free GreenSock tutorials, demos and videos

waiting for you at greensock.com/learning . If you or your team

really want to commit to becoming GSAP expert s through more

formal training options, there are a number of ways to go:

Step-by-step training

www.nobledesktop.com/books/gsap 

This is GreenSock’s off icial curriculum we use in our classes

and on-site training. Learn GSAP through a series of real-world

projects, with detailed step-by-step instructions. Available in print

or ebook, with complete lesson files for Mac and PC .

On-site training

greensock.com/training 

Carl Schooff will visit your office and guide you through GSAP in the

most direct and entert aining way. Need an accelerated overview?

Or perhaps HTML5 banners are your biggest hurdle? No problem.

The training can be fine-tuned to meet your t eam’s current skill

level. You’ll learn tips and tr icks you won’t find anywhere else.

Learn GSAP in NYC

www.nobledesktop.com/classes/greensock 

Carl Schooff will be teaching GreenSock’s two-d ay comprehensive

class at Noble Desktop in NYC this June. Boost your animation

skills while you take in the best a NYC summer has to of fer. Noble

Desktop’s world-class training facilities provide a fantastic learning

environment. Book soon as seats are limited.

Video tutorials

netm.ag/tichy-280 

Petr Tichy is a talented GSAP animator with a hear t for training

developers. He is extremely skilled at communicating complex

concepts in a way everyone can understand. His GreenSock

Workshop provides over eight hours of high-quality videos that will

show you how to build three impressive GSAP projects. His blog at

ihatetomatoes.net  is loaded with excellent tutorials as well.

LEARN GSAP

  RESOURCES

As well as standard

number of customisable

eases crafted to serve

Page 111: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 111/116

 

 june 2016 

111

Animation

progressSlider.addEventListener("input", update);

This type of precise control makes it super-easy

to get to any part of an animation and study it

repeatedly, as fast or slow as you want.

3 DRAG AND SPIN

GreenSock’s Draggable was originally built to

show off some advanced momentum-based

animation capabilities of ThrowPropsPlugin , such

as flicking elements around a screen and making

them naturally drift to a stop within boundaries.

However, it turned into much more than that.

At its most basic, it makes interactive dragging

or spinning any DOM element crazy simple, even

when you’re dealing with SVGs.

// allow dragging along x and y axis (using transforms)

Draggable.create("#myDiv", {type:"x,y");

// confine movement only along x a xis inside an element with

id of stage

Draggable.create("#myDiv", {type:"x" bounds:"#sta ge"});

// spin

Draggable.create("#myDiv", {type:"rotation"});

Draggable has some advanced features:

  getDirection() – Find out which direction the

element is being dragged

  autoScroll – Dragging an element close to the

edge of its container causes it to smoothly scroll

at a speed based on its proximity to the edge

  hitTest() – Find out when the element overlaps

another element by a certain percentage

  liveSnap – Snap to sets of coordinates while

dragging

  throw – Integrated with ThrowPropsPlugin , this

creates natural, momentum-based physics after

being released (flicking)

One of Draggable’s most exciting features is that

it even works on elements with nested transforms.

You can drag an element that’s inside a rotated

container, for example.Draggable is one of GSAP’s most unique tools,

but few people know about it – probably because

dragging is not always associated with animation.

It is completely integrated with GSAP’s animation

core for ultra-high performance and consistency.

4 EXPRESSIVE EASES

Think of easing like the style of a movement. It has

a tremendous effect on how your animations feel to

the audience. Do you want things to glide to a stop

or bounce? Or accelerate in and out, jerk around,

or act like a rubber band?

Your easing choice can make the difference

between a robotic, lifeless animation and a mind-

blowingly realistic one. In addition to all the

standard eases that are widely available, GSAP

offers several customisable eases that have been

crafted to serve very specific needs.

 RoughEase takes a smooth ease curve and adds

deviations to produce a very jagged or rough curve.

It can be configured to deliver wildly erratic and

random jolts, or consistent back and forth motions.

It is perfect for shake and flicker effects.

 SteppedEase provides an easy way to define the

specific number of steps a transition should take.

The easing curve literally looks like steps. For

example, if x is 0 and you want to tween it to 100

with five steps (20, 40, 60, 80, and 100) over the

course of two seconds, you’d do:

TweenLite.to(obj, 2, {x:100, ease:SteppedEase.config(5)});

 SteppedEase is extremely useful for sprite sheet

animations as it allows images to be offset by

specific intervals over any length of time.

SlowMo makes it simple to achieve a slow-

motion effect. It combines three eases into one,

starting fast, decelerating ( easeOut ) to a constant

rate ( Linear ) and then accelerating ( easeIn ) at the

end. You can configure how long the animation

should stay linear and how strong the eases at the

beginning and end should be. It’s perfect for text

Ease visualiser GreenSock’s Ease Visualizer provides an easy way to test every ease and configure

expressive eases

Page 112: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 112/116

PROJECTSAnimation

112 

 june 2016

effects that you want to shoot in quickly, linger and

then accelerate out.

In addition to the demo for these eases, be sure to

experiment with every ease in our Ease Visualizer:

greensock.com/ease-visualizer .

5 RENDER ANYWHEREA common misperception is that GSAP is just for

animating DOM elements or SVG. Not true. It can

animate almost any property of any object ( <canvas>

animations, attributes, CSS rules, or even generic

 JavaScript objects, all using exactly the same

syntax).

Want to use a 2D WebGL renderer like Pixi.js or

go 3D with three.js? No problem. Below is some

code for animating three circles rendered by DOM,

WebGL (Pixi) and SVG:

//identical syntax regardless of where things are rendered

TweenMax.to(PIXICircle.position, 2, {y:250t});

TweenMax.to("#DOMCircle", 2, {y:250});

TweenMax.to("#SVGCircle", 2, {y:250});

When you invest time to learn GSAP, you’ll be

amazed at how this knowledge can be transferredto a wide range of projects. GSAP even works great

with Adobe Animate CC.

6 TAKE CONTROL OF GSAP ANIMATIONSImagine a web page, app or game with a bunch of

animations running that you need to pause all at

once when the user clicks a button. With GSAP it’s

easy. TimelineLite has an exportRoot() method that

gathers all active animations and wraps them in

a single timeline that you can control.

By applying what you learned in the first gem,

you could even tween the timeScale() of that

timeline and put your whole game (missiles, enemy

movements, explosions) into slow-motion with

 just two lines of code:

// place all active animations in one timeline

var tl = TimelineLite.exportRoot();

// slow down all animations to quarter-speed over the course

of 1 second

TweenLite.to(tl, 1, {timeScale:0.25});

To see a practical implementation of this technique,

visit www.greensock.com and notice the animation

up at the top, then click on the green ‘Download

GSAP’ button. The animation pauses when the

overlay opens and then resumes when it closes.

The code that is run when the overlay opens has

no idea of the names of the animations that are

running or how many there are, it just grabs them

all with exportRoot() .

7 ADVANCED SVG SHAPE MORPHINGWant to morph a circle into a hippo into a star and

then into an elephant? No problem. We need just

three lines of code:

tl.to(circle, 1, {morphSVG:"#hippo"}, "+=1")

  .to(circ le, 1, {morphSVG :"#st ar"}, "+=1")

  .t o(circle, 1, {morphSVG:" #elephan t"}, "+=1");

Now that MorphSVGPlugin has arrived, it has never

been easier to animate SVG <path> data. The huge

advantage over SMIL and other libraries is that it

does not require the start and end paths to have the

same number of points; MorphSVGPlugin intelligently

subdivides the paths and adds points where

necessary so you get the smoothest results.

MorphSVGPlugin is available to Club GreenSock

members, which is the main source of funding for

GSAP’s ongoing development and support. Members

get access to premium plugins that solve very

unique challenges and integrate seamlessly into

the rest of the platform. All Club GreenSock bonus

plugins are available free for testing on codepen.io.You can fork the hippo demo, drop in your own SVG

and experiment as much as you like.

CONCLUSIONNow these hidden GSAP gems have been revealed

it’s time to release their true power in your projects.

Explore the demos, grab the code and have fun

pushing your animations to the limits. If you need

any help, just swing by the GreenSock forums

(greensock.com/forums); I’ll be there. 

Export root Chris Gannon’s Love and Bubbles is a great example of many t imelines and random tweensthat can be controlled with exportRoot()

Page 113: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 113/116

FROM THE MAKERS OF

Pick up your copy at

www.myfavouritemagazines.co.uk/design 

On salenow

Master responsive design today!

Page 114: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 114/116

114   june 2016

PROJECTSAccessibility 

“I’m an accessibility consultant, stop hiring

me,” wrote Joe Dolson in a recent blog post

(netm.ag/dolson-280). This seems like strange advice,

but Dolson makes an important point. Accessibility

specialists are often involved too late in the game,

when all they can do is report issues and help

prioritise what can be fixed with the time and

resources remaining.

Remediation is a short-term way to deal with

accessibility. A WCAG audit can tell you what’s

wrong and recommend code fixes, but it won’t tell

you that issues were introduced because the visual

design process didn’t consider colour contrast

requirements, or that the selection process for a

 JavaScript UI framework didn’t include requirements

for accessibility support.

Microsoft is adjusting its design process to focus

more on disability to increase the involvement of

people with disabilities in its design research (netm.

ag/microsoft-280). This way, it can creatively address

the design challenges that affect people in different

contexts and situations.

MATURITY MODELS

Accessibility as remediation and accessibility as

a driver for innovation are at two ends of a scale

of accessibility maturity. There are models that

help organisations measure their current level of

accessibility maturity, identify the risks of remaining

at that level, and uncover what they need to do to

move to a higher level.

Some models are very much geared towards

legal or standards compliance, but I like to use an

approach adapted from Jess McMullin’s Rough Design

Maturity Continuum (netm.ag/continuum-280). This

focuses instead on developing more effective and

sustainable ways to integrate accessibility into

the design process. We use this continuum to help

organisations take steps to integrate accessibility

into every part of their project lifecycle.

There are a number of ways your organisation

can move along the continuum. During the initial

user research stage, involve people with disabil ities

in activities. When design decisions start to be made,

ensure everyone making those choices considers

the implications on accessibility. Implement

processes that ensure the tools and frameworks

you use in development have good accessibility

support, and that you know how to accommodate

any shortcomings. Finally, use the Manifesto for

Accessible UX (netm.ag/manifesto-280) as a guide

to drive change in accessibility practice.

DESIGNING ACCESSIBILITYDavid Sloan explores the value of a more matureapproach to accessibility as a core design quality

    P   R   O   F   I   L   E

  ACCESSIBILITY

David ([email protected] ) is UX research lead with

accessibility consultancy The Paciello Group. He is also co-chair

of the W3C Accessible Online Learning Community Group

Page 115: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 115/116

Page 116: net - June 2016.pdf

8/18/2019 net - June 2016.pdf

http://slidepdf.com/reader/full/net-june-2016pdf 116/116

 PROJECTS

Build it, Rank it, Share itAn online business doesn’t just magically

happen, you need the right tools for the

right job. You need every advantage

you can get over your competition.

Boost your Google Rank 

with RankingCoach

Create your website quickly

and easily with Sitebuilder

Boost D3.js withSVG gradients

Design a mobileapp with Adobe

Get started withpattern libraries

11 tips for ergonmobile interface

Get more fromChrome DevToo

7 great hiddenGreenSock gem