If I really wanted to completely answer this question it would took me some time, and it would result in a boring and dull post (since I am no Cocoa expert..). Why then this title? Because there’s one way in which Cocoa is better than Carbon that will make all efficiency fanatics rejoice: it lets us load objective-c bundles in existing, compiled application.
What does that mean ?! Easy enough. A developer can add custom code that replaces and extends some functionality of existing Cocoa apps.
Here’s a collection of the most useful bundles I found…
Ever wanted to watch a movie while browsing or writing a letter? I have. And with Afloat I can! This little app lets you keep any window of you choice floating on top of everything else, and even show it on all desktops (spaces). Moreover, with it you can adjust the opacity (= make transparent) of windows and a few other little tricks.
My favorite one is the “Show Window’s file in Finder”. Clicking it (under the Window menu) you can reveal in Finder the file you’ve opened, be it a document, an image in Preview.app and so on!
One thing that by default is wasted in OS X is screen real estate. The dock is an example: it’s pretty much useless and it takes a lot of space in its initial configuration (it can be improved upon though, I’ll post about it..). And the maximize button (green round one, top-left corner..) doesn’t help, because it doesn’t maximize but resize to a supposedly optimal size. I’m not against this behavior at all, but I like Megazoomer because it fills this hole nicely. You just click cmd-Return (or Window->Mega Zoom) and your window goes full screen!
MultiClutch allows you to assign custom keyboard shortcuts in a given app to a given gesture. An example? Here’s my firefox configuration:
– zooming gestures actually zoom the page (like safari)
– rotate moves to the previous/next tab
– swipe down opens a new tab
– swipe up closes the current tab
– swipe left/right go back and forward (like safari)
Pretty efficient, isn’t it? Unfortunately this app won’t let you use four finger gestures and deactivate global shortcuts for specific applications.
This is a little nice utility that lets you drag windows clicking anywhere on then while holding down the Option key, and resize them with Option-Command. Very simple yet useful, even more so because of the borderless nature of OS X windows!
This bundle is the perfect companion of all you terminal addicts out there (that includes me too..). Instead of having all those floating terminal windows, à là OS X, you have this nice systemwide console that slides down from the top of your screen, in which you can open as many tabs as you like. It is bindable to any hotkey you like, so that you can access the shell from anywhere easier that ever.
Conclusions
The possibility offerd by objective-c code injection are many, and this area of development is still hot. I’d suggest that you follow in particular the Afloat website, since they’re now developing a manager that lets you organize these bundles, an idea that hopefully will lead to even more apps being developped this way.
(This is my first post, many more will follow that will go deeper into how to work efficiently on OS X. Comments, of course, are welcome!)