Respect Users’ Data

One of the immutable tenets of designing mobile user experiences is to respect (and protect) your users’ data. This means, among other things, saving form data as users move from screen to screen and eliminating the need for them to type the same information more than once.

Time Magazine iPhone App
Time Magazine iPhone App

Time Magazine either didn’t know or didn’t follow this tenet in the latest update to its iPhone app. When I launched the app for the first time after updating to version 2.2 I was shown an alert telling me that my customized settings had been reset and that I needed to redo them. To be honest, I don’t even recall what settings I may have customized (I download and explore a lot of apps and many, like this one, almost never get used after the first week). But I certainly wasn’t going to customize anything again if my settings could just be wiped out without a warning.

There are several reasons my settings may have been reset: a change to the underlying data structure that rendered them unusable, settings that I had customized had been removed, careless or rushed programming, or a simple bug that slipped through testing. If there was a legitimate reason, the app could have done a better job of letting me know why. While this may be a trivial matter for infrequent users, it could be a big deal to someone who uses the app regularly.

Sometimes apps have to change their business rules and functionality as they evolve. This is unavoidable. But app creators can manage these changes better if they start with a healthy respect for their users.

Target Brand On Target Across Platforms

A recent discussion at work about how responsive web design could lead to brand consistency across platforms by repurposing and restyling shared content in a device-appropriate way got me thinking about how companies ensure common brand treatments in our multi-device world.

The theory underlying responsive design is that changes to stylesheets allow you to reuse your content on multiple devices, making it easier to maintain brand and stylistic consistency. For examples of this see the Media Queries site. Now there are plenty of usability issues with responsive design, such as pushing all your website content to mobile devices, but that’s outside the scope of this article.

So back to brand consistency across platforms. It’s not easy. But it’s also not an insurmountable task. And when I think about brands who maintain consistency across platforms and channels, Target immediately comes to mind as a best-of-class example.

Target’s recent redesign of its website introduced a bold new look for their main ecommerce property. At the same time, Target also launched a redesigned mobile website, iPhone and Android apps, and a promotional email template that strongly support the new look and feel. Once you are familiar with the Target brand, it’s clear where you are shopping no matter which platform you are using.

Target’s brand consistency is maintained with strict use of typography, layout, color, and icons. In a bold move, the famous Target logo is tucked behind the page header, a treatment also used on the mobile web, native apps, and email.

While the information design patterns for some parts of the experience are slightly different between the mobile web and apps, the brand treatment is fairly consistent.

Target has given the design community a great example of executing a brand in a consistent manner across various platforms, while still leaving room for the unique needs and constraints of each platform.

Target Website
Target Website
Target Email And Mobile Web
Target Email And Mobile Web
Target iPhone App
Target iPhone App
Target Android App
Target Android App

Safari Reader Improves Mobile Browsing

One of the little-mentioned features in Apple’s new iOS 5 is the addition of Reader in Mobile Safari. Reader, which was introduced in desktop Safari last year, allows a user to click a button in the browser address bar to render a webpage in a user-friendly, text-only format.

Reader instantly turns mobile webpages that may be poorly designed or have small fonts into elegant and highly readable pages. All ads, photos, and graphics are stripped from the page. Reader also merges articles that may be spread across several pages on a mobile website into a single scrollable page. And as with all things Mac, the handling of typography is excellent.

Reader is based on technology licensed from Readability, which also created a bookmarklet version for desktop web browsers and is embedded in the Amazon Kindle and popular iPad applications like Flipboard and Reeder.

Below is an article from the Chicago Tribune using the normal Mobile Safari display and Reader. I know which one I’d rather read.

Mobile Safari Reader
Mobile Safari Reader

What Makes a Great Mobile App?

