The Cross-Platform Myth

platform-logos.png

With few exceptions, Mac applications have intuitive, well-designed interfaces. Apple meticulously crafts its applications down to the last pixel, striving for a simple, fluid user experience. Third-party applications sport equally impressive interfaces, as seen in Tweetie, TextMate, Adium, Colloquy, MarsEdit, Disco, and more. Even the most intuitive Mac applications face stiff competition (c.f. Things vs. The Hit List and Coda vs. Espresso).

Modern Cocoa applications typically exhibit clarity and consistency; the best ones show off with graphics and animations that enhance the user experience, rather than detract from it. Well-designed Mac applications don’t put form over function; they employ both good form and good function.

Heck, the most homely interfaces come from cross-platform applications such as Microsoft Office, the Adobe Creative Suite, and Firefox. Despite efforts by Microsoft, Adobe, and Mozilla to port and maintain applications for both OS X and Windows, their applications feel out of place, tubby, and crufty on the Mac.1

[1]Granted, Microsoft Office 2008 for Mac is a substantial improvement. But it can’t escape its Windows heritage, and it pales in comparison to iWork.

Developing for multiple operating systems at once is like talking on a cell phone while driving: You can accomplish each task successfully, but you’ll excel at neither. Unless you develop an application with a native GUI toolkit and relentlessly embrace native operating system conventions, you will achieve mediocre results. The more you disregard or abstract away your target platform, the more diluted your user experience becomes.

Cross-platform GUI toolkits provide passable interfaces everywhere but exceptional interfaces nowhere. If you care about your application’s aesthetics, do not use a cross-platform GUI toolkit.

The only acceptable cross-platform UI toolkit lives in your web browser. If you want your application to work on both Windows and OS X, create a web application. In the browser, you can freely design a custom user interface that won’t seem out of place on any operating system. Users understand that web sites operate under different rules.2

The decision to target multiple platforms is a tradeoff between the size of your target audience and the quality of your application’s interface. When the size of your target audience is paramount, go ahead and pull out your cross-platform toolkit of choice. But remember that the size of your audience means little unless they actually purchase your application.

Customers prefer applications that look appealing and behave intuitively. Cross-platform applications rarely exhibit those qualities.

[2]Adobe AIR doesn’t count. While AIR applications could be as simple as a web site siphoned into a native window, they often incorporate buttons and GUI controls that poorly imitate native controls. Flash interfaces suffer from the same flaws explained above.

Published