This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
an APP DICTIONARY APP DICTIONARY APP DICTIONARY APP DICTIONARY Write down the terms and messages used in the app Ex. – tweets in Twitter – Likes in Facebook
your app The first impression first impression first impression first impression the user will have It is not only about layout & colors… It is not only about layout & colors… it it it it is is is is about about about about SENSORY SENSATIONS SENSORY SENSATIONS SENSORY SENSATIONS SENSORY SENSATIONS
of the app integrates integrates integrates integrates with its function the app integrates integrates integrates integrates with its function • Productive app order & clarity • Game gamish, frivoulous • … • …
paradigms standards and paradigms standards and paradigms people are comfortable with people are comfortable with Does it use system-provided controls, views, and icons correctly correctly correctly correctly? Is the application consistent within itself consistent within itself consistent within itself consistent within itself? Does text use uniform terminology and style uniform terminology and style uniform terminology and style uniform terminology and style? Can people predict predict predict predict what will happen?
direct manipulate manipulate manipulate manipulate objects in your app in your app Users can experience direct manipulation when they: • Rotate Rotate Rotate Rotate or otherwise move move move move the device to affect onscreen objects • Use gestures gestures gestures gestures to manipulate onscreen objects • Can see that their actions have immediate, visible results visible results visible results visible results
that processing is occurring that processing is occurring Users expect • immediate feedback • status updates during • status updates during lengthy operations
in the in the in the real real real real world world world world in your app your app Users will quickly grasp how to use the app Ex. Ex. – folders – photo sliders – …
initiate and control should initiate and control should initiate and control actions actions actions actions actions actions actions actions Apps can suggest suggest suggest suggest actions, but users must do them Apps can only infer infer infer infer data data data data from the context Users expect to be able to stop stop stop stop an operation that’s underway
the only means that users use to interact with your app! to interact with your app! • The comfortable minimum size minimum size minimum size minimum size of tappable UI elements is 44 x 44 points • The quality quality quality quality of app artwork is fundamental • The user’s focus is on the content content content content • The user’s focus is on the content content content content
at any time and for any reason any reason users tend to expect apps to launch in the device orientation they’re currently using TIP TIP TIP TIP. You can use the splashscreen image to let the user rotate the device
click, don’t click, they they they they use use use use gestures gestures gestures gestures – tap/double tap – tap/double tap – drag – zoom/pinch – swipe – flick Users expect all these gestures to work the same work the same work the same work the same, regardless of the app they’re currently running
One app One app One app is visible in the foreground at a time at a time When people switch from one app to another, the previous app goes in background and its user interface goes away Some applications might need to continue running in the background
minimal as possible In general, users don’t need onscreen help content to tell them how to use the device or the apps Remember of the Consistency Consistency Consistency Consistency human-interface principle
you need pure feedback on it you need pure feedback on it lo-fi wireframing Tablets Tablets Tablets Tablets http://bit.ly/GTp82Q Tablets Tablets Tablets Tablets content scrolled horizontally
consistently consistently in your app your app You can use tools tools tools tools like palette choosers, or palette pickers from images OR You can define your palette manually through the color color color color wheel wheel wheel wheel http://kuler.adobe.com
when you want something to stand out Analogous Analogous Analogous Analogous choose one color to dominate, a second to support, the third color is as an accent http://bit.ly/GTv7on
font font font • selection of the correct font font font font • understanding sizes sizes sizes sizes • applying conventional design methodologies conventional design methodologies conventional design methodologies conventional design methodologies (size, shape, contrast, color, position, space, etc.) http://bit.ly/GTvuzj
a high Use a high Use a high- - - -contrast typeface contrast typeface contrast typeface contrast typeface – Devices are usually used outside – Devices are usually used outside 2. 2. 2. 2. Use the right typeface (font) Use the right typeface (font) Use the right typeface (font) Use the right typeface (font) http://bit.ly/GTwUtv
Leading = the space between two lines – Leading = the space between two lines 4. Leave space space space space on the right and left of each line 5. 5. 5. 5. don’t crowd don’t crowd don’t crowd don’t crowd the screen
Generously utilize headings headings headings headings – Divide the content into paragraphs 7. Use short paragraphs short paragraphs short paragraphs short paragraphs – 2-3 sentences at most
Users slip (and sleep!) Do whatever it takes to Do whatever it takes to Do whatever it takes to Do whatever it takes to preserve user data preserve user data preserve user data preserve user data and plan for real-world behaviors
one device for one person one device for one person one device for one person one device for one person one device for one person one device for one person one device for one person Don’t continuously ask for name, data, etc. Only implement passwords and clear personal information when required
interrupt people’s life! Don’t interrupt people’s life! Don’t interrupt people’s life! Don’t interrupt people’s life! Don’t interrupt people’s life! Don’t interrupt people’s life! Don’t interrupt people’s life! Differently from desktops Mobiles are glanced at, used in gaps between conversation and driving and watching TV conversation and driving and watching TV
actions for the perform actions for the perform actions for the user based on sensors and user data user based on sensors and user data user based on sensors and user data user based on sensors and user data user based on sensors and user data user based on sensors and user data user based on sensors and user data user based on sensors and user data Ex. Why should you have to silence your phone for a meeting, when the phone knows where you physically are and knows from your calendar that you have a meeting in that room right now? calendar that you have a meeting in that room right now?
most important in each context or screen and… each context or screen and… focus on focus on focus on focus on it it it it exclusively exclusively exclusively exclusively! ! ! ! Your app definition statement will help you Your app definition statement will help you focus your app on its primary task
Give your your your your users users users users what what what what they they they they need need need need most most most most! ! ! ! For example, in a game, people care about the experience, they don’t expect to manage, consume, or create content • Minimize the number of controls in the UI • Customize controls so that they integrate with your app’s graphical style • Fade controls away after people have stopped interacting with them for a little while
the most frequently used information Put the most frequently used information Put the most frequently used information Put the most frequently used information Put the most frequently used information Put the most frequently used information Put the most frequently used information near the top near the top near the top near the top Because users hold the device in the following ways: • In the left hand In the left hand In the left hand In the left hand and gesturing with a finger of the right hand finger of the right hand • In one hand In one hand In one hand In one hand, and gesturing with the thumb of the same hand • Between their hands Between their hands Between their hands Between their hands, and gesturing with both thumbs
logical and easy to predict logical and easy to predict logical and easy to predict logical and easy to predict present logical and easy to predict logical and easy to predict logical and easy to predict logical and easy to predict – put markers to let them where they are – put a back-button Give users only one path to a screen only one path to a screen only one path to a screen only one path to a screen
understandable understandable understandable understandable by users you cannot assume they want or they have time to learn you cannot assume they want or they have time to learn how to use your app Make the main function of your app immediately evident evident evident evident
use terminology your users understand understand understand understand avoid technical jargon – This does not hold if your target user is a technical guy
time and attention, minimize it minimize it minimize it minimize it minimize it minimize it minimize it minimize it TIP TIP TIP TIP. If your app asks users a lot of input data, you have to revise your design! Balance any request for input by users with what Balance any request for input by users with what Balance any request for input by users with what Balance any request for input by users with what you offer them in return you offer them in return you offer them in return you offer them in return you offer them in return you offer them in return you offer them in return you offer them in return Get information from the OS Get information from the OS Get information from the OS Get information from the OS, when appropriate – for example: contacts, address, events in the calendar…
with others When appropriate, make it easy for users to interact with others – allow them to share things like their location, opinions, and high scores For tablets For tablets For tablets For tablets: think of ways to allow more than one person to use your app on the same device
refined, Incorporate a brand’s colors or images in a refined, unobtrusive unobtrusive unobtrusive unobtrusive way Avoid taking space away from the content people care about – Alternative: subtly customize the background of a screen – Alternative: subtly customize the background of a screen
SEARCH can SEARCH can SEARCH can SEARCH can be be be be a a a a primary primary primary primary function function function function primary primary primary primary function function function function Build indexes indexes indexes indexes of your data so that you are always prepared for search Live Live Live Live- - - -filter filter filter filter local data so that you can display results more quickly more quickly Display a search bar search bar search bar search bar above a list or the index in a list Display placeholder content placeholder content placeholder content placeholder content right away and partial results as they become available
convey information in a condensed, headline style information in a condensed, headline style information in a condensed, headline style information in a condensed, headline style information in a condensed, headline style information in a condensed, headline style information in a condensed, headline style information in a condensed, headline style When your UI text is short and direct text is short and direct text is short and direct text is short and direct, users can absorb it quickly and easily Give controls short labels short labels short labels short labels, or use well well well well- - - -understood understood understood understood Give controls short labels short labels short labels short labels, or use well well well well- - - -understood understood understood understood symbols symbols symbols symbols users should tell what they do at a glance
recommended usages recommended usages for standard user interface elements interface elements you can build on users’ prior experience Avoid radically changing Avoid radically changing Avoid radically changing Avoid radically changing the appearance of a control that performs a standard action Never use the standard buttons and icons to mean something else
of a fingertip does not! fingertip does not! Give tappable elements in your application a target area of about 44 x 44 44 x 44 44 x 44 44 x 44 points If you create smaller controls, the app becomes much less If you create smaller controls, the app becomes much less enjoyable or people may focus on the interface only, rather than the content
confidence confidence confidence confidence that their work is always preserved unless they explicitly cancel or always preserved unless they explicitly cancel or delete it Never Never Never Never ask ask ask ask for for for for saving saving saving saving data data data data, it should be done automatically – You can ask to either edit or delete data – You can ask to either edit or delete data
their workflow and forcing them to choose a their workflow and forcing them to choose a particular path Keep modal tasks fairly short and narrowly short and narrowly short and narrowly short and narrowly focused focused focused focused focused focused focused focused Always provide an obvious and safe way to exit exit exit exit a modal task
window About window or a splash screen splash screen splash screen splash screen Avoid displaying an About window About window About window About window or a splash screen splash screen splash screen splash screen Avoid asking people to supply setup information setup information setup information setup information Delay a login login login login requirement for long as possible: – Focus your solution on the needs of 80 percent of your – Focus your solution on the needs of 80 percent of your users – Get as much information as possible from other sources – If you must ask for setup information, put it in your app’s settings
as reasonable Save user data as often as reasonable Save the current state Save the current state Save the current state Save the current state when stopping