Slide 1

Slide 1 text

Common Design Patterns Common Design Patterns for Mobile Ivano Malavolta Ivano Malavolta [email protected] http://www.di.univaq.it/malavolta

Slide 2

Slide 2 text

Roadmap • Navigation • Navigation • Forms • Search, sort & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns

Slide 3

Slide 3 text

Navigation • How users move through the views – Springboard – Springboard – Lists (Vertical, Infinite) – Tabs – Gallery (Grid) – Dashboard – Metaphor – Page Carousel – Page Carousel – Image Carousel – Expanding Lists – Infinite Area

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Lists • Work well for long with subtext • All internal screens should have a way for returning back • It can be “infinite”, it can have thumbnails

Slide 6

Slide 6 text

Tabs • Clearly differentiate differentiate differentiate differentiate the selected tab from the others • Use easy to recognize icons icons icons icons or icons with labels • Use easy to recognize icons icons icons icons or icons with labels

Slide 7

Slide 7 text

Gallery (Grid) • Works best for frequently updated content frequently updated content frequently updated content frequently updated content that people want to browse browse browse browse want to browse browse browse browse

Slide 8

Slide 8 text

Dashboard • Dashboards provide a roll-up of key performance indicators key performance indicators key performance indicators key performance indicators • Don’t overload Don’t overload Don’t overload Don’t overload the dashboard • Don’t overload Don’t overload Don’t overload Don’t overload the dashboard • Usually Springboards are also called Dashboards

Slide 9

Slide 9 text

Metaphor • Pages are modeled to reflect the application’s metaphor metaphor metaphor metaphor • Use the Metaphor pattern judiciously

Slide 10

Slide 10 text

Page carousel • Works best for navigating a small number of pages • Visual indicator Visual indicator Visual indicator Visual indicator to reflect the number of screens, and current screen current screen • Flick Flick Flick Flick to navigate the carousel

Slide 11

Slide 11 text

Image Carousel • Works best for displaying fresh visual content fresh visual content fresh visual content fresh visual content, like articles, products, and photos • Provide visual affordance Provide visual affordance Provide visual affordance Provide visual affordance, either with arrows, partial • Provide visual affordance Provide visual affordance Provide visual affordance Provide visual affordance, either with arrows, partial images, or page indicators that more content can be accessed

Slide 12

Slide 12 text

Expanding Lists • Works best for progressively disclosing more details progressively disclosing more details progressively disclosing more details progressively disclosing more details or options for an object options for an object

Slide 13

Slide 13 text

Infinite Area • The entire data set can be considered to be a large large large large, two- dimensional graphic dimensional graphic • The viewport shows only a small subset of the whole data set

Slide 14

Slide 14 text

Roadmap • Navigation • Navigation • Forms • Search, sort & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns

Slide 15

Slide 15 text

Forms • They are for data entry and configuration – Sign In – Sign In – Registration – Check-in – Comments – Users Profile – Share – Share – Empty Datasets – Multi-step – Settings

Slide 16

Slide 16 text

Sign In • Don’t innovate Don’t innovate Don’t innovate Don’t innovate on the sign in screen • Provide a way to retrieve a forgotten password retrieve a forgotten password retrieve a forgotten password retrieve a forgotten password • Provide a way to login via social login via social login via social login via social networks networks networks networks • Provide a way to login via social login via social login via social login via social networks networks networks networks

Slide 17

Slide 17 text

Registration • Keep it short short short short, preferably one screen one screen one screen one screen • Register button well visible Register button well visible Register button well visible Register button well visible

Slide 18

Slide 18 text

Check-in • Keep it ultra ultra ultra ultra- - - -short short short short • Design for speed speed speed speed, and efficiency efficiency efficiency efficiency • Design for speed speed speed speed, and efficiency efficiency efficiency efficiency • Eliminate Eliminate Eliminate Eliminate unnecessary unnecessary unnecessary unnecessary fields fields fields fields • Don’t show the Don’t show the Don’t show the Don’t show the map map map map! ! ! !

Slide 19

Slide 19 text

Comments • Invite user to leave comment • Always clarify what is being commented • Show other people’s comments over time • Show other people’s comments over time

Slide 20

Slide 20 text

Time line • Within the current hour, show as minutes ago • Within the current day, show the time as number of • Within the current day, show the time as number of hours ago • Within the last two days, shown the day of the week, and the time range, morning, afternoon, evening, night • Within the past week, show the day of the week • Within 12 months, show as Mmm/DD • Older than 12 months, show only the year

Slide 21

Slide 21 text

Users Profile • Put the badges in evidence • Show their contribution to the social network • Show their contribution to the social network • Provide action controls

Slide 22

Slide 22 text

