Preface

The launch of the iPhone software development kit (SDK) was a big deal for developers, designers, and consumers alike. Developers and designers were able to access a previously closed platform and distribution channel. Consumers were excited to explore an endless stream of new applications created by passionate independent developers and innovative companies.

New platforms often suffer from growing pains. Users and application creators learn simultaneously, with developers releasing applications to the market and users providing feedback. Different application teams come up with different approaches to common problems, because agreed-upon, proven solutions take time to emerge. These growing pains can be compounded when communication within the community is minimal.

In the case of the iPhone SDK, Apple has famously frustrated both developers and consumers by imposing a non-disclosure agreement (NDA) that legally restricts the ability to discuss upcoming features, tools, approaches, and technologies. To compensate for the lack of conversation within the development community, Apple provides a great set of guidelines for designing and coding iPhone applications.

The Human Interface Guidelines (HIG) describe the way applications should look and feel on Apple platforms. For the iPhone OS, Apple released a separate version of the HIG that focuses on mobile, Multi-Touch applications. The HIG works well in many regards, and it remains a valuable resource for anyone creating mobile applications.

However, the HIG cannot cover all topics that arise in the course of application development, nor can it provide insight from the market at large. Questions invariably emerge: What works for users? What causes frustration? What habits have emerged that should be avoided? What practices can help small teams or independent developers use their limited time and resources wisely? Which features should be prioritized for a shipping product? What do programmers need to know to deliver a great user experience?

You can think of this book as a supplement to the HIG—a resource that, along with Apple’s extensive technical documentation, should guide teams through the choices they must make when embracing a new platform.

Audience for This Book

This book is geared toward designers, developers, and managers who wish to develop user-friendly applications for the iPhone and iPod Touch. The book mixes technical and strategic discussions, and it should be approachable by both technical developers and technology-savvy users.

The code in this book is Objective-C, and an understanding of the language is necessary to maximize the value of the code examples. If you are a desktop Cocoa developer, this book will introduce you to the differences between Cocoa and Cocoa Touch, the set of frameworks for iPhone applications. Managers and experience designers can use this book to understand the ways that applications can function together to create a holistic user experience.

Finally, this book is for readers who own and use the iPhone. To create an excellent iPhone application, a developer must have empathy for iPhone users. An appreciation of the challenges that face mobile users—both environmental and physical—is essential.

If you have no prior experience with Objective-C or Cocoa Touch, you may want to refer to an excellent book by one of this book’s technical editors, Jonathan Zdziarski. His book, iPhone SDK Application Development (O’Reilly), provides a technical foundation in Objective-C and Cocoa Touch.

Get Programming the iPhone User Experience now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.