Gaia/Design/ApplicationUXDocumentation
From MozillaWiki
The following is a list of common UX considerations to take into account when building out Gaia apps.
Contents
First Run
- Usually presents an Empty State
- Provides opportunity to prompt user to setup an account, etc.
- Can also be used to educate user via tutorials, tooltips, etc.
Empty state
- Occurs when there is no content available.
- Most commonly seen on app First Run.
- Also seen when user clears all content.
- To avoid user confusion ("Nothing is showing up. Is the app broken?") we can display a status and/or explanation. For example, a "No messages" string where a list might usually be.
Error states
- Most common will be "no internet connection".
- As with Empty State, we should avoid user confusion by communicating situation in UI.
Gestures
- Note where gestures are available to the user, and what they do.
Input Errors
- What happens when a user's form input fails?
- Can communicate with:
- Inline-message (displayed alongside erroneous field)
- Banner dialogue
- Prompt dialogue
Date & Time dependencies
- Is the app effected by user changing global Settings for Date & Time?
- Time zones
- Regions
- Number formats
Dependencies
- What hardware dependencies exist, and how do we flag them?
- eg: Music app could be dependent on SD card removable storage, and app could use Banner dialogue to communicate.
Settings
- User preferences and settings that effect the operation of the application.
- First determination: does the app _need_ dedicated specs?
- Second determination: what settings are needed? Larissa's Settings Design Patterns are a handy reference when laying out.
Application data states
- How do apps display states for items?
- eg: Mail message states:
- New
- Unread
- Read
Orientation Support
- Does the app support landscape orientation?
Activities
- Does the app receive or send activities? eg: Share, Select, etc.
Notifications
- Does the app issue Notifications? When, and what?
- Icon
- Title
- Body
- Action (eg: open App, open SMS thread, open keyboard)