Top Banner
Application development process Interaction Design Principles
69

Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Mar 24, 2018

Download

Documents

buidang
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Application development process

Interaction Design Principles

Page 2: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Overview

• Good/Bad UI Design

• Interaction Design Principles

• Screen layouts

• Navigation Patterns

• Screen Flows

• Prototyping

Page 3: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Preview of UI Analysis/Design Process

• UI Design• Inputs: Use Cases

• Activities: Validate Technical Feasibility, Customer Validation, User Validation

• Deliverables: Proof of Concept Wire Frames, Storyboards, Prototypes

• Document• Inputs: Data Requirements, Business Rules, Use Case

• Activities: Write UI Specifications, Conduct Review Meetings

• Deliverables: UI Specification (Navigation Flow, Screen Captures, Controls w/ Behaviors, Error Messages), Detailed Usability Test Plans

• Refinement• Inputs: UI Specification, Prior Research, Code

• Activities: Formal Usability Testing

• Deliverables: Test Results Report

Page 4: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Bad UI Design

Page 5: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Bad UI Design

Page 6: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Good UI Design

Page 7: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Good UI Design

Page 8: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Good UI Design

• Good UI Design:

• Aesthetically pleasing

• Familiar

• Logical

• Functional

• Efficient

Page 9: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Interaction Design Principles

• Learnability

• Efficiency

• Memorability

• Error Recovery

• Simplicity

• Mapping

• Visibility

• Feedback

• Consistency

• Satisfaction

Page 10: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Learnability

• An interface should be easy to use

from the first time a user interacts

with it.

• Amount of functionality presented to

the user should be limited to exactly

what the user requires to get the goal

done.

Page 11: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Efficiency

• Number of steps it takes

for a user to complete a

task.

• Key tasks should be made

as efficient as possible.

Page 12: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Efficiency

Page 13: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Memorability

• Interface should be easier

to use each time the user

interacts with it.

• Frequency of use is the key

factor in memorability.

Page 14: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Error Recovery

• In perfect user interface, user should never be allowed to make a mistake.

Page 15: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Simplicity

• Usual tasks should be easy and

less common tasks should be

possible.

• Avoid unnecessary

functionality and keep the

visual design and layout

uncluttered.

Page 16: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Mapping

• What the user expects to happen when they interact with the user interface is exactly what should happen.

Page 17: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Visibility

• Important information

should be the most visible.

• Less important information

should be less visible.

• Understanding the users’

goals is critical.

Page 18: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Feedback

• User should always be in control of the user interface and not the other way around.

Page 19: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Consistency

• Like-items should always be

displayed and act the same

way across the entire

application (and even

between applications).

• UI standards.

Page 20: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Satisfaction

• How much the user enjoys or dislikes the software.

Page 21: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Screen Design

• The basic layout and flow of screens should be designed before any implementation begins.

• This will save work that would result in changed screen designs later.

• The screen design should give the developer, client, and end user a basic idea of how the app will look, feel, and function.

Page 22: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

What makes good Navigation?

•Primary navigation patterns:• Springboard• List Menu• Tab Menu•Gallery•Dashboard •Metaphor•Mega Menu

Page 23: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Primary navigation patterns

Page 24: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Springboard

• The Springboard pattern is OS neutral, working equally well across devices. • It is also

sometimes referred to as a Launchpad.

Page 25: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Springboard

• The Springboard is characterized by a landing page of menu options that act as a jumping off point into the application.

Page 26: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Springboard

• Facebook followed the Springboard design of the iOS home screen, and they were quickly emulated by other applications.

Page 27: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Springboard

•Personalized Springboards can be used to display personal profile information inline with the menu options.

• Typically a customization feature is available for changing the Springboard layout.

Page 28: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Grids layouts for Springboard

- Use a grid layout for items of equal importance, or an irregular layout to emphasize some items more than others. - Consider personalization and customization options.

Page 29: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

2x2 grid layout, Norton Mobile; irregular layout, Masters

Page 30: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

List Menu

• The List Menu is similar to that Springboard in that each is a jumping off point into the application.

Page 31: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

List Menu

• There are numerous variations of this pattern including personalized list menus, grouped lists, and enhanced lists.

Page 32: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

List Menu

• Enhanced lists are simple List Menus with additional features for searching, browsing or filtering.

Page 33: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

List Menu• List Menus work well

for long titles or those that require sub text.

• Applications using List Menus should offer an option on all internal screens for returning to the List Menu, usually a button in the title bar with a list icon or the word “menu.”

Page 34: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Tabs

• Tab navigation is not OS neutral since each OS has their own guidelines for tab location and design.

•When choosing this pattern for your application, be prepared to customize the tab location for the different OSs.

Page 35: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Tabs

•Bottom tabs, favored by iOS, WebOS, and BlackBerry, are the most thumb friendly option.

Page 36: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Tabs

•Horizontally scrolling bottom tabs, as shown in the Starbucks and Blue Mobile apps, provide a useful mechanism for offering more options without having to open up a More...screen.

Page 37: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Tabs• Top tabs, favored by

Android, Symbian, and Windows, look familiar since they are modeled after standard website navigation patterns.

•Nokia and Windows both use scrolling top tabs that you can flick to reveal more menu options.

Page 38: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Tabs

•Clearly indicate the selected menu item by visually differentiating the selected tab from the others. •Use easy to recognize

icons or icons with labels.

Page 39: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Gallery

• The Gallery pattern surfaces individual pieces of content for navigation.

•Content is usually individual articles, recipes, photos, or products and can be arranged in a carousel, grid, or slideshow.

Page 40: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Gallery

