Even ten years ago, “experience” was not really something that was given much thought in building software. More often than not the primary goal of a piece of software was simply to display results, or data. How the data or results were displayed was more often a function of technical specifications than it was a matter of user-centric design. That is to say, while the user was often a part of the process of creating specifications for a software solution, the end result was often not differentiated on being tailored to the user, but rather the data. It can be argued that if you polled software publishers ten to fifteen years ago on what user-centric design was, the answer would largely be centered around presenting as much data to a user on a single screen as possible (“less clicks is more productivity”). The end result was focused on process rather than personalization and taking into account how the user works (which is not the same as process).
That line of thinking was certainly acceptable in the past, but things are much different today. As web platforms became richer and aesthetic design became more important to the digital consumer experience, users frankly demanded more of the software they used. Gone now are the days where "battleship grey” is acceptable. Software that is successful in today’s market often makes effective use of user-centric principles including the determination of user personas, natural flow of information, content taxonomies, effective and intelligent use of colour, wireframing and storyboards among other things. Making the right experiential decisions in the software design stage has become just as important as making the effort to test the code prior to flipping the switch on a production instance. If that sounds bizarre, think of it this way: what use is the best, most robust software solution if your users hate the way it works for them? If the user doesn’t buy into it, the software solution has ultimately failed in its objective.
The phone as a platform is no different, especially in mobile platforms that are truly modern and provide great amounts of feature capabilities out of the box (GPS, modern browser, multitasking, notification engines, etc.). The base experience that the platform provides enables software developers to create an even richer, more user-centric experience with the apps that they build on top of their chosen mobile platform. With Windows Phone, Microsoft has built a unique base experience (in Metro) that software publishers can leverage to create applications that truly raise the expectations bar for users and the apps they install on their Windows Phone device. The rest of this post focuses on the things that you as a developer/designer can do to create a truly amazing and user-centric experience within your Windows Phone apps.
Fresh and Simple
Windows Phone represents simplicity in design. When describing the principles of modern Windows Phone design, you may have seen phrases like “fierce reduction of unnecessary elements”, “fast and responsive”, “focus on primary tasks” and “content, not chrome”. All of these phrases revolve around the idea of making it easy for users to find the information they need.
When wireframing your app, think of the following things:
- Prioritize: Top level screens should not be cluttered; make use of secondary (or “deep”) screens to provide detailed information. Think of it like this – top level screens should be the 30,000’ view while deeper screens provide the elemental details. Ultimately, top level screens should provide actionable data to the user, but if the user wants more information they can get it from deeper screens.
- User Orientation: Data should be order logically. If you are thinking of putting two or more very different data groups on a single screen, you likely should be separating those groups into separate screens.
- The App Bar: The only buttons that should appear on any screen are buttons that are considered primary to the screen’s action. If you have put a button on a screen that is likely not expected to be used often or is not pivotal to the functionality of the page, you should instead transfer that button to the app bar.
- Metro before Brand: Apply the Metro design to the page before you inject any branding on a page. This may seem counter-intuitive, but it is in fact the most effective way to build a Windows Phone app. If you focus on the branding first, it is sometimes difficult to design the page to be consistent with the look and feel of the phone platform.
Navigation in your Windows Phone app should respect the flow of the Windows Phone platform. Always use the hardware back button for going to the previous screen and never create a navigation structure that breaks the back button stack. Simply put, this will cause the app to fail certification. It’s also the most common reason why apps fail the certification process in the first place.
Below are some of the more important considerations around Windows Phone app navigation:
- Hub & Spoke Model: Design the page flow of your app to resemble a hub and spoke. Focus on creating one major page and section off features of the app on separate pages from that main page.
- Predictability: If you design your app to match the flow and spirit of the Windows Phone platform, your app will be much more intuitive and therefore predictable to the user. Predictability does not equate to being dull or boring. It means the user will actually enjoy your app more as he/she will understand what comes next. The less the user has to think about how to get to a piece of information when using your app the more fun it will be.
- Integrated Experiences: If your app makes heavy use of functionality that is found in the foundational experiences (aka: hubs) on Windows Phone (like Music & Videos, Pictures, People, etc.), then you should integrate your app into those services rather than building your own. Not only does it save you the effort of implementing your own code around those features, it actually makes your app look and feel much more slick and integrated with the phone experience overall.
Creating a User Journey
It’s one thing to think you have a killer app idea. It’s an entirely other thing whether that idea translates into a popular app. Your intent as an app developer or designer is to create an experience that is lasting and meaningful. Actually, that is the goal of not only mobile app creators but of any app creator in general. Aside from solutions that are considered “one-offs” or temporary solutions, what really drives us all is to create apps that frankly everyone wants. Your ultimate goal for success may differ from someone else (e.g.: “I want to become rich from the revenue from my app” vs. “I want to be popular because everyone downloads my app” vs. “I want to make a positive impact on someone’s life because they use my app”), but the fundamental desire is the same: “I want people to download and use my app”.
So when you are thinking of your app, there are three major questions you need to ask yourself before you hit Visual Studio and Blend:
- Will this app be useful to my users?
- Will this app be usable by my users?
- Will this app be desirable to my users?
If the answer to any of those questions is no and your intent is to make your app as popular and relevant as possible, then you probably need to think a little longer on the problem space your app is trying to solve for.
Keep in mind this general mobile app statistic: The average mobile application is opened by a user once. Only around 1% of all mobile apps are used regularly long term.
So how do you entice users to first download your app, then open your app more than once? There is no one right answer, of course, but there are three guiding principles that greatly enhance your chances of getting to that goal:
- Make the user want to download your app by providing a strong business case. Take great care in authouring your app’s description in the Marketplace and make sure you clearly identify the value propositions for users to want to download your app.
- Embrace Metro in your App: The best apps, regardless of the mobile platform you target, are almost always the ones that adopt the look, feel and spirit of the mobile platform it lives on. For Windows Phone, this means using Metro in your apps.
- Be thoughtful when you Insert your Branding: The branding of your app is clearly important, but make sure that it flows with the look and feel of Windows Phone. If the branding is jarring or feels out of place, users will not be as likely to re-use your app.
- Invite users to explore your app. If you make it fun for users to navigate through your app and find things that they will say “Hey, that’s cool!” to, then you’ve likely won over your user right then and there.
- Keep the app fresh by providing updates. If an app goes stale, they are less likely to open it again. Try to have a deliberate schedule for functionality updates. Provide value-add features in as many updates as possible (i.e.: not just bug fixes).
- Let your app tell a story. This can be done through an interesting yet effective navigation structure, great visual experience, providing some delight in surprise and yet be predictable enough that the app is intuitive.
- Evolution is not just a term coined by Darwin. Apps can (and should!) evolve over time. This can include ways for users to retain and build collections of information that can be referred back to, functionality within the app that evolves with changing trends, fresh information being provided by the app whenever possible and many other ways.
Call to Action
If you're building apps for Windows Phone 7, go to the App Design Guidelines documentation on the App Hub. It will give you a good primer on what works and what doesn't. If you're looking to start building an app for WIndows Phone but don't know where to start, download the free tools here and then look at these Windows Phone Developer Resources to get started. Happy designing!