|
by Amar Sagoo
Part 1: Introduction
With release 3.0 of REALbasic, REAL Software gave us a way of compiling
Carbon applications, opening the floodgates for a host of new and existing software
to come to Mac OS X. Although I was eager to get my hands on this
and start porting my projects, one of my first thoughts was "I bet we're going
to see a lot of ugly software." Unfortunately, this fear became reality, and what
we have today are many products that are blatantly designed without consideration
of Mac OS X's unique features and just don't fit in with those ones
that "feel good."
For one of my own projects, I have made it a primary goal to make it look and feel like a native Mac OS X application. I quickly found that REALbasic lacked many of the features needed to achieve this. There were also many features I had seen in Cocoa applications that I desperately wanted to include but that I knew were not easily available to Carbon developers. Lastly, REALbasic had some issues that seemed to make it impossible to get rid of that quick-Carbon-port-look. (Aqua: The Grand Unified Interface (Not) discusses differences between Cocoa and Carbon interfaces.) I started my quest for work-arounds, looking for third-party solutions, writing my own custom classes and even reading C-header files in search for hooks into the deeper layers of the operating system. I also studied Apple's Aqua Human Interface Guidelines to find out exactly what makes a user interface "fit in."
I think I can say that I was successful, and even though there remain minor issues that give away the Carbon nature of my application, it looks and feels as much like a Cocoa application as I think is currently possible using REALbasic. To make life easier for other developers and, of course, to promote good interface design, I have put together this guide to squeezing the last bit of nativeness out of REALbasic, using the solutions I used and some others I found along the way.
If you know of any other solutions and tricks that you think should be in this article, feel free to let me know. Same goes for improvements or corrections to any of my suggestions.
Here's a list of topics covered in this article, in case you wish to jump to one directly:
1. Introduction
2. Essentials
3. Layout
4. Windows
5. Menus
6. Text
7. Special Controls
8. Documentation
9. Packaging
10. Limitations
Links
Aqua: The Grand Unified Interface (Not) by Amar Sagoo
http://www.interfacemafia.org/articles/200108/200108-ar0004.shtml
Next: Essentials ->
To post your comments on this article, go to the last page.
|