Web Development for UX Designers

92
WEB DEVELOPMENT for UX DESIGNERS Ashlimarie Dong Former HCDE Student

description

An overview of web development essentials that will help you as a user experience designer to not only understand how to integrate designs with development components, but also to learn some tips on interacting effectively with developers.

Transcript of Web Development for UX Designers

Page 1: Web Development for UX Designers

WEB DEVELOPMENT for

UX DESIGNERS

Ashlimarie Dong Former HCDE Student

Page 2: Web Development for UX Designers

<life>

Page 3: Web Development for UX Designers

Web Developer Since 2005

Page 4: Web Development for UX Designers

Programming for Design’s Sake

Page 5: Web Development for UX Designers

Then College Happened

Page 6: Web Development for UX Designers

I Discovered User Experience! And it was amazing.

Page 7: Web Development for UX Designers

Why should UX Designers

care?

Page 8: Web Development for UX Designers

Complex Storyboarding

Why should UX Designers care?

= ?

Page 9: Web Development for UX Designers

Understanding Browser Constraints

Why should UX Designers care?

Page 10: Web Development for UX Designers

Creating Something Usable

Why should UX Designers care?

Axure rendered HTML

Not reusable

Page 11: Web Development for UX Designers

Empathizing with Developers

Why should UX Designers care?

Page 12: Web Development for UX Designers

PM

UX DEV

Page 13: Web Development for UX Designers

Diagram credit: http://asinthecity.com/

UX DEV

Page 14: Web Development for UX Designers

Core Topics Covered

Hardware Constraints Web Constraints Mobile Web Introduction Terminology HTML5 & CSS3 Redlining Internationalization JavaScript and jQuery

Page 15: Web Development for UX Designers

Hardware Constraints

Page 16: Web Development for UX Designers
Page 17: Web Development for UX Designers

Waiting sucks

Page 18: Web Development for UX Designers

Resource Hogs

Page 19: Web Development for UX Designers
Page 20: Web Development for UX Designers

Internet connection

Page 21: Web Development for UX Designers

Platform

vs

Page 22: Web Development for UX Designers

RAM and Virtual Memory

Page 23: Web Development for UX Designers

There are solutions!

Page 24: Web Development for UX Designers

Caching Data

Solutions to Hardware Constraints

Page 25: Web Development for UX Designers

Prefetching

<link rel="prefetch" href="http://www.example.com/">

Solutions to Hardware Constraints

Page 26: Web Development for UX Designers

Solutions to Hardware Constraints

Touch Screen Devices

Page 27: Web Development for UX Designers

Swiping

Solutions to Hardware Constraints: Touch Screen Devices

Page 28: Web Development for UX Designers

No hover state

Solutions to Hardware Constraints: Touch Screen Devices

Page 29: Web Development for UX Designers

Ario’s Law

Solutions to Hardware Constraints: Touch Screen Devices

Look out, Fitts’ Law!

Page 30: Web Development for UX Designers

Web Constraints

Page 31: Web Development for UX Designers

Using this font size, this sentence can fit a screen with a resolution like this. But doesn’t

mean it will fit a screen size like …

Resolutions

Page 32: Web Development for UX Designers

Cross-browser Compatibility

One version to rule them all.

Web Constraints

Page 33: Web Development for UX Designers

Graceful Degradation

Web Constraints

Page 34: Web Development for UX Designers

“Graceful degradation means that your Web site continues to operate even when viewed with less-than-optimal software in which advanced effects don’t work.” Fluid Thinking, by Peter-Paul Koch

Web Constraints

Page 35: Web Development for UX Designers

IE9 IE7

Page 36: Web Development for UX Designers

Guilty!

Page 37: Web Development for UX Designers

But… That doesn’t mean you have to build for the

oldest of the old.

http://www.microsoft.com/typography/web/fonts/comicsns

Web Constraints

Page 38: Web Development for UX Designers

Mobile Focus.

Page 39: Web Development for UX Designers

Web vs Native Apps

http://www.worklight.com/resources/webinars-and-tools/native-web-hybrid-mobile-app-development

Page 40: Web Development for UX Designers
Page 41: Web Development for UX Designers

Common Terminology

Page 42: Web Development for UX Designers

Document Object Model (DOM)

Element <head>

Document Root <html>

Element <body>

Element <title>

Element <h1>

Element <p>

Text Node “My name is..”

Text Node “Hello, World”

Text Node “My Site!”

Page 43: Web Development for UX Designers

Function Calls function doEquation() { alert(3+ 20); } <script type=“text/javascript”> doEquation(); </script>

Page 44: Web Development for UX Designers

Classes and IDs

Hi, I’m a class! I’m seen multiple times in a webpage.

Hi, I’m an ID! I’m unique in a webpage!

.className #idName

Page 45: Web Development for UX Designers

Application Programming Interface (API)

API vs SDK

Page 46: Web Development for UX Designers

Software Development Kit (SDK)

API vs SDK

Page 47: Web Development for UX Designers
Page 48: Web Development for UX Designers

HTML History

Page 49: Web Development for UX Designers

W3C and WHATWG

Page 50: Web Development for UX Designers

http://evolutionofweb.appspot.com/

Page 51: Web Development for UX Designers

HTML5 is Rich

Page 52: Web Development for UX Designers

Content has more meaning

Page 53: Web Development for UX Designers

Resource Description Framework in Attributes

(RDFa)

<div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person"> My name is <span property="v:name">Bob Smith</span>, but people call me <span property="v:nickname">Smithy</span>. Here is my homepage: <a href="http://www.example.com" rel="v:url">www.example.com</a>. I live in Albuquerque, NM and work as an <span property="v:title">engineer</span> at <span property="v:affiliation">ACME Corp</span>. </div>

