Design Beautiful & Usable Android Apps

Here are some excellent resources if you are designing for Android Gingerbread or Ice Cream Sandwich.

Galleries

Pattern Libraries

Stencils/Templates

  • Zurb’s excellent OmniGraffle Stencil
  • Android 4.0 PSD
  • High Density PSD from Teehan + Lax, June 2011
  • Stencil for Visio- Nope can’t find one. I’ll say it again, the Visio community needs to get it together and starting making high quality stencils and sharing them. If you know of a Visio stencil for a current version of the Android OS, please comment and share.
  • Keynotopia for prototyping. I have bought and used this bundle for iPad prototyping and it works well. I haven’t tried it for android apps yet.
  • Glypish Icons are really useful for low and high fidelity mockups
  • User Interface Design Guidelines

    Android Design

    Blogs/ Articles

    Books

    Presentations & Videos

    Comments off

    Does It Have Legs- Heuristics for Information Architecture

    Great talk from Abby the IA. Fresh style, clearly expressed. Can’t wait for the poster she’s making.

    Comments (2)

    Practical Prototyping Tips

    I saw Todd Warfel speak in August at DELVE UI. I was so inspired by his approach that I changed the way we work. We have now moved away from large decks of wireframes and interaction notes- and embraced the 70% rule. We design 70% then build a prototype. There are a number of examples in my talk Designers vs Developers: Coming together to build the best RIAs. But the point is, if you are designing Rich Internet Applications, RIAs, prototyping is essential.

    Check out Todd’s talk on prototyping:

    And consider getting his new book, Prototyping: A Practitioner’s Guide to Prototyping, Rosenfeld Media, November 2009. It is full of practical advice and detailed examples, not philosophical musings. If you are like me- a busy consultant who is not a great programmer, but needs to get interactive mock-ups in front of stakeholders as fast as possible- there are a number of great ideas in here.

    Comments (11)

    Two Anti-Patterns: Geek Speak & Needless Fanfare

    Over on my other blog (looksgoodworkswell) I posted two examples of Anti-Patterns that relate to our book.

    The first is Geek Speak. Presenting the user with jargon they will not understand (usually when something goes wrong deep in the bowels of the software). This example is from Facebook.

    facebook-database-error (by Designing Web Interfaces)

    The second is an example of Needless Fanfare (which we write about in the book). Unnecessary animation/transitions that instead of reinforcing communication needlessly distract from the job at hand. Turbo Tax weighs in with their version of the Biggest Loser scale when they recalculate your taxes on the fly.

    Needless Fanfare - Turbo Tax Suspenseful Recalculation (SloMo) Read the full discussion on Geek Speak and Needless Fanfare over on my blog.

    Comments (10)

    6 Tips for a Great Flex UX: Part 5

    By Theresa Neil

    Since the book focuses on rich interactions, I want to spend some time on Adobe Flex/AIR.

    These tips are based on the best Flex resources I have found, and how you can use them to craft a great user experience. This is part 5 of 6:

    * Play With It: 10 Explorers & Galleries
    * Learn From the Best: 10 Great Flex Apps
    * Learn From the Rest: 10 Great RIAs
    * Stock Your Toolbox: 40+ Custom Flex Controls
    * Review Usability Best Practices
    * Avoid Common Mistakes: 10 Anti-Patterns

    Review Usability Best Practices

    Don’t forget the usability basics. Jakob Nielsen’s Ten Usability Heuristics are as relevant now as they were in 1999. I stress this because I looked at the Flex showcase recently, and it looks like many of the applications are not built with these best practices in mind.

    1. Visibility of system status (Feedback)

    The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
    feedback_button
    1.0 BaseCamp by 37signals
    The upload button is enabled, until clicked. Then it is replaced with a progress indicator until the file has finished uploading

    feedback_progress
    1.1 Picnik
    Progress message and indicator shows while the application loads

    feedback_message
    1.2 Tick
    A feedback message is displayed when an action is performed

    feedback_inline
    1.3 Windows Live Account
    Password strength is shown as the password is entered

    2. Match between system and the real world (METAPHOR)

    The system should speak the users’ language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order.
    metaphor_library
    2.0 iTunes
    Organized as a library that contains your media library: music, movies, shows, audibooks. Beneath the Library is the Store where you can buy more media to put in your Library.

    metaphor_mindmap
    2.1 Mindomo
    The branches and hierarchy of a mind map can be easily reorganized visually in a non-linear manner. An outline would never work, but this matches the paradigm exactly.

    3. User control and freedom (NAVIGATION)

    Users often choose system functions by mistake and will need a clearly marked “emergency exit” to leave the unwanted state without having to go through an extended dialogue. Supports undo and redo and a clear way to navigate.
    navigation_search
    3.0 CollabFinder
    Search is easy to open, enter info, execute or cancel.

    navigation_selected
    3.1 Wufoo
    Clearly marks where the person is and where they can go by showing the selection in each menu

    navigation_cell_editor
    3.2 Pages (Apple’s Word Processing Product)
    Cell editing shows row and column ids, and the cells used in the equation. The equation can be saved or canceled.

    navigation_undo_redo
    3.3 Balsamiq
    Undo and Redo buttons are available in the toolbar, and can also be accessed with the standard keyboard shortcuts

    4. Consistency and standards (CONSISTENCY)

    Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.

    consistency_naming
    4.0 Gmail
    When Gmail was designed, they based the organizational folders on the same ones used in client email applications: Inbox, Drafts, Sent Mail.

    consistency_toolbars
    4.1 Microsoft Office
    Word, Excel, and PowerPoint all use the same style toolbar with the same primary menu options: Home, Insert, Page Layout… Consistency results in efficiency and perceived intuitiveness.

    5. Error prevention (PREVENTION)

    Even better than good error messages is a careful design, which prevents a problem from occurring in the first place.

    prevention_disable
    5.0 Yammer
    Disables the update button after it is clicked, so the person cannot update the post twice by accident

    prevention_buttons
    5.1 Example from “Web form Design:Filling in the Blanks” by Luke W.
    Make the primary action prominent with a larger click area. Cancel and secondary actions are just shown as links

    prevention_auto_suggest
    5.2 Google Auto Recommend
    The auto recommend feature cuts down on mis-spellings

    prevention_focus
    5.2 Wikpedia
    Auto focus on input prevents a common source of frustration, typing only to realize nothing is displayed because the field did not have focus

    6. Recognition rather than recall (MEMORY)

    Minimize the user’s memory load. Make objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate.

    memory_type_ahead
    6.0 Quanta IDE
    Type ahead for coding in a development environment

    memory_font
    6.1 Keynote
    Previews the fonts you can pick from, instead of just the font name

    7. Flexibility and efficiency of use (EFFICIENCY)

    Accelerators — unseen by the novice user — may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.

    efficiency_shortcuts
    7.0 OmniFocus
    List of keyboard shortcuts and accelerators

    efficiency_preview
    7.1 Numbers- Apple’s Spreadsheet product
    Previews common function results on the left when a column is selected, more efficient that clicking on an action in the toolbar

    8. Aesthetic and minimalist design (DESIGN)

    Dialogues should not contain information, which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility. Visual layout should respect the principles of contrast, repetition, alignment, and proximity.

    design_c_r_a_p
    8.0 Kontain
    Kontain’ search menu exemplifies the four principles of visual design:
    Contrast: bold text is used for the two labels in the search
    Repetition: the orange, blue, and green text match the media types
    Alignment : strong left alignment of text, right aligned drop down
    Proximity: a light rule is used to separate tags from the other options

    design_alignment
    8.1 Harvest
    Sufficient padding and spacing keep this timesheet from being a visual nightmare. Header and footer rows, as well as the summary column use subtly different colors to indicate they are distinct from the content

    9. Help users recognize, diagnose, and recover from errors (RECOVERY)

    Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution.

    error_message
    9.0 Digg
    Provides immediate feedback with specific instructions

    error_page
    9.1 Humorous ‘ Page Not Found’ Error
    Uses a funny image and copy, but provides viable alternatives (article listings and blog link) and a course of action (report it)

    10. Help and documentation (Help)

    Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user’s task, list concrete steps to be carried out, and not be too large.

    help_contextual
    10.0 Picnik
    Contextual help (this is an example of help in the ‘Collages’ module) tips in Picnik are clear and easy to navigate

    help_video
    10.1 GoodBarry
    Embedded videos can be used to showcase features as well as get people started using the product

    help_tip
    10.2 Zenoss
    Help tips are displayed on hover, answering the most likely questions about a field or instructions

    help_button
    10.3 BaseCamp by 37signals
    Help opens a new browser window/tab with a full set of help resources: search, FAQ, video tutorials, customer forums

    Comments (18)

    6 Tips for a Great Flex UX: Part 4

    By Theresa Neil

    Since the book focuses on rich interactions, I want to spend some time on Adobe Flex/AIR.

    These tips are based on the best Flex resources I have found, and how you can use them to craft a great user experience. This is part 4 of 6:

    Stock your Toolbox: 40+ Custom Flex Controls

    Flex 3 includes a wide range of controls. Unfortunately, it doesn’t have all of the Essential Controls I use for RIA design. But fortunately, talented and industrious Flex developers have created numerous custom controls for Flex.
    40_flex_custom_controls1

    I pulled together a visual repository of custom Flex controls. Most of these controls were created to showcase certain functionality- not usability best practices. So some may need further refinement to comply with the usability principles discussed in the previous posts. Click on the picture for the demo.

    01. Accordions

    accordion_with_custom_header
    Complex Headers
    accordion_horizontal
    Horizontal Accordion
    accordion_apple_style

    Apple Style
    More under ‘Collapsible Panels’

    02. Auto Complete

    auto_complete
    More Examples

    03. Bar Code Generator

    barcode_reader

    04. Build a List

    build_a_list2

    05. Calendar/Scheduler

    calendar1
    ILog Elixir
    calendar
    Ely Greenfield’s early Scheduler
    calendar_scheduling
    Adobe’s Scheduler on flexlib see flexlib.scheduling package

    06. Captcha

    captcha

    07. Charts & Graphs

    chart
    3D charts by iLog Elixir
    graph_drill
    Chart Drill Down with Animation
    dash
    Dashed Line Series
    graph_compress
    Chart Offest
    legend
    Advanced Legend
    scroll_zoom
    Scroll and Zoom

    08. Collapsible Panels

    collapsible_panels
    Window Shade- panels roll up and down
    collapsible
    Arc90’s Collapsible Panel
    stacked_panels
    Early Stacked Panels

    09. Cover Flow

    coverflow1
    Doug McCune’s updated Cover Flow

    10. Data Visualization

    diagrammer
    gauge
    Kap IT Lab
    ILog Elixir
    BirdEye

    11. Docking

    dockable

    12. Drop Down Menu with Scrolling

    menu_scrolling

    13. Find and Highlight Text

    highlight
    In flexlib as Highlighter

    14. Fisheye Menu (like Mac Dock)

    dock

    15. Flip Card

    flip

    16. Floating

    floating

    17. Gantt Chart

    gantt
    ILOG Elixir Gantt
    gantt
    Doug McCune’s Early Gantt Chart

    18. Inline Edit (Fields)

    inline_edit
    Early example by Ely Greenfield
    inplace_edit
    Modal editing variation by Ryan Swanson
    * The hover invitation to edit on a field by field basis (like Flickr) works best for infrequent edits

    19. Icon Loader

    image_converter
    On flexlib under Icon Loader

    20. List/Tree Converter

    list_tree
    On flexlib under Convertible Tree List

    21. Mask (text input and validation)

    mask
    On Adobe Flex Exchange

    22. Multiple Document Interface (MDI)

    mdi1
    On flexlib under flexlib.mdi

    23. Magnify

    magnify1
    magnify_big

    24. Map Callouts

    map_callouts

    23. Pan and Zoom

    pan_zoom

    24. Page Turn

    page_turn
    Peek Panel by Bill White (nice blog)
    Ely Greenfield’s early FlexBook

    Didier Braun’s PageFlip

    25. Pivot Table

    pivot
    Satish’s Pivot Table
    pivot_flexmonster
    Flex Monster product

    26. Resize

    resize1
    Resizeable and moveable window
    resize
    Resize Objects with ResizeManagerFX

    27. Scrolling-Internal

    scroll_panel
    In flexlib as Drag Scrolling Canvas

    28. Side Tabs/Vertical Tabs

    side_tabs
    Degrafa ToggleButtonBar vertical tabs
    side_tabs_2
    side_tabs_3
    Vertical Tab Navigator

    29. Sliders

    slider_dual

    30. Sliding Panel

    slide_panel

    Early example
    Slide out menu with effects instead of states

    31. Sparklines

    sparkline
    More examples:
    Fusion Charts
    Sherlock Informatics
    Birdeye
    19nates

    32. Spell Check

    spell_check
    There is also a Spell Check component on Flex Exchange

    33. Tabs (configurable)

    tab_2

    34. Text Prompt/ Watermark Fields

    watermark
    At flexlib under prompting TextInput

    35. Tree Table

    tree_table
    Early Tree Grid

    36. Time Picker

    time
    Alternate one on Flex Exchange as Time Chooser

    37. Toolbars

    toolbars

    38. Trees

    tree
    Open branches by clicking on the row
    Adding leaf notes
    Showing XML
    Rearranging nodes with drag and drop
    Drag from a Grid to a Tree

    39. Upload Files

    upload

    40. Vertical Browse

    vertical_browse

    Comment with your custom Flex controls

    Please comment with a link to your favorite custom Flex controls.

    Comments (17)

    6 Tips for a Great Flex UX: Part 3

    By Theresa Neil

    Since the book focuses on rich interactions, I want to spend some time on Adobe Flex/AIR.

    These tips are based on the best Flex resources I have found, and how you can use them to craft a great user experience. This is part 3 of 6:

    Learn from the Rest: 10 Great RIAs

    Take a look at some of the best RIAs on the web. How did I decide these are the best? I reviewed numerous applications, basing the evaluations on Jakob Nielsen’s 10 Principles for User Interface Design:

    Feedback — Metaphor — Navigation — Consistency — Prevention — Recognition — Efficiency — Design — Recovery — Help

    I realize these guidelines are a bit old (from 1990!)- but all applications should meet these guidelines at a minimum. The applications listed below also embody our 6 Principles for Rich Interaction:

    Make it Direct — Keep it Lightweight — Stay on the Page — Provide an Invitation — Use Transitions — React Immediately

    01. CrazyEgg

    crazyeggcrazyegg_confetti

    Fantastic application which adheres to every one of the principles. At first, I thought the confetti feature was going to ruin the evaluation, but it is a perfect balance of innovation and usability. Look at how they use common checkboxes for selection, and wiggle the confetti when a source is added- very rich, very nice.

    Interactive demo is available

    02. Mint

    mintmint_saver

    Mint’s user experience only gets better and better. You may want more features in the product (money market support…), but the features they offer are perfectly executed. Primarily developed with HTML, CSS, JS and Ajax, they chose to incorporate Flex in the Trends section.
    The new Ways to Save section is completely dynamic, updating as you adjust amounts, scores and preferences.

    Free registration is available

    03. Wufoo

    wufoowufoostatistics

    Wufoo is an extremely well designed tool that has more than meets the eyes. Play with the templates and report creator for inspiration in keeping it simple, and look at they way they use Blank Slate and Help Tips to keep you moving towards your goal. It is almost even fun :o )

    A nice product tour and free plan is available

    04. 280 Slides

    280slides280slides_toolbar

    One word- slick. If only all of my projects could be this perfect. Yes, it seems like Keynote (or PowerPoint) on the web, but take a closer look at some of the features. Instead of the maddening Inspector and Format menu, the common formatting functions are in the toolbar. Everything is there when I need it, they even incorporated Adobe Kuler in the color palette!

    Free trial available

    05. Action Method

    actionmethodactionmethod_dialog

    Another very well implemented product. It is easy to get started with the Blank Slate screens providing tips and directions, and even easier to get comfortable using the product because it uses a standard screen patterns and common controls.
    Every detail has been accounted for. Notice the visual design that makes it clear that the tasks can be dragged around and reordered.

    Trial version available

    06. Fidelity Labs

    fidelitymyplanfidelitylabs_mortage

    In 2006 Fidelity Labs started cranking out some very nice RIAs, one of them being Fidelity MyPlan. The Mortgage Search and Homes Sold were also very nice, but have been retired. Unfortunately, their newest 3D Portfolio Analyzer, is not up to par with their earlier beta products.
    The direct interactions and what-if scenarios in MyPlan seem to have inspired Discovers Paydown Planner and other direct manipulation financial planning tools.

    Fidelity MyPlan is publicly available

    07. Pandora

    pandorapandora_tip

    Pandora has been around since 2005 and has finally gained popularity. It has a very simple, intuitive interface, which makes it easy to get started. The menu offers direct interaction for rating the song ‘up’ or ‘down’, while also providing advanced options such as “don’t play this song again for a month”. And the help tips, shown at just the right time in the workflow, provide a glimpse into advanced features.

    Pandora is publicly available

    08. Wave Maker

    wavemakerwavemaker_model

    Wavemaker is a great example of how a complicated product with many features can be clarified with good interface design. They use a logical page flow from left to right- matching the developer workflow of adding a control to the canvas (LEFT) , physically manipulating it (CENTER), then entering tweaking the details in the properties and style panel (RIGHT).

    A Cloud Edition is available

    09. SugarSync

    sugarsync_grid
    sugarsync

    Another great product that relies upon standard screen patterns and common controls to create an intuitive efficient experience. Awarded Top 10 User Interfaces of 2008 by Jakob Nielsen. Report available for purchase.

    A 45 day trial is available

    10. clickshirt

    clickshirtclick_hoverclick_click

    clickshirt keeps it simple and fun with integrated demos and lively interactions. Event the checkout is rich, hover to see more details about the t-shirt type, click to specify the size and quantity. No gratuitous paging in this application.

    clickshirt is publicly available

    More Good RIAs

    These products have good examples of rich usable components, although they may not have met the 10 basic principles for usability throughout the whole application.

    NetVibes

    netvibes1

    Trulia Snapshot

    truiasnapshot1

    37signals products like Highrise

    highrise

    Wesabe

    wesabe

    Keep an Eye on These

    iWork.com Publishing Tool

    iworkcom-comments

    Atlas

    atlas

    Bespin

    bespin

    OtherInbox

    otherinbox

    Comment with your favorite RIA

    I realize I have only skimmed the surface here, please comment with a link to the best RIA you use.

    Thanks to Rob Jones and Greg Leppert for helping me pull together this list.

    Comments (9)

    6 Tips for a Great Flex UX: Part 2

    By Theresa Neil

    Since the book focuses on rich interactions, I want to spend some time on Adobe Flex/AIR.

    These tips are based on the best Flex resources I have found, and how you can use them to craft a great user experience. This is part 2 of 6:

    • Play With It: 10 Explorers & Galleries
    • Learn From the Best: 10 Great Flex Apps
    • Learn From the Rest: 10 Great RIAs
    • Stock Your Toolbox: The Essential Controls
    • Review Best Practices for Designing a RIA
    • Avoid Common Mistakes: 10 Anti-Patterns

    Learn from the Best: 10 Great Flex Apps

    Take a look at some of the best Flex applications on the market. How did I decide these are the best? I reviewed numerous applications, basing the evaluations on Jakob Nielsen’s 10 Principles for User Interface Design:

    Feedback — Metaphor — Navigation — Consistency — Prevention — Recognition — Efficiency — Design — Recovery — Help

    I realize these guidelines are a bit old (from 1990!)- but all applications should meet these guidelines at a minimum. The applications listed below also embody our 6 Principles for Rich Interaction:

    Make it Direct — Keep it Lightweight — Stay on the Page — Provide an Invitation — Use Transitions — React Immediately

    01. Picnik

    picnik
    Free version available

    02. Balsamiq

    balsamiq
    Trial version available

    03. Sprout Builder

    sproutbuilder
    Demo version available.

    04. Campaign Monitor by eyeblaster

    campaignmonitor
    Commercial application- no demo available. Awarded Top 10 User Interfaces of 2008 by Jakob Nielsen. Report available for purchase.

    05. ConceptShare

    conceptshare
    Free account available.

    06. Weight Watchers eTools

    weight_watchers
    Commercial application- no demo available.

    07. Small Worlds

    smallworlds
    Free account available

    08. Buzzword

    adobebuzzword
    Free account available

    09. Whitestone Cheese

    whitestone
    Publicly available at www.whitestonecheese.co.nz

    10. Kuler

    kuler
    Publicly available at kuler.adobe.com

    11. SumoPaint

    sumopaint-screen
    Free account available

    Close Contenders

    These apps were really close, but missed a couple of key principles, or are still maturing.

    Klok

    klok_fullscreenklok_time_entries
    Free personal download available

    Nice time tracking product in AIR- nailed the metaphor, but haven’t Made it Direct enough (yet). I instinctively want to click in my calendar to start logging my time against a certain project. Instead I have to navigate to Project View, then into Time Entries. And spinners for entering start and stop times are inefficient.

    I must say I love the Weekly Time Sheet though, and the fact I can drag it to my desktop! I think this product will mature very nicely.

    Tour Tracker

    tour_tracker_fullscreen
    tourtracker_allcaps
    Up for a limited time at Amgen Tour of California.

    Looks amazing. The metaphor is perfect- big map showing the course and stages- but lost points on some basic principles. Specifically Feedback- I click and click to “watch a rider” on the home page, nothing happens, so I keep clicking. And Design- a black background might demo well, but white and blue tex, all caps, sure is hard on the eyes.

    Google Finance Dashboard

    googlefinance
    Publicly available at BrightPoint Consulting

    This is a really nice dashboard showing what can be done with Flex & Degrafa. I can’t wait to see how they finish it out. Also check out Tom Gonzale’s blog for more amazing data visualizations with Flex and Degrafa.

    htmlText Editor 2008

    htmltexteditor1
    Publicly available at www.theflexguy.com

    This is a neat little one screen application that absolutely Stays in the Page and Makes it Direct. However, the Filter Tags feature is non-standard in more than one way: “If you remove tags and see that they really were needed, you can just uncheck the box and press Filter tags again.” I know the space is limited but Undo and Redo buttons would make more sense.

    Agile Agenda

    agileagendaagile_agenda_clicks
    Free trial download available

    Project management tool in AIR. Missed the Keep it Direct, and Stay in the Page principles. Too many dialogs where simple inline editing would have sufficed. Need better icons, or text with the icons. Usability aside, the product’s functionality seems to be quite robust and well worth the price.

    Comment with your favorite Flex applications

    I realize I have only skimmed the surface here, please comment with a link to the best Flex UIs you know of.

    Comments (14)

    6 Tips for a Great Flex UX: Part 1

    By Theresa Neil

    Since the book focuses on rich interactions, I wanted to spend some time on Adobe Flex/AIR.

    After designing several large enterprise applications for diverse clients and industries, I’ve noticed some barriers to crafting a great experience in Flex. I think these barriers arise from the relative newness of the technology (and RIAs in general), the initial focus on development over design, and the confidence that Flex can provide a great UX out of the box. But it takes a bit more to make a Flex app really shine. Fortunately, the Flex community is chock-full of talented and motivated developers who contribute amazing resources.

    These tips are based on the best Flex resources I have found, and how you can use them to craft a great Flex UX. This is part 1 of 6:

    • Play With It: 10 Explorers
    • Learn From the Best: 10 Great Flex Apps
    • Learn From the Rest: 10 Great RIAs
    • Stock Your Toolbox: Essential Resources
    • Review Best Practices for Designing a RIA
    • Avoid Common Mistakes: 10 Anti-Patterns

    Play With It: 10 Explorers

    I can’t think of a better way to get your feet wet than to play with these explorers.

    01. Tour de Flex

    tourdeflex

    02. Component Explorer

    flexcomponentexplorer

    03. Style Explorer

    flexstyleexplorer

    04. Regular Expression Explorer

    regularexpressionexplorer
    By Ryan Swanson

    05. Charts Explorer

    chartexplorer
    By Ely Greenfield

    06. Efflex Effects Explorer

    effectsexplorer
    By Stephen Downs

    07. Filter Explorer

    filterexplorer

    08. Primitive Objects Explorer

    primitiveexplorer

    09. Data Visualization Explorer

    quvisexplorer

    10. Button Skin Explorer

    buttonskinexplorer

    Comment with your favorite Flex explorer

    I realize I have only skimmed the surface here, please comment with a link to your favorite explorer or gallery for Flex 3.

    Comments (17)

    15 Common Component Patterns

    By Theresa Neil

    As Bill mentioned in an earlier post, we don’t want to limit this blog to just the principles and patterns found in the book. For that you can check out our Explore the Book section.

    This is the third article in a three part series on patterns and principles for RIA design.

        Standard Screen Patterns: 12 patterns w/100 examples
        Essential Controls: 30 controls for RIA design and development
        Common Component Patterns: 15 patterns and examples

    Odds are good if you are designing a enterprise software or a productivity web application, you’ll need a number of these components. Don’t spend time and effort on (re)designing these ancillary features- try these solutions instead.

    15_common_components2

    01. Add Another

    component_add_another_wufoo1
    Wufoo (button)

    component_add_another_gmail1
    Gmail (link)

    Requirement: Need to offer multiple input fields for the same thing, but unsure how many the user may need
    Example: Add attachments, enter phone numbers, upload photos…
    Description: The “add another” link or button should be in proximity to the field, and the remove option is shown an attachment is added, and only one “add another” link is shown at a time. No need to show the remove button until at least one entry is shown.

    02. Add/Manage Tags

    component_add_tags_highrise
    Highrise (inline edit)

    component_add_tags_mint
    Mint (dialog)

    Requirement: Need a way to add non-structured meta data to an object that can later be searched
    Example: While adding recruits to a CRM system, the recruiter wants to note applicants’ interests and hobbies
    Description: Place the tags in close proximity to the object being taggged. Allow for direct adding of additional tags and editing. You can take the 37signals approach and let users type in any tags they want- running the risk of duplicate, misspelled or overlapping concept tags. Or use Mint’s approach and let users select from the existing list of tags, and/or add new ones.

    03. Add/Edit or Select from Existing

    componenet_add_edit_select
    Highrise

    Requirement: Need to pick from an existing option, add a new option, or edit an existing option
    Example: Recording receipts for household expenses, and there is not a category for pet/vet bills. Add a new category for “pets”, which will now show up as an option in the list
    Description: Place the option for “add new…” at the bottom of the options. Open a new dialog or light weight layer to add the new option. Place edit to the right of the list box, edit can be a new screen or dialog for editing all the options.

    04. Advanced Filter

    component_advanced_search1
    Mission 360 for The Leukemia & Lymphoma Society

    Requirement: Need to refine the data set based on specified criteria
    Example: In a bug tracking system, a developer needs to see all bugs assigned to him, in the last 24 hours, related to the production system, containing the term “feedback”
    Description: Provide a dynamic filter field and offer an advanced filter option, where the user can specify criteria for refining the data set. Allow the criteria to be saved (usually as a ‘view’), that can be accessed again. Note* Luke W. has a great article describing multiple techniques for refining data tables.

    05. Build a List (aka Accumulator)

    component_build_a_list_linkedin
    LinkedIn

    Requirement:Need to create a list from an existing set of options
    Example: Invite some of your friends from your existing list of webmail contacts, or build a list of hot prospects for a sales campaign
    Description: When a user needs to select items from separate sets of search results or other large, unwieldy data sets- let them manipulate the left (search, sort, navigate or filter), and add to the right.

    06. Build an Expression (aka Predicate Editor)

    component_build_expression
    Wufoo

    build_expression
    Mac OS predicate editor inspired web versions of this component

    Requirement: Need to define a set of conditions that build on each other.
    Example: Complex search or building a report filter, or building a mathematical function
    Description: Design it so the expression can be read, left to right, top to bottom. Each line can be edited, removed, or deleted, and possibly rearranged in order.

    07. Contextual Toolbar

    component_group_tools_picnik
    Picnik

    Requirement: Need to perform an action that has multiple input parameters
    Example: Analyst needs to apply a discount to all the rows in a table, clicks the ‘discount’ tool. The discount options: discount percent [10%] or flat rate discount [$0.00], are then provided.
    Description: Group the actions in a toolbar, and as one is selected, disclose the input parameters. Offer a live preview if applicable.

    08. Customizable Data Grid

    component_configure_datagri
    Flexigrid demo

    Requirement: Need robust data grid from viewing, editing and manipulating data
    Example: A CRM system with contacts displayed in a table/data grid
    Description: Offer simple and advanced filtering, ability to directly resize columns, ability to directly rearrange columns, hide/show columns, sorting. If also providing editing, provide a toolbar that includes undo and redo actions.

    09. Drag & Drop Reorder

    component_drag_drop_list
    Basecamp

    component_drag_drop_reorder_cogmap
    Cogmap

    Requirement: Need to reorder a text list, visual map, or tree because the order is indicative of priority or hierarchical relationship
    Example: To-do list, org chart, tree
    Description: Make sure to follow the interaction principles for all the states of drag and drop management, most importantly providing a visual cue the list can be rearranged, like the drag handles in the examples. Refer to Bill’s Interesting Moments Grid for implementing the interaction properly.

    10. Full Screen

    component_fullscreen_picnik
    Picnik

    component_fullscreen_radedi1
    RadEditor Demo

    Requirement: Need more real estate for core functionality
    Example:Editing a photo, designing a work flow, navigating a map
    Description: Place the toggle in the top left corner (make sure it remains in the same spot and visible even in the full screen mode). The branding and top level navigation can be hidden in this mode. Don’t add any more elements into the full screen mode- just enlarge the workspace.

    11. Graph Drill Down

    component_graph_hover_wesabe
    Wesabe

    component_graph_hover_dundas
    Dundas Charts

    Requirement: Need to show a summary view and allow a quick and efficient drill down to view more details, instead of navigating deeper into the graph
    Example: A specific datapoint has multiple sets of information available. The main graph could show sales volume by sales person over time, and the hover detail breaks it down by new versus existing clients
    Description: Provide a visual indicator (like a dot) that hover details are available. Use a non-modal layer to display the next level of data.

    12. Live Preview

    component_live_preview_fidelity
    Fidelity MyPlan

    component_live_preview_mint1
    Mint Savings Finder

    Requirement: Need provide live feedback on changing criteria
    Example: Graphic designer altering the hue of a photo needs to see the effect as he adjust the value
    Description: Provide easy to manipulate controls, and an “apply” and “cancel” options, or “revert” feature.

    13. Slide Down

    component_slide_down_retail
    RetailMeNot.com (inline)

    component_slide_down_weightwatchers
    Weight Watchers (overlay)

    Requirement: Need to show more details, or input details
    Example: Reading an article in a list of articles, scan the first paragraph and want to read more, or read the comments.
    Description: Expand inline or overlay without leaving the page or opening a new window/dialog. Use smooth transitions and a fixed height scroll window like RetailMeNot. Provide the close link in the same spot.

    14. Split a Transaction

    component_split_transaction
    Mint

    Requirement: Need to allocate a single item across multiple categroies
    Example: Dividing a transaction (ex. allocating a 50% of a donation to one recipient, and 50% to another recipient, or $2.00 as a fee, and $200.00 as cash withdraw)
    Description: Split button placed unobtrusively in the transaction detail pane, could also be a tool in the table toolbar, enabled when a row is selected. Opens a dialog allowing the user to re-allocate the data as needed.

    15. Switch To

    switch_to1
    Basecamp

    switch_to_zoho
    Zoho

    Requirement: Need to infrequently navigate out of one module into another without returning to a control panel, dashboard or dock
    Example: Working in one project, finish and need to work on another one
    Description: Make the switch less visually prominent than the main navigation, but still easily accessible (top right or left, above the main menu).

    Comments (23)