|
DarkWyrm's Haiku Site I Wanna See Some Skin: A Look at Skinnable Applications |
|
Skinning (or theming), for the uninitiated, is the ability to take an application and redefine its look without changing how it works. Most often, it is a matter of writing some special code read by the application or making some images to be used by the application in displaying its interface. I may be wrong on this point, but if I remember correctly, WinAmp, the reknowned MP3 player, was the application which pioneered in this area by, if not being the first, being the most popular skinnable application.
The ability to skin an entire operating system lends itself to bragging rights. Customizability and flexibility is also a good thing because it allows a person to take a way of working and alter it to conform better to his personality and working style in order to allow that person to be more productive. Freedom to choose how you want to work is also a good thing.
Skinning is also great to look at. One of the things I personally thought coolest about BeOS R5 was the window style Easter egg which allowed BeOS to look like the windows in other OSes. While this is not full-fledged skinning, it is a step in that direction. I have seen some of the work by the OBOS Creative Design team and others who have created concept screenshots of possible looks into the future of our beloved OS. Most of them are really pleasing to the eye and make you *want* to use them, if nothing else, because they're cool and cool-looking.
A user, in order to be most productive, must have a way of working with the computer in such a way that, at worst, his work is not hindered and, at best, he is able to work faster. This must be considered because of the sheer number of computers whose sole purpose is to do work and also the number of users who look at a computer as a means to do work faster. Skinning can go in either direction - a good one can help and a bad one can hinder. Ease-of-use in an interface doesn't just happen - quite a lot of thought goes into a good UI. In fact, the reader is very much encouraged to read the excellent reading on UI design at Joel on Software.
One thing which makes one's life easier and less stressful is knowing that doing certain actions will result in certain consequences. For example, it is reasonable for me to expect that when I put the key in my car's ignition and turn it, the car will start without any problems. If, for some reason, it does not start or if I am not sure it will start, my life is significantly more difficult and I am consquently stressed. The same thought should also apply to whatever OS I use. X Windows is well-known as being highly customizable and also skinnable. It is possible to choose the way in which windows are managed along with how those windows and all controls look and behave. This allows for some really nice looks and feels. If memory serves me correctly, microGUI is an example of such. If I go from my own machine to another Linux machine, I do not expect to have a very easy time using it because I don't know how it will behave.
Branding is mostly recognition of an OS as being a specific OS. For example, one can look at MacOS X and know without a doubt that it is most definitely MacOS X. Windows and BeOS are the same way. Windows does not have little yellow tabs. To the uninitiated, one who looks at Linux does not necessarily know that it is such - just what it isn't ("That's certainly not Windows. What is it?"). Skinning interferes with branding, and if one wants to make his OS well-known, there needs to be easy recognition.
Simply by looking at the amount of text written for each side may lead the reader to believe that I stand against using skins, and my response to someone saying such as being yes and no. Until this week, I was a diehard skinning fan, but I currently stand at a modest position which sees the needs presented by both sides. This article forced me to take a good, long look at my own position. Mr. Raskin stands completely against skinning. I do not. I do believe that we must be careful in the construction of our UI.
First, however, Let us look at some examples mentioned above which utilize skinning.
A good skin should answer 'yes' to all questions. Avoid any which don't.
In cases above, we can see both good and bad examples of how an interface can be modified. Note that the changes have the capacity to be radically different. While changes in an interface will not prevent me from doing my work, it will hinder me at some level of consciousness. Try this little experiment: change the BeOS window decor from BeOS to another operating system with which you are not familiar and keep going about your business for a couple hours, doing whatever you normally would be doing. Although one does "get used to it," something just doesn't feel quite right because it is not what is familiar - the look, feel, and behavior is different. It probably doesn't stop you from doing anything, but just feels like a little more effort is involved.
BeOS is known for taking from the best of the OS worlds around it - not necessarily doing something exactly the way someone else did it, but improving upon it. OBOS should do the same. The leaked "Dano" version of BeOS did skinning, and system-wide color choices, but it wasn't complete and although it did work and the API was backward compatible, it didn't do it very well and the system performance suffered in that area. BeOS is also known for being flexible without offering the user too many choices. I propose that we do the same.
Skins can cover up and/or improve an otherwise mediocre interface, but if the interface itself is well-designed, the user would not need skins for this reason, leaving only the desire for a cool look. :) A completely skinnable UI should be abandoned in favor of the simpler option of window decors and customizable system colors which all controls utilize, including window frames and borders.
Why? This should provide all the necessary flexibility to have a clean, easy-to-use, good-looking UI. As a general rule, window decors should not deviate too far from the default look in order to maintain consistency while still offering the user options in changing the look of the UI to suit his tastes. However, even if a developer decides to create a radically different decor, it is possible. Simply changing a window decor can have a dramatic effect in changing the look and feel of a UI, as evidenced with the little experiment described above. Combined with an application like BeTheme, there is little that the user will likely desire and consistency, branding, and ease-of-use can be maintained for the most part. Should someone have a desire to completely change the look and feel of Haiku, then he can change the UI classes themselves and distribute his work if he likes. It won't be extensively difficult or time consuming compared to writing for a skinnable interface, either. While his work may be cool and popular, it just won't be the OBOS way of doing things.
|
_ |
_ |
_ |