This week I heard Alan Wells, director of product development at Globant’s Mobile Studio, speak on what makes a great mobile app. Alan was speaking as part of the Globant Mobile Roadshow. Here are my high-level notes:

  • A great mobile app or site needs a delightful user experience. When people only have a few minutes to get to know your app, the experience better be rewarding and fun or they may never use it again.
  • You have to think about the different use cases and contexts that apply to mobile usage. Sessions will be shorter but possibly more frequent than with your website. Think about morning and evening commuters popping in and out of your app. Design experiences that deliver value that can be had in just a few minutes.
  • Use cases for tablets are different than for handheld devices. Sessions may be longer. People may be using your app in unusual places, like while reclining on their sofa. Don’t just think of a tablet as a smaller laptop.
  • Embrace the constraints and capabilities of mobile devices. Screens are limited in size, so use that constraint to simplify your app and strip away functions that don’t apply to the mobile context. Capabilities like goelocation and an accelerometer open your app up to functions you couldn’t have considered in the desktop version. Explore those to create those delightful experiences.
  • Higher resolution screens on newer high-end devices don’t change the basic needs of the touch target. Always design with the fingertip in mind.
  • Don’t just port a web app to mobile devices. Build for the mobile context from the start.
  • When creating a mobile companion to a full web app reuse or re-purpose the artistic elements when possible to create a consistent and cohesive experience.
  • Think carefully about whether your app is a companion app or needs full feature parity with the desktop version. Companion apps have an advantage in extending the desktop experience and increasing overall engagement with your brand, without you having to replicate every feature (many of which will never be used in the mobile context).
  • Weigh carefully whether you want your app connected to your website. A connected app will require more communication between development teams and more coordination of releases, but also can promote greater engagement and a seamless, cross-platform user experience.

iPhone Stencils for Visio

I recently found a great set of stencils for wireframing iPhone apps and mobile websites in Visio. The stencil set was created by Jonathan Abbett of Beacon 16 and is available under a Creative Commons License.

The stencil shapes include:

  • iPhone
  • Navigation Bar
  • Search Bar
  • Browser Bar
  • Four and Five Button Tab Bars
  • Keyboard
  • Date Picker
  • More…

If you need a higher fidelity GUI design toolkit for iPhone and iPad, Speckyboy Design Magazine published a great list of resources last year. If you need to illustrate touch gestures in your wireframes, Luke Wroblewski maintains a Touch Gesture Reference Guide on his website.

iPhone Stencils for Visio
iPhone Stencils for Visio

Axure for Mobile Prototyping

I recently developed a small prototype for usability testing of some new mobile website functionality using Axure RP Version 6. Here are a few things I learned:

  • If possible, use Axure RP Version 6. It has mobile settings under the Generate Prototype menu that will save you from having to manually add to each page the HTML viewport meta tag every time you generate a new prototype. Screen shots of the settings panel are at the bottom of this post.
  • Generate separate viewport tags for iOS and Android browsers like below:
    1. iPhone: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes"/>
    2. Android: <meta name="viewport" content="width=480, target-densityDpi=device-dpi"/>
  • For iPhone, you can design your prototype at 320 pixels wide for older devices. iPhone 4 will scale it up to 640 pixels wide so the prototype has the same appearance no matter what version of the iPhone your participant is using.
  • For Android smartphones, design the prototype at 480 pixels wide. Tablets are another story and my testing did not include them.
  • To create accordion effects on interface widgets, a common design pattern on mobile websites, you can use Dynamic Panels and Axure’s OnShow event with the Move action. See the advanced dynamic panel tutorial on Axure’s website.
  • If you are opening the prototype on an iPhone from a home screen icon and want to hide the URL bar, use this meta tag:  <meta name="apple-mobile-web-app-capable" content="yes"/>
  • Test on as many target Android devices as you can. The Android viewport tag worked on most devices I tested, but not all. The differences in Android pixel density and screen resolution necessitate more testing than is needed with Mobile Safari on the iPhone.
  • Keep in mind you are building a prototype. It doesn’t need to work perfectly on all devices if you can just ask the test participant to zoom in during the session if needed. You should be explaining that they are interacting with a prototype as part of the test script so this should not be a problem.

For more on the iOS viewport, see Apple’s iOS Developer Library.

For more on targeting different screens size on Android, see the Android Developers Site.

Axure Settings for iPhone
Axure Settings for iPhone

Axure Settings for Android
Axure Settings for Android

Touchscreen Design Best Practices

