Friday, February 25, 2011

IPhone- User Interface Guidelines- Part I

The iPhone’s revolutionary user interface has changed the way we look at mobile devices. The iPhone SDK let’s you create native applications for the device. To assist the development of applications, Apple has provided the user interface guidelines document which provides information about types of applications you can develop and user interface guidelines to make effective applications.
·         Planning Your iPhone Software Product: Covers types of applications, fundamental human interface design principles and the iPhone OS environment.
·         Designing the User Interface of Your iPhone Application: Covers available components to develop IPhone application interfaces.
This blog post intends to summarize both parts in separate posts. This is the first.

Planning Your iPhone Software Product
  • Types of application: Based on implementation method
  • IPhone application: Native application, build completely in Objective C. User needs to download it from the App store and install it on the iPhone. It can use all the native features of the device provided the API is available in SDK.
  •  Web-only Content: Build using HTML. It runs in safari browser. The application is deployed on some other server and not on actual IPhone device. It can use limited native features of iPhone device provided you build your application using HTML5
  •  Hybrid application: Combination of Objective C and HTML. It primarily uses UIWebView component to render html content. User needs to download it from App store and install it on iPhone. It can use all native features of IPhone device provided the API is available in SDK. You can also use varied available frameworks to build this kind of application. One of the applications we developed falls into this category – get more information about it here.

2.     Types of application: Based on application style(visual and behavioral)
 .      Productivity Applications: primarily deals with managing information. The user interface is simple and uses standard components available. It primarily uses UITableView control to display information in list form. E.g. Mail
a.     Utility applications: primarily deals with checking quick summary of information or performing quick task. In this style, same information is presented using different views. It frequently requires configuration changes which you manage using info button available on main view. The user interface is simple and uses standard components available. E.g. The Weather application
b.     Immersive applications: Offers a visually rich environment to user. The user interface experience may not be standard as in other styles. Game falls in this category. We have developed a soccer quiz application (available free on App Store) in this style. You can get more information about it here.
It is not necessary that each application should fall in one of these categories. An application can be combination of multiple styles depending on functionality and information you want to present to user.
3.     Fundamental human interface design principles
 .      Metaphors: Map your application’s entities i.e. class/object/method to real world.  E.g. Folders
a.     Direct manipulation: Managing the application’s object directly using Multi-Touch interface/gestures as opposed to keyboard or mouse.
b.     See and Point: Using list form to get user input instead of asking user to input data in text area.
c.      Feedback: Provide feedback for each action. Proper feedback enhances application’s usability. Animation can also be used for giving feedback.
d.     User Control: Allow user to initiate and control actions. Keep actions simple so that user can remember them. Whenever possible, use standard controls and behaviors.
e.     Aesthetic integrity: it defines how well your user interface integrates with your application’s functionality. An application having a visually rich but illogical interface is hard to understand and use.
Principles are primarily based on how user thinks and works.
4.     IPhone OS environment:
 .      Screen size is compact: It is a challenge to design an interface for small screen size. Keep the focus on displaying important functionalities.
a.     Memory is limited: As the iPhone OS does not include swap space, you must avoid allocating more memory than is available on the device.
b.     People See One Screen at a Time
c.      People Interact with One Application at a Time: Only one application can run at a time i.e. multitasking is not possible. Note: A recent update has just made multitasking available on certain devices running iPhone OS 4.0.
d.     Onscreen User Help is Minimal: Mobile users don’t have time to go through help manual or context help and a developer also doesn’t want to devote space and memory for help contents. So use standard controls and behaviors a user is familiar with to minimize onscreen help.
More in my follow-up post, coming soon.