Page 54: Web Development for UX Designers

Microformats

<div class="vcard"> <img class="photo" src="www.example.com/bobsmith.jpg" /> <strong class="fn">Bob Smith</strong> <span class="title">Senior editor</span> at <span class="org">ACME Reviews</span> <span class="locality">Desertville</span>, <span class="region">AZ</span> </div>

Page 55: Web Development for UX Designers

Microdata <div itemscope itemtype="http://data-vocabulary.org/Person"> My name is <span itemprop="name">Bob Smith</span> but people call me <span itemprop="nickname">Smithy</span>. Here is my home page: <a href="http://www.example.com" itemprop="url">www.example.com</a> I live in Albuquerque, NM and work as an <span itemprop="title">engineer</span> at <span itemprop="affiliation">ACME Corp</span>. </div>

Page 56: Web Development for UX Designers

Geolocations var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else{x.innerHTML="Geolocation is not supported by this browser.";} } function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br />Longitude: " + position.coords.longitude; }

Page 57: Web Development for UX Designers

CSS3

Page 58: Web Development for UX Designers

Pseudoclasses Pattern Meaning

E:first-child Matches element E when E is the first child of its parent.

E:link E:visited

Matches element E if E is the source anchor of a hyperlink of which the target is not yet visited (:link) or already visited (:visited).

E:active E:hover E:focus

Matches E during certain user actions.

E:nth-of-type(n) an E element, the n-th sibling of its type

Page 59: Web Development for UX Designers

Typography

@font-face { font-family: <a-remote-font-name>; src: <source>; font-weight: <weight>; font-style: <style>; }

Page 60: Web Development for UX Designers

Detect device type

In your HTML… <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> In your CSS… @media only screen and (max-width: 480px), only screen and (max-device-width: 480px) { /* CSS overrides for mobile here */ }

Page 61: Web Development for UX Designers

Frameworks

For Better Performance & Integration

Page 62: Web Development for UX Designers

User Experience Designers must deconstruct designs and interactions

in order to effectively communicate

concepts to Developers.

Page 63: Web Development for UX Designers

Redlining

Page 64: Web Development for UX Designers
Page 65: Web Development for UX Designers

http://www.currybet.net/cbet_blog/2010/05/will-we-need-to-specify-html5.php

Page 66: Web Development for UX Designers

Develop efficiently.

Page 67: Web Development for UX Designers

<div> <h1>Formatting</h1> </div>

Develop efficiently.

Page 68: Web Development for UX Designers

<!--Commenting-->

Develop efficiently.

Page 69: Web Development for UX Designers

Most importantly: Know the standards.

Develop efficiently.

Page 70: Web Development for UX Designers

Tables are SO 2004.*

* Tables should be used for tabular data, not site layouts.

Develop efficiently.

Page 71: Web Development for UX Designers

Web Internationalization

Page 72: Web Development for UX Designers

Single Byte vs Double Byte

Page 73: Web Development for UX Designers

<html lang="en">

http://www.w3schools.com/tags/ref_language_codes.asp

Page 74: Web Development for UX Designers
Page 75: Web Development for UX Designers

Do it Yourself.

Page 76: Web Development for UX Designers

Lab 1 Redlining, HTML5, CSS3

Page 77: Web Development for UX Designers

JavaScript

Page 78: Web Development for UX Designers

Client-side Language

http://contentdeliverance.com/2011/client-server-architecture/

Page 79: Web Development for UX Designers

http://red27.net/2010/12/15/what-makes-web-applications-work/

Page 80: Web Development for UX Designers

Manipulating the DOM

Element <head>

Document Root <html>

Element <body>

Element <title>

Element <h1>

Element <p>

Text Node “My name is..”

Text Node “Hello, World”

Text Node “My Site!”

Page 81: Web Development for UX Designers

jQuery a JavaScript Library.

(There are many out there)

Page 82: Web Development for UX Designers

Cross-browser Cross-language

Consistent Quick

Page 83: Web Development for UX Designers

Animations!

$('#clickMe').click(function() { $('#goAnimate').animate({ opacity: 0.25, left: '+=50', height: 'toggle' }, 5000 });

Page 85: Web Development for UX Designers

Asynchronous JavaScript and HTML (AJAX)

$.ajax({ url: "test.html", context: document.body }).done(function() { $(this).addClass("done"); });

Page 86: Web Development for UX Designers

Plug-ins

Page 87: Web Development for UX Designers

Easy-to-use Interface

$(function(){ $("#slides").slides({ preload: true, preloadImage: '/img/loading.gif', play: 5000, pause: 2500, hoverPause: true }); });

http://slidesjs.com/#docs

Page 88: Web Development for UX Designers

Lab 2 Animations and Plug-ins

Page 89: Web Development for UX Designers

“[Programmers] struggle with this idea of making computers behave more like humans, because they see humans as weak and imperfect computing devices” - Alan Cooper, author of The Inmates are Running the Asylum

Page 90: Web Development for UX Designers

Now you can…

Effectively share design concepts Mark up your designs Speak the Geek Speak (get along with developers)

Do it yourself!

Page 91: Web Development for UX Designers

Resources

W3C Schools: great tutorials for beginners jQuery Mobile: awesome resource for web app development CSS-Tricks: resource for cool CSS tricks Lynda.com: nice & informative tutorials Codecademy: eLearning site for development Phonegap: converts web-based apps to native

Page 92: Web Development for UX Designers

Thanks! Follow me via Twitter: @designdaisuki Or e-mail me at [email protected]