Book Review: Designing Interfaces
2nd Edition
ByA user interface can be loosely defined as the point where a person interacts with a machine. Currently, that interaction point can be a laptop or a smart phone, quite different types of physical presentation space. A solution might look fantastic on a laptop, but not work on smart phone's browser, causing the user to have to scroll around on the page. What we need is a comprehensive collection of interface patterns to use as a guide. Designing Interfaces is that guide.
Designing Interfaces 2nd Edition,
Author: Jenifer Tidwell,
Publisher: O'Reilly 2010 527 pp.
ISBN: 978-1-449-37970-4
Level: Introductory to Advanced
The first edition of Designing Interfaces provided an excellent resource for someone designing, coding or testing user interfaces, but did not include interface patterns for mobile applications or social media (that was 2005, just five years ago). This new edition does include those topics and shows how to leverage the new presentation spaces effectively. The objective of the individual who designs these interaction points should be to keep the input of the person as minimal as possible, but maximize the output from the machine and software. Effectively designing interfaces requires bringing together three talents: functional understanding of what needs to be accomplished, artistic understanding of basic style (use of color and 'eye' appeal), and the technical ability to produce the code to bring the first two together and give 'life' to the interface.
Designing Interfaces is written from a functional design perspective, covering how to incorporate specific design patterns into a meaningful application, and includes references to extend that design effort all the way to the coding level. Although the book is essentially introductory in nature, even the most experienced interface designers can find new and useful techniques and ways to vary their design approach.
Organized in a subject-matter outline, Designing Interfaces can be read front to back, like a school text book. But it also works well as a reference guide so that readers can brush up on specific subjects when needed. The book is not a comprehensive study of user interfaces, a fact the author admits, but it does offer a nice overview of the current state of the art. The author tells readers what interface to use, why and how to use it, and provides examples and pitfalls to avoid. Tidwell does a nice job of noting when there are some 'assumed' or 'expected' functions, such as cut-and-paste and drag-and-drop. Where appropriate, the author has also included a section on other libraries or sources that provide additional examples or considerations.
Chapter 5 provides a lengthy discussion of lists, addressing different types of lists, ways users could interact with them, and various presentation solutions. The section taught me that I'd been using the same set of solutions and they weren't always particularly eye appealing. Chapter 10, Going Mobile, starts by showing a set of easy-to-use presentation patterns, and ends with a discussion on how to get a consistent branding effect between a mobile application and a web site. Every interface designer, tester and coder should read the final chapter, Making It Look Good: Visual Style and Aesthetics. This chapter explains how to make user interfaces appeal to the end user with proper use of color and good design.
There are a few shortcomings to the book, some of which the author alludes to and some she comes right out and admits. For example, the book doesn't really make any recommendations for applying the existing body of knowledge to some of the more recent emerging patterns. Also, it doesn't address internationalization; making an application suit people in multiple countries can be more difficult than it first appears. The last item I'll pick on is that the 'other libraries' I mentioned before seem to favor about four major libraries, but if you run a search engine for 'ui-patterns' you'll see that the body of work is significantly larger.
Overall, Designing Interfaces is an excellent resource for anyone designing interfaces that allow people to interact with machines, and it also works as a good resource for coding or testing interfaces. If you're having an issue with an interface, or a piece of that interface that just doesn't seem quite right, this book might be the tool you're missing.
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

News
-
Red Hat Releases RHEL 10 Early
Red Hat quietly rolled out the official release of RHEL 10.0 a bit early.
-
openSUSE Joins End of 10
openSUSE has decided to not only join the End of 10 movement but it also will no longer support the Deepin Desktop Environment.
-
New Version of Flatpak Released
Flatpak 1.16.1 is now available as the latest, stable version with various improvements.
-
IBM Announces Powerhouse Linux Server
IBM has unleashed a seriously powerful Linux server with the LinuxONE Emperor 5.
-
Plasma Ends LTS Releases
The KDE Plasma development team is doing away with the LTS releases for a good reason.
-
Arch Linux Available for Windows Subsystem for Linux
If you've ever wanted to use a rolling release distribution with WSL, now's your chance.
-
System76 Releases COSMIC Alpha 7
With scores of bug fixes and a really cool workspaces feature, COSMIC is looking to soon migrate from alpha to beta.
-
OpenMandriva Lx 6.0 Available for Installation
The latest release of OpenMandriva has arrived with a new kernel, an updated Plasma desktop, and a server edition.
-
TrueNAS 25.04 Arrives with Thousands of Changes
One of the most popular Linux-based NAS solutions has rolled out the latest edition, based on Ubuntu 25.04.
-
Fedora 42 Available with Two New Spins
The latest release from the Fedora Project includes the usual updates, a new kernel, an official KDE Plasma spin, and a new System76 spin.