Saturday was Day 2 of the Mobile UX sessions at Nielsen Norman Group’s Usability Week in San Francisco. The focus was on designing for touchscreens. Here are my notes:

  • Allow Users To Go Back and Undo: Make sure users can compensate for accidental taps. Have them confirm any action that would delete their data, erase their work, or process a transaction.
  • Don’t Force Users To Change Device Orientation: Whether your app is a content app like the New York Times or a utility app like American Airlines make sure it can adjust its layout to however a person is holding their device.
  • Pad Those Links And Buttons: Padding a widget can improve people’s accuracy in clicking it. For example, if you display an product image and description in a list layout, make the whole row clickable, not just the image or the text.
  • Padding Can Prevent Errors, But Won’t Increase Efficiency: In cases where you have a clickable invisible padding area around an object, people will still slow the movement of their finger as it approaches the target. Because they don’t know the target is actually larger, they treat it like it is smaller. Fitts’ law is still on the books.
  • Pad Links On Your Wired Site If You Want It Used on Tablets: Many site managers have learned that iPad and other tablets owners are using their wired sites instead of the mobile versions that were designed with smartphones in mind. See Yahoo!’s tablet site for cues on how a wired site can be tweaked to work on a touchscreen tablet.
  • Avoid Localized Swipes: When a left or right swipe only changes one horizontal section of a screen, it confuses people as to what the gesture does. Localized swipes don’t match real world movement, in which pushing something moves the entire object, not a portion of it. Don’t make your app a stack of independent carousels.
  • Provide Cues To Unseen Functionality: Gestures are great for maximizing screen layout but can be undiscoverable by new users. The convention of pulling down on a screen to refresh content that Twitter and other mobile sites use is hidden from the view of new users. Provide cues to new users to help them learn these gestures.
  • Don’t Rely On The Accelerometer For Navigation: People who are new to more advanced mobile devices may not even know about “shaking” as a means for input. Others may find it clumsy or uncomfortable. It’s OK to use the accelerometer, but don’t make it to sole means for input. Urbanspoon’s iPhone app is a good example of an app that uses the accelerometer but also has a big red button.
  • Use Sliders With Caution: Sliders as interface controls are imprecise. Don’t use them if the person has to get to an exact value.
  • Tablets Are Not Smartphones: Don’t be afraid of rich interactions on iPads and other tablets. Tablet users are not “on the go” in the same way as smartphone users.
  • Design A Distinctive Home Screen Icon: Make your app’s icon distinct so it can be recognized on a crowded home screen. If people have to remember your app’s icon, they may never click it.
  • More Is Often Less: Adding features to your mobile app doesn’t always make it better, especially if they add too much complexity. Add features of they make sense in a mobile context, not just because they exist on your wired site.

Mobile Design Best Practices

Today was Day 1 of the Mobile UX sessions at Nielsen Norman Group’s Usability Week in San Francisco. Here are my notes:

  • Design For Interruptions: Since mobile usage is out “in the wild” you have to assume interruptions will happen. Support auto-save and user initiated saving of work. Remember what people type into form inputs and never make them type the same information twice.
  • Design For Continuous Experiences: If users can enter information or save things on your wired site, make sure they can access that information on your mobile app/site. And also let them save and add information on the mobile version that flows back to the wired site.
  • Reduce Interaction Cost: Anything you can do to remove typing reduces interaction cost. Even on the most advanced mobile device, typing is annoying at best (I know this because I’m writing this on an iPad). Whenever your design asks a person to type, ask yourself if there is another way to get this information other than the device keyboard.
  • Make Designs Self-Sufficient: Don’t make people have to leave your app/site to get a necessary piece of information. For example, if your site is a banking site that only processes transactions on business days, don’t offer a date picker that includes weekends or holidays. If someone has to get into their device calendar to check if June 19 is a weekend, they may not get back to the same place in the transaction and may have to start over.
  • Don’t Force People To Rely On Memory: Don’t send people an email with a cryptic promotion code and then send them to a site where they have to remember that code. Pass the code in on the URL if they click anything on the email and keep it in memory for the length of their session. If they have to go to their email when presented with a promo code input during checkout, they may never get back to complete the transaction.
  • Preserve Session State Throughout The Visit: Don’t let people click a Save to Favorites icon from a search results screen and then send them back to a screen where they have to reenter their search term(s) to get the same results list. Remember what they were doing and get them back intact when they go down alternative paths. And provide them a way to easily start a new search if indeed they are done with their previous search.
  • Remember People’s History: Don’t make people reenter information they already provided. If someone enters a zip code or selects a gender while shopping for shoes, persist that throughout their session (at a minimum). There’s little that’s more annoying than having to reenter information on a mobile keyboard.