Share • Always keep track of past logins • Always provide an “off social” way to share (e.g., by email) • Always provide an “off social” way to share (e.g., by email) • Remark what is being shared

Slide 23

Slide 23 text

Empty datasets • Avoid white-screens, explain why the dataset is empty • call for action, only one! • Avoid error messages • Avoid error messages

Slide 24

Slide 24 text

Multi Step • Show the user where they are and where they can go • Eliminate unnecessary fields • minimize the number of pages and steps

Slide 25

Slide 25 text

Settings • Put them inside the app • Clear and grouped • Easy to be understood

Slide 26

Slide 26 text

Roadmap • Navigation • Navigation • Forms • Search, sort & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns

Slide 27

Slide 27 text

Search, Sort & Filter • Search – Explicit Search – Explicit Search – Auto-complete – Dynamic Search – Scoped Search – Saved & Recent – Saved & Recent – Search form – Search Results

Slide 28

Slide 28 text

Explicit Search • Offer a clear button clear button clear button clear button in the field • Provide an option to cancel option to cancel option to cancel option to cancel the search • Provide an option to cancel option to cancel option to cancel option to cancel the search • Use feedback feedback feedback feedback to show the search is being performed

Slide 29

Slide 29 text

Search Auto-complete • Show feedback Show feedback Show feedback Show feedback if there could be a delay in displaying the results • Consider emphasizing the matching search text emphasizing the matching search text emphasizing the matching search text emphasizing the matching search text in the search • Consider emphasizing the matching search text emphasizing the matching search text emphasizing the matching search text emphasizing the matching search text in the search results

Slide 30

Slide 30 text

Dynamic Search • Automatically Automatically Automatically Automatically filters filters filters filters a given list of items • Works well for constrained data sets constrained data sets constrained data sets constrained data sets, like an address book • Works well for constrained data sets constrained data sets constrained data sets constrained data sets, like an address book or personal media library

Slide 31

Slide 31 text

Scoped Search • Offer reasonable scoping options scoping options scoping options scoping options based on the data set • 3 to 6 3 to 6 3 to 6 3 to 6 scoping options are plenty

Slide 32

Slide 32 text

Search form • Minimize the number of input fields Minimize the number of input fields Minimize the number of input fields Minimize the number of input fields • Follow form design best practices form design best practices form design best practices form design best practices (alignment, labels, size) • Use only when strictly needed

Slide 33

Slide 33 text

Search Results • Use live scroll live scroll live scroll live scroll instead of paging • Apply a reasonable default sort order default sort order default sort order default sort order • Call Call Call Call for for for for action action action action • Call Call Call Call for for for for action action action action this is also an Anti-pattern (see Oceans of Buttons)

Slide 34

Slide 34 text

Search, Sort & Filter • Sort – Onscreen Sort – Onscreen Sort – Sort Order Selector

Slide 35

Slide 35 text

Onscreen Sort • Clearly show which option is selected Clearly show which option is selected Clearly show which option is selected Clearly show which option is selected • Do not use it if labels option labels don’t fit nicely in a fit nicely in a fit nicely in a fit nicely in a • Do not use it if labels option labels don’t fit nicely in a fit nicely in a fit nicely in a fit nicely in a toggle button bar toggle button bar toggle button bar toggle button bar

Slide 36

Slide 36 text

Sort Order Selector • Follow OS design conventions Follow OS design conventions Follow OS design conventions Follow OS design conventions for choosing the selector control, or choose an OS neutral interface control • Clearly show which sort option is applied Clearly show which sort option is applied Clearly show which sort option is applied Clearly show which sort option is applied • Clearly show which sort option is applied Clearly show which sort option is applied Clearly show which sort option is applied Clearly show which sort option is applied

Slide 37

Slide 37 text

Filter Forms • Don’t over-design the filter, a simple onscreen filter or drawer will usually suffice drawer will usually suffice

Slide 38

Slide 38 text

Roadmap • Navigation • Navigation • Forms • Search, sort & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns

Slide 39

Slide 39 text

Tools • Buttons & Controls – Toolbar – Toolbar – Option Menu – Contextual Tools – Inline Actions – Call to Action Buttons – Call to Action Buttons – Multi-state Button – Bulk Actions – Maps

Slide 40

Slide 40 text

Toolbar • Contain screen level actions screen level actions screen level actions screen level actions, they are generally displayed at the bottom of the screen and the bottom of the screen and • Choose icons that are easy to recognize easy to recognize easy to recognize easy to recognize, or use labels plus icons

Slide 41

Slide 41 text

Option Menu • Choose direct interactions direct interactions direct interactions direct interactions when possible • Possibly don’t hide navigation don’t hide navigation don’t hide navigation don’t hide navigation in the Option Menu (like • Possibly don’t hide navigation don’t hide navigation don’t hide navigation don’t hide navigation in the Option Menu (like Facebook)

Slide 42

Slide 42 text

Contextual Tools • If buttons are necessary, they should be displayed in displayed in displayed in displayed in proximity to the actionable object proximity to the actionable object proximity to the actionable object proximity to the actionable object • Choose a familiar icon familiar icon familiar icon familiar icon or use a text label • Choose a familiar icon familiar icon familiar icon familiar icon or use a text label

Slide 43

Slide 43 text

Inline Actions • They should be in proximity to the actionable object proximity to the actionable object proximity to the actionable object proximity to the actionable object • Choose a familiar icon familiar icon familiar icon familiar icon or use a text label • Choose a familiar icon familiar icon familiar icon familiar icon or use a text label • Max 1 to 2 Inline Actions per object Max 1 to 2 Inline Actions per object Max 1 to 2 Inline Actions per object Max 1 to 2 Inline Actions per object

Slide 44

Slide 44 text

Call to Action Buttons • Don’t hide the main call to action Don’t hide the main call to action Don’t hide the main call to action Don’t hide the main call to action in a menu or disguise it as an unrecognizable icon in a toolbar • Good contrast Good contrast Good contrast Good contrast and clear label clear label clear label clear label

Slide 45

Slide 45 text

Multi-state Button • Multi-State Buttons work well for a series of tightly a series of tightly a series of tightly a series of tightly correlated actions correlated actions correlated actions correlated actions that will to be performed in succession correlated actions correlated actions correlated actions correlated actions that will to be performed in succession

Slide 46

Slide 46 text

Bulk Actions • Bulk actions like delete and reorder are best handled in an in an in an in an edit mode edit mode edit mode edit mode • Provide an obvious option for exiting the mode obvious option for exiting the mode obvious option for exiting the mode obvious option for exiting the mode • Provide an obvious option for exiting the mode obvious option for exiting the mode obvious option for exiting the mode obvious option for exiting the mode

Slide 47

Slide 47 text

Maps • Provide visible visible visible visible markers markers markers markers (avoiding “terrain-mode”) • Use Use Use Use as as as as much much much much screen screen screen screen as as as as possible possible possible possible • Use Use Use Use as as as as much much much much screen screen screen screen as as as as possible possible possible possible • Can Can Can Can be be be be small small small small if the location is not the main item

Slide 48

Slide 48 text

Roadmap • Navigation • Navigation • Forms • Search, sort & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns

Slide 49

Slide 49 text

Invitations • Helpful tips displayed the first time a user launches an app launches an app – Dialog – Tip – Tour – Video – Transparency – Transparency – 1st Time Through – Persistent – Discoverable

Slide 50

Slide 50 text

Dialog • Keep dialog content short content short content short content short • make sure there is an alternate way make sure there is an alternate way make sure there is an alternate way make sure there is an alternate way to access instructions • make sure there is an alternate way make sure there is an alternate way make sure there is an alternate way make sure there is an alternate way to access instructions from within the application

Slide 51

Slide 51 text

Tip • Place tips in proximity to the feature they refer to Place tips in proximity to the feature they refer to Place tips in proximity to the feature they refer to Place tips in proximity to the feature they refer to • keep the content short content short content short content short • keep the content short content short content short content short • remove the tip remove the tip remove the tip remove the tip once interaction begins

Slide 52

Slide 52 text

Tour • A tour should highlight key features highlight key features highlight key features highlight key features of the application, preferably from a (user) goal perspective • Keep it short short short short and visually engaging visually engaging visually engaging visually engaging

Slide 53

Slide 53 text

Video • Demos should showcase key features showcase key features showcase key features showcase key features or show how to use the application application • Common video features (stop, pause, volume controls stop, pause, volume controls stop, pause, volume controls stop, pause, volume controls, etc,...) should be provided

Slide 54

Slide 54 text

Transparency • Transparencies are not meant to compensate for poor not meant to compensate for poor not meant to compensate for poor not meant to compensate for poor screen designs screen designs screen designs screen designs! • Remove the Transparency once interaction begins Remove the Transparency once interaction begins Remove the Transparency once interaction begins Remove the Transparency once interaction begins • Remove the Transparency once interaction begins Remove the Transparency once interaction begins Remove the Transparency once interaction begins Remove the Transparency once interaction begins My favourite invitation!

Slide 55

Slide 55 text

1st time through • Clearly differentiate the invitation Clearly differentiate the invitation Clearly differentiate the invitation Clearly differentiate the invitation from other content with images or other visual cues with images or other visual cues

Slide 56

Slide 56 text

Persistent • Keep it short Keep it short Keep it short Keep it short • Clearly differentiate the invitation Clearly differentiate the invitation Clearly differentiate the invitation Clearly differentiate the invitation from other content with images or other visual cues with images or other visual cues

Slide 57

Slide 57 text

Discoverable • Use Discoverable invitations sparingly sparingly sparingly sparingly • The most common instance of this pattern is for prompting a for prompting a for prompting a for prompting a • The most common instance of this pattern is for prompting a for prompting a for prompting a for prompting a data refresh data refresh data refresh data refresh

Slide 58

Slide 58 text

Roadmap • Navigation • Navigation • Forms • Search, sort & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns

Slide 59

Slide 59 text

Feedback & Affordance • Feedback – Errors – Errors – Confirmation – System Status • Affordance – Tap – Flick – Drag

Slide 60

Slide 60 text

Feedback: Errors • Use plain language that offers a solution offers a solution offers a solution offers a solution for resolving the issue • make the error visible visible visible visible • make the error visible visible visible visible • use in-screen messaging instead of modal dialogs

Slide 61

Slide 61 text

Feedback: Confirmation • Provide confirmation when an action is taken when an action is taken when an action is taken when an action is taken • don’t break the user’s flow don’t break the user’s flow don’t break the user’s flow don’t break the user’s flow • don’t break the user’s flow don’t break the user’s flow don’t break the user’s flow don’t break the user’s flow

Slide 62

Slide 62 text

Feedback: System Status • Provide feedback Provide feedback Provide feedback Provide feedback about the system’s status • Offer a cancel option Offer a cancel option Offer a cancel option Offer a cancel option for potentially lengthy operations • Offer a cancel option Offer a cancel option Offer a cancel option Offer a cancel option for potentially lengthy operations

Slide 63

Slide 63 text

Affordance: Tap • Use common visual design techniques Use common visual design techniques Use common visual design techniques Use common visual design techniques to indicate tappable controls controls • Apply 3D effects judiciously

Slide 64

Slide 64 text

Affordance: Flick • Use a page indicator page indicator page indicator page indicator • show the edge of the next item edge of the next item edge of the next item edge of the next item • show the edge of the next item edge of the next item edge of the next item edge of the next item • Avoid heavy weight scroll bars Avoid heavy weight scroll bars Avoid heavy weight scroll bars Avoid heavy weight scroll bars

Slide 65

Slide 65 text

Affordance: Drag • Use a recognizable icon recognizable icon recognizable icon recognizable icon for the handle • Consider using an invitation invitation invitation invitation to let users know this feature is • Consider using an invitation invitation invitation invitation to let users know this feature is available

Slide 66

Slide 66 text

Roadmap • Navigation • Navigation • Forms • Search, sort & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns

Slide 67

Slide 67 text

Anti-Patterns • Common pitfalls to avoid – Novel Notions – Novel Notions – Metaphor Mismatch – Idiot Boxes – Chart Junk – Oceans of Buttons – Oceans of Buttons

Slide 68

Slide 68 text

Novel Notions • If you are looking for a way to innovate with your application, focus on your core features and focus on your core features and focus on your core features and focus on your core features and application, focus on your core features and focus on your core features and focus on your core features and focus on your core features and offerings offerings offerings offerings, but rely on best practices for the rely on best practices for the rely on best practices for the rely on best practices for the interface design interface design interface design interface design • If you design a custom control, rigorously test it If you design a custom control, rigorously test it If you design a custom control, rigorously test it If you design a custom control, rigorously test it and refine it to make sure it is usable and refine it to make sure it is usable

Slide 69

Slide 69 text

Novel Notions Examples

Slide 70

Slide 70 text

Metaphor Mismatch • Consists in picking the wrong metaphor for the interface: interface: – Control mismatch – Icon mismatch – Mental model mismatch

Slide 71

Slide 71 text

Metaphor Mismatch Examples

Slide 72

Slide 72 text

Idiot Boxes • Avoid disrupting the workflow Avoid disrupting the workflow Avoid disrupting the workflow Avoid disrupting the workflow, only show a confirmation dialog when an irreparable action is confirmation dialog when an irreparable action is being taken (like a permanent delete)

Slide 73

Slide 73 text

Chart Junk • Only use visual elements in charts and graphs that are necessary to communicate the information represented on the graph represented on the graph

Slide 74

Slide 74 text

Oceans of Buttons • Use standard patterns Use standard patterns Use standard patterns Use standard patterns for displaying page level actions • Provide contextual tools contextual tools contextual tools contextual tools for item level actions instead of repeating the same button repeating the same button • Keep page level actions visually separate from navigational Keep page level actions visually separate from navigational Keep page level actions visually separate from navigational Keep page level actions visually separate from navigational elements elements elements elements

Slide 75

Slide 75 text

References • Screenshots from: – www.mobiledesignpatterngallery.com – pttrns.com – pttrns.com – inspired-ui.com – mobile-patterns.com