Monday, May 24, 2010

Rant on Application UIs for OS X


<rant>


Six years ago, tired of Windows development, I switched to Linux. Linux I enjoyed - especially the ability to feel like I could customize anything, tweak anything, and know how to restore the system when I did a bad tweak. Yet running Office under Wine wasn't dependable enough and Google Docs just weren't ready for what I wanted to throw at it. Then there's the issue that interacting with the outside world requires some form of Windows. Dual-booting. Virtualizing.


Then - I wanted a nice laptop. At the time, Apple was the only one making laptops with some form of UNIX pre-installed. Command line + X-Windows + supported UNIX OS. What was there to not like? So I budgeted and saved for an OS X laptop. A good ol' G4 Powerbook.


This machine did exactly what I wanted. Interacting with the outside world was impossible though. I admit - I still can't use my machines for most places that require professional development. But that wasn't an issue before; the machine did exactly what I wanted. It ran Photoshop and Office (with the added bonus of all the software being officially supported on the platform).


My initial approach to the platform was the same as I'd use a Windows or Linux machine. Linux is surprisingly more similar to Windows than OS X - interface wise. Instead of stating what I don't like (it's a matter of preference, others I talk to have completely different opinions), I'll state what I enjoy:


One - Expose is your friend. Do not mess with Expose. Without Expose - I wouldn't be able to so easily navigate all of my open windows. Admittedly, it's not as fast as application switching under Windows (where I memorized the tab order of the apps, and quickly shifted among apps - under OS X it's different so it took some adjusting). I can't go back to not using Expose. As a result, I prefer interfaces that open multiple windows, and use Expose to quickly switch among windows in different applications.


Two - Everything is a document. The icons in the title-bars of windows are documents. They can be dragged, copied, and probably even trashed. Everything can ideally receive something through drag and drop, or be dragged and dropped somewhere... For example, if I'm working on a texture in a Photoshop window, I should be able to drag the Photoshop window's icon into my xcode workspace to copy the texture into the resulting bundle. It's surprising how much can be dragged into the terminal.


Three - The application icon is like a button. Most apps (except for a few exceptions) should display some form of window when there are no windows and the application icon is clicked. Essentially, as a user, there's no difference between clicking the icon to launch an app for the first time or clicking the icon when there's no window. When there is a window, they should all come to the foreground. Quitting an application is, for the most part, an optional task. I find myself leaving plenty of stuff running for no reason.


Four - Colour tells of application activity. Please don't play with the colour of the windows. OS X tends to make most of it's icons monochrome when they're in the background. And it actually helps me focus on the correct window. This also acts as an indication to when I actually use the menu-bar on top (active window determines what the menu items are).


Five - Use sheets whenever possible for Modal windows. It's common sense. Modal windows as a sheet provide a visual feedback to the user that a given window can't be used until I handle the issue at hand (like an unsaved document). Or else the user is looking for a window in expose without any hint to which must be selected since a few can't be interacted with due to a modal window waiting to be confirmed (I'm aware that in some cases, sheets aren't always enough - but that should be the exception, not the rule).


Six - Bundles. Have a folder of information that should stay together? Put it in a bundle. Advanced users can still browse the bundle and destroy the contents to their hearts desire, but regular users see the folder as a single file. Just add the .bundle extension to any folder and see it add a step to actually mucking around with the content.


Seven - Most importantly: http://developer.apple.com/mac/library/documentation/userexperience/conceptual/applehiguidelines/XHIGIntro/XHIGIntro.html


This rant doesn't serve as a replacement for Apple's official documentation. It's just a series of complaints that I have with some applications. An application that lives in its own sandbox is much less useful than an application that strives to provide communication channels with everything else in the OS while doing an excellent job at a single thing.


I wrote this to say I appreciate the way OS X - for the most part - allows me to do things that 'just make sense'. And when I tried a certain application (that fixed all the flaws now - so no use in singling it out) - some of these UI notes weren't implemented correctly - and the App felt like it was pasted on to the OS - as though it didn't belong. You could call it a foreign port.


</rant>

No comments:

Post a Comment