Presentation on theme: ".NET Mobile Application Development Designing Mobile Applications."— Presentation transcript:
.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 , 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 Application Design 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:ergonomic principles >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, us/ui_guide_ppc/htm/_UIguide_start.asp us/ui_guide_ppc/htm/_UIguide_start.asp How to Maintain a Single Binary for Pocket PC and Smartphone, us/dnppcgen/html/mantsngbin.asp?frame=true us/dnppcgen/html/mantsngbin.asp?frame=true Use Threading with Asynchronous Web Services in.NET Compact Framework to Improve User Experience, us/dnppcgen/html/use_thread_async_web_services.asp us/dnppcgen/html/use_thread_async_web_services.asp