92
WEB DEVELOPMENT for UX DESIGNERS Ashlimarie Dong Former HCDE Student

Web Development for UX Designers

Embed Size (px)

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.

Citation preview

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]