Book Review: Designing Interfaces
A 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.
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.
Richard Stallman calls for the W3C to remain independent of vendor interests.
The new release supports nine architectures, 73 human languages, and zero non-Free components.
Fedora developers release the first alpha version of Fedora 19, known as Schrödinger’s Cat, for general testing. The final release is expected in July 2013.
ack is a grep-like, command-line tool that has been optimized for programmers to search large trees of source code.
New features in SUSE Studio 1.3 include enhanced cloud integration, VM platform support, and lifecycle management.
The Linux Foundation recently announced that the Xen Project is becoming a Linux Foundation Collaborative Project.
Open source version of LiveCode is now available for developing apps, games, and utilities for all major platforms.
OpenDaylight is an open source software-defined networking project committed to furthering adoption of SDN and accelerating innovation in a vendor-neutral and open environment.
The new Gnome release includes privacy and sharing settings, allowing more user control over access to personal information.
Mozilla is collaborating with Samsung on a new web browser engine called Servo.