Day 2 of Mobile UX is tomorrow. The focus is on touchscreens. You can follow the live tweets at #nnguw.

RIApalooza 3: A Look at the Future of RIAs

Every time I get a glimpse of the future of web and app development, I can’t help but believe the best has yet to come. I got that feeling again yesterday at RIApalooza 3 in Chicago, an insightful yearly conference that aims to advance the development of Rich Internet Applications.

Speakers included the always engaging Chris Bernard, a Microsoft User Experience Evangelist, who delivered the keynote on the future of RIAs. The big take away for me, besides Chris’ great “7 things I learned from John Hughes” segment, was the idea that to better understand and grow in the RIA space you have “go where you are uncomfortable”. His message was essentially this: if you are a Flash developer, explorer HTML5; if you are an Flex developer, explore Silverlight. Chris urged designers and developers to not let our focus on an particular development platform define us as technologists, lest we become the buggy whip makers in the next web technology revolution.

Other speakers included consultant Michael Labriola, who spoke on the major striations of internationalizing and localizing a product. Micheal’s examples were in Adobe Flex, but his lessons apply to whatever development platform you use. He examined several layers in terms of effort and return on investment to demonstrate what can be accomplished quickly, what takes up-front planning, and what fine-tuning work truly makes an application localized. If you are building for a global audience, the tips he provided were golden.

Another great talk came from Adobe’s Renaun Erickson, who demonstrated how Flex 4 could be used to build mobile apps that scale across many devices with different Pixel Per Inch screen densities without having to code device-specific apps. This is valuable if you developed an Android app with the Droid X in mind and want it display correctly in another handset with a different PPI density. This flexible development approach is also useful when handsets from the same manufacturer have different PPI densities, such as iPhone 3GS and iPhone 4. But he advised that when you think about porting an iPhone app to the iPad, it may be time to look at a separate app that takes advantages of the iPad’s much larger surface.

All in all a great day of insightful talks from some really smart people. Not a bad way to end the week.

App Store Flow on iPhone Could Be Streamlined

Normally I love the iTunes App Store, but not so much today. I was trying to add Kayak’s travel app to my new iPhone and found the experience to be full of unnecessary and redundant tapping.

This was my screen flow:

  1. Launched the App Store
  2. Clicked Search
  3. Typed “kayak” and clicked the Search button
  4. Tapped Kayak’s app on the list screen
  5. Clicked the Free button
  6. Clicked the Install button
  7. Received a prompt for my password
  8. Entered my password and click the OK button
  9. Received a message asking me to confirm I wanted to download the app since Apple had detected this was a new device
  10. Clicked the Continue button
  11. Received a prompt for my password
  12. Entered my password and click the OK button
  13. Got directed to billing page with a request to confirm all information (since this was the first time using this device)
  14. Entered credit card security code without making any other changes and clicked the Done button
  15. Returned to the Kayak screen
  16. Clicked the Free button
  17. Clicked the Install button
  18. Done

Did I really need to enter my password twice? The App Store should be smart enough to know I just entered a password when sending me to the billing information page. Normally I don’t mind having to authenticate when accessing billing information, but not when I just did it a moment ago and am finger tapping an iPhone.

Another redundant step was requiring me to tap the Free and Install buttons a second time after going through the setup screens. At that point I had gone through 36 taps, so I think I clearly expressed my desire to download the app (“Really, I do want it!”, I thought). The App Store should have just started the download.

A last unneeded step was asking me to update my payment information to download a free app. My guess is that was done to get my iPhone ready for seamless purchasing in the future, but that’s a business goal of Apple’s, not a user goal of mine. I just wanted to download a free app. Ask me to confirm my billing information when it’s really needed.

My entire Kayak download took 38 taps. Eliminating the second password prompt and the last two buttons would have cut it to 26, a 31% reduction in taps. That’s a lot in a mobile experience. Dropping the credit card setup for a free app would have removed four more taps. Luke Wroblewski stated it best in Web Form Design, don’t ask for data you don’t need to complete the user’s task at hand.

As I said before, I love the App Store. But its download flow needs some streamlining, especially in the mobile context. I’m surprised Apple missed this aspect of the store’s design given its usual laser-focus on all the small details. As Charles Eames said: “The details are not the details. They make the design.”