• The Gallery pattern works best for frequently updated content that people want to browse.

Page 41: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Gallery

• Sometimes the content will be easier to browse if it is grouped.

•Dwell use side tabs to organize gallery content into manageable chunks.

Page 42: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Dashboard

• Dashboards provide a roll-up of key performance indicators, KPIs. Each metric can be drilled into for additional information.

• This primary navigation pattern is useful for financial applications, analytics tools and sales and marketing applications.

• Don’t overload the dashboard; conduct research to determine the key metrics to include.

Page 43: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Metaphor

• This pattern is characterized by a landing page modeled to reflect the application’s metaphor.

Page 44: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Metaphor

• This is used primarily in games, but can also be seen in applications that help people catalog and categorize items, like notes, books, wine, etc.

Page 45: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Metaphor

Use the Metaphor pattern judiciously, as a poorly implemented metaphor can look a lot like the Novel Notion anti-pattern .

Page 46: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Mega Menu

•A mobile Mega Menu islike the web Mega Menu, a big overlay panel withcustom formatting and grouping of the menu options.

• The RipCurl website uses a mega menu for navigatinginto sub categories of clothing.

Page 47: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Mega Menu

• The webOS version of Facebook uses a megamenu for streamlined navigation, avoiding the extra navigation found in a Springboard pattern.

•Walmart uses this same pattern in their Android app.

Page 48: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Mega Menu

•Determine your information architecture before choosing the navigation pattern.

•Choose a more appropriate pattern, like Tabs, if there are only a few major sections in the app.

Page 49: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Secondary Navigation Patterns

Page 50: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Page Carousel

• This pattern can be used to quickly navigate a discreet set of pages using the flick gesture.

• The page Image Carouselindicator (the iOS term for the little dots) displays how many pages are in the carousel; flicking displays the next page.

• All four examples use the page carousel within a selected tab.

Page 51: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Page Carousel• The page carousel pattern has

its limits.

• Consider using a list for navigating more than eight pages.

• The page carousel works best for navigating a small number of pages.

• Use a visual indicator to reflect the number of screens, and current screen.

• Flick is the common gesture to navigate the carousel.

Page 52: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Image Carousel

• The image carousel may be a 2D carousel or more like the iTunes coverflow.

• IMDB uses the image carousel to surface the most viewed movies.

• We used it to display featured products in the retail application.

Page 53: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Image Carousel

• The Image Carousel works best for displaying fresh visual content, like articles, products, and photos.

•Provide visual affordance, either with arrows, partial images or page indicators (dots) that more content can be accessed.

Page 54: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Expanding List

• The Expanding List allows a single screen drill down to reveal more information.

• Android Gingerbread uses this pattern in the call log.

• All calls from the same number are collapsed into one row.

• Tapping the icon expands the list to show the individual instances.

Page 55: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Expanding List• This pattern is more common in

mobile optimized websites than mobile applications, but can work well in both cases.

• Take for example the Gap.com mobile site. The Expanding List is used instead of a Cascading List to disclose all of the Women’s clothing categories.

• The Expanding List pattern works best for progressively disclosing more details or options for an object.

Page 56: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Screen Flows

•Most apps will consist of more than one screen.

•The transition between these screens is known as a screen flow.

•Screen flows should be logical and predictable.

•For example, pressing the back button should take the user to the previous screen, not to another unexpected screen.

Page 57: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

CommBank App Screen Flow

Clouds indicate links to other apps or URLs.

Page 58: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Task-centred Design

•Generally when a user uses an app they want to accomplish a task.

•There may be several different tasks that users perform with the app.

• Identifying these tasks can help us to design the application.

•A sample scenario follows…

Page 59: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Case study: Bus Timetable App

•A timetabling app is required for Zied Buslines.

•What are some of the tasks a user would perform with the app?

•Hints:• What are some common scenarios where a user would

need the app?• What information does the user have and what do they

need to know?

Page 60: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Case study: Tasks/Scenarios

1. User wants to get from A to B leaving at a certain time.• User needs to be able to find out what buses pass through

A and which of those also pass through B.

2. User knows which bus they want to catch at point A, but wants to know what times it will leave.

3. User knows which bus they want to catch and want to find out what times it arrives at B.

Page 61: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

UI Design

• In each scenario the user knows at least one bus stop:• App could begin with a list of bus stops.• User selects bus stop.

• In each scenario the user also needs to know the buses for the bus stop:• Display buses and times for the selected bus stop.

• Selecting bus displays the timetable for that bus including the time it will arrive at each stop on the journey.

Page 62: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Screen flow

Page 63: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Screen Design

Page 64: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Improvements

•What could be improved?•Company logo and colours•Search box for bus stops, bus numbers•Tabs down the bottom for more options, such as list of bus numbers.•Maps•GPS to automatically detect which bus stop you are at

Page 65: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Prototyping

•Use prototyping software for:• Representing screen flow• Designing layouts• Simulating interactions such as links between screens

• Software:• iRise• Justinmind Prototyper• Xcode• Codiqa

Page 66: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Justinmind Prototyper

Page 67: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Xcode

Xcode also includes support for storyboards:

Page 68: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Codiqa (New CREATOR)For prototyping jQuery Mobile apps\sites

Page 69: Application development process - ziedzaier.comziedzaier.com/wp-content/uploads/2016/08/Interaction-Design... · •Justinmind Prototyper •Xcode •Codiqa. Justinmind Prototyper

Summary

•UI design is an important and vital part of the development process.

• Final project will require identification of user tasks, screen designs, screen flow, and prototype.

•A UI Design doesn’t require final graphics, the focus is on layout and flow.

•However, having a look and feel close to the final product can help.