designing mobile applications
DESCRIPTION
Designing mobile applicationsTRANSCRIPT
.NET Mobile Application Development
Designing Mobile Applications
Introduction
In previous sessions we have considered > Characteristics of mobile devices
> Contemporary distributed computing technologies
In this session we will consider> Issues that must be addressed in developing mobile applications
> Using distributed technologies from mobile applications
Mobile Device and Application Characteristics
Mobile application developers face three key challenges> Resource constrained devices
Battery powered, limited memory, low-power CPU, etc
> Different user interface technologies / metaphors
Limited screen sizes, no keyboard, pen input, etc
Capability to enter and manage small amounts of information in short sessions
> Getting data to / from the application
Data sources often in network
Network not always available when required
When is data transferred to / from the device?
What do Users Want?
Users want simple, responsive, task-oriented applications which> Allow them to perform quick, specific tasks while they are away from their
desktop PCs > Have simple and direct graphical user interface > Provide feedback> Automate as much as possible
Users do not want to > Wait!> Guess at what the application may or may not be doing> Spend time searching for menus / controls / information> Continually reconfigure the device in response to changing (network) environment
Common User Tasks
Mobile device, particularly PDA, users want to be able to
>Communicate with others instantly. >Manage e-mail, events, appointments, and notifications. >Access and share personal and business information >Play games and access media files. >Customize the interface to suit personal tastes
Putting the User in Control
Users value and feel more comfortable with products they can control
Applications should put users in control by>Allowing users to complete tasks in different ways but with
fewer steps e.g. Pocket PC Contacts application
>Provide ways for users to customize the application >Provide the opportunity to reverse or continue actions
despite non-critical errors
User Interfaces
Mobile devices user interfaces are drastically different to desktop user interfaces
What are the key user interface issues we should be aware of?> No keyboard, Input is by stylus
Entering text is difficult User accuracy, parallax errors, etc
> User does not want to wade through many forms / controls to achieve their task
What principles should guide the design of mobile application user interfaces?
> Simplicity of use> Make common tasks easy> Consistency – within application and with desktop
User Interface Design Guidelines
A good user interface should> Show only relevant data> Show only the most important controls directly on the interface > Make controls easy to
distinguish and interpret find use
> Make controls predictable consistent – within the application & with desktop apps
> Use standard controls (e.g. Soft Input Panel)> Leave space between controls to avoid accidental selections
Menus in User Interfaces
Menus can be very useful> Use menus to organize related groups of functions > Organize menu items in a similar order to desktop applications> Include only necessary items in the menu > Limit number of items in menus to help users find items they need more quickly > Arrange items order of frequency of use in context-sensitive menus> Avoid deep menu hierarchies
Put frequently used actions directly on the menu bar> reduces user time and effort needed to find the item
Network Connectivity
Many mobile applications use data retrieved from other sources (e.g. desktop machine, networked servers)
This data needs to be moved to / from the mobile device via> Cable connection when sync’d to a desktop machine> Wireless network connection
Wireless networking offers easiest route for data transfer but> Network is not always available – intermittent connections
How does application cope when network connection disappears?> Process of connecting to / disconnecting from the network should be automatic and not require user
involvement> Application should still operate responsively when network is unavailable
Caching may be required to store the data needed to support the application when the device is disconnected
> When to synchronize cached data with networked sources?
Good design practices can make the state of connectedness transparent to the user
User Interface and Connectivity
Users often need to know whether they are connected to the network or not
> provide this information to the user in a non-invasive way> e.g. Pocket PC Bluetooth connection indicator
The movement between connected and disconnected state should be clear but not disruptive to normal application operation
> avoid displaying dialog boxes when connections are established and lost
Give considerable thought to how your the interface will behave when a connection is unexpectedly dropped
Security and Trust
Users must be able to trust mobile devices and applications with their personal information. This requires
Availablity> Personal information must always be available
Security> Personal information stored on the device must only be used or modified in appropriate ways > Users should be offered security measures to help them protect their information.
Privacy> Stored personal information must be under the user’s complete control > Device must provide ways for users to guard against unauthorized access> Users must have full control over information removed from and downloaded to the device
Mobile ApplicationDesign Principles
Optimize for 80 percent of the cases; support the remaining 20 percent. Use audio for User Interface feedback, not as a novelty Reduce redundancy; promote one way to do things Let the user "learn once, do everywhere" Design for performance Place frequently needed controls at the top of the dialog box Show the most important information in the main view of the
application. The rest of the information should be one step away.
Pocket PC Design Principles
Emphasize data and content The title bar caption should contain the name of the
application, not the current dialog box context Only prompt for user confirmation on actions that
cannot be undone Menus should be structured by logical groupings Apply ergonomic principles to the placement of
controls and information: − Stylus-accessible controls should be 5 mm square
on the screen
− Information should flow top-down, left-right
Keep all editable controls above the soft input panel (SIP) region
Standardize on a 4 × 4 metric: − The origin of a control always maps to a four-pixel
increment
− All controls maintain a four-pixel gutter between themselves
Reduce the number of unlabeled or complex icons; use text to define features
The Options dialog and Settings control panel do not have menus
The content of a tab does not scroll
SmartPhone Design Principles
Menus should be structured by logical groupings The left soft key:
> Always displays the most likely user task> Is the Done soft key that closes the window, when needed
The right soft key: > Displays the Menu soft key when there is a menu
Command represented by the left soft key should be on the menu> Should display the second most likely user task if there is no menu> Is blank if not needed> Is the Cancel key any time state can be saved
Do not use "..." after any menu items. Full-screen message boxes can have only two options (one for each
soft key). For example, you cannot have Yes, No, Cancel.
In this session we have discussed> Mobile device characteristics and limitations> Guidelines for developing mobile applications
Summary
Reading and Resources
Reading Wigley & Wheelwright, Microsoft .NET Compact Framework Core Reference,
Microsoft Press, 2003
Resources Pocket PC User Interface Guidelines,
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ui_guide_ppc/htm/_UIguide_start.asp How to Maintain a Single Binary for Pocket PC and Smartphone,
http://msdn.microsoft.com/library/en-us/dnppcgen/html/mantsngbin.asp?frame=true Use Threading with Asynchronous Web Services in .NET Compact Framework to
Improve User Experience, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/use_thread_async_web_services.asp