$30 off During Our Annual Pro Sale. View Details »

Mobile Applications Development - Lecture 7

Mobile Applications Development - Lecture 7

Common Design Patterns for Mobile

Ivano Malavolta

April 12, 2012
Tweet

More Decks by Ivano Malavolta

Other Decks in Technology

Transcript

  1. Roadmap • Navigation • Navigation • Forms • Search, sort

    & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. Metaphor • Pages are modeled to reflect the application’s metaphor

    metaphor metaphor metaphor • Use the Metaphor pattern judiciously
  9. 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
  10. 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
  11. 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
  12. 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
  13. Roadmap • Navigation • Navigation • Forms • Search, sort

    & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns
  14. 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
  15. 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
  16. 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
  17. 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! ! ! !
  18. 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
  19. 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
  20. Users Profile • Put the badges in evidence • Show

    their contribution to the social network • Show their contribution to the social network • Provide action controls
  21. 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
  22. Empty datasets • Avoid white-screens, explain why the dataset is

    empty • call for action, only one! • Avoid error messages • Avoid error messages
  23. Multi Step • Show the user where they are and

    where they can go • Eliminate unnecessary fields • minimize the number of pages and steps
  24. Settings • Put them inside the app • Clear and

    grouped • Easy to be understood
  25. Roadmap • Navigation • Navigation • Forms • Search, sort

    & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns
  26. Search, Sort & Filter • Search – Explicit Search –

    Explicit Search – Auto-complete – Dynamic Search – Scoped Search – Saved & Recent – Saved & Recent – Search form – Search Results
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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)
  33. Search, Sort & Filter • Sort – Onscreen Sort –

    Onscreen Sort – Sort Order Selector
  34. 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
  35. 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
  36. Filter Forms • Don’t over-design the filter, a simple onscreen

    filter or drawer will usually suffice drawer will usually suffice
  37. Roadmap • Navigation • Navigation • Forms • Search, sort

    & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns
  38. 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
  39. 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
  40. 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)
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. Roadmap • Navigation • Navigation • Forms • Search, sort

    & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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!
  54. 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
  55. 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
  56. 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
  57. Roadmap • Navigation • Navigation • Forms • Search, sort

    & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns
  58. Feedback & Affordance • Feedback – Errors – Errors –

    Confirmation – System Status • Affordance – Tap – Flick – Drag
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. 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
  65. Roadmap • Navigation • Navigation • Forms • Search, sort

    & filter • Tools • Invitations • Invitations • Feedback & Affordance • Anti-Patterns
  66. Anti-Patterns • Common pitfalls to avoid – Novel Notions –

    Novel Notions – Metaphor Mismatch – Idiot Boxes – Chart Junk – Oceans of Buttons – Oceans of Buttons
  67. 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
  68. Metaphor Mismatch • Consists in picking the wrong metaphor for

    the interface: interface: – Control mismatch – Icon mismatch – Mental model mismatch
  69. 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)
  70. 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
  71. 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