Wednesday, July 25, 2007 by Zoomba | Discussion: OS Customization
Here at WinCustomize we talk a lot about skinning in general, be it how to best skin some UI element, what the best skinnable web browser is, or to chat about the fantastic work done by many of the artists in our community. One thing that we don't talk a lot about are the names and faces behind the tools and applications we use.
To that end, we're kicking off a new feature today, the Developer Interview Series. The idea is to sit down with the main developers behind some of the most popular skinning/skinnable applications out there and pick their brain in a general sense, getting an idea of why/how they do it, some of their background and where they think they'll be taking things in the future. It's not really an attempt to answer technical questions, because support forums are better for that, but more to get an idea of who the people are behind the scenes. We give a lot of attention to the artists who create the skins, but we should also take the time to shine the spotlight on the people who make skinning possible in the first place.
Our first interview in the series is with Cliff Cawley, lead developer behind the Xion Media Player, a skinnable media player that makes it as easy as possible to create a skin by letting you directly import Adobe Photoshop files (PSD) into the application. Instead of creating the image elements separately and then combining them in another application, you just need to layout your elements in layers and arrange them as you'd like. So instead of skinning the application, it's more like doing the first design mock-up.
Last week, I sent Cliff a set of questions about Xion, himself, and skinning in general. Read on for his answers.
If you have a specific developer you'd like us to interview, or if you are a developer of skinning/skinnable applications yourself and would like to be a part of the interview series, email me at mikec AT stardock DOT com with the mail subject "Developer Interview Series".
[WinCustomize] First off, I’d like to say thanks for taking the time to do this. Would you like to briefly introduce yourself before we begin?
[Cliff Cawley] Thanks Mike, this is the first interview I've done and I feel very honored to be interviewed by WinCustomize.com.
My name is Cliff Cawley and I'm the Developer of Xion Audio Player. I'm 26 years old and live in Queensland, Australia. I've been writing software for about 12 years now. I develop Xion in my spare time and work at a Computer games company to earn a living.
I also run r2 Studios (http://www.r2.com.au/) in my spare time where I provide quality software for a great price (free!). It hosts two of my other popular applications, Tonic and Startup Delayer.
[WC] Why a skinnable media player? WinAmp and Windows Media Player already do the skinning thing, and it's been done for quite a while now. What made you decide to do a new media player?
[CC] Music is a big part of my life. I listen to it whenever I can and it helps me power through my day. I used to use WinAmp , and even made some skins for it back when skinning was first discovered. Over time I found that it didn't always suit my needs and I noticed that it got more and more bloated. I was especially put off when they added a Web Browser. I wanted to make a player where the user could decide if they wanted a Web Browser or even a skinned interface in the first place.
[WC] You took a very interesting approach to skinning, using Photoshop layers to separate out the elements, basically making it as easy as possible to create a skin. Many skinners in the community have had heavy praise for this approach. How did you come up with the idea?
[CC] I was initially going to do some sort of slicing of images and perhaps even a script file, however after trying for the 20th time to get one of my artist friends to understand what he had to do to create a skin, I gave up on that approach and asked him what he uses and what would be easiest for him. He looked at me and said, "Photoshop". He didn't want to learn another tool, he just wanted to use Photoshop. He's always been a good point of reference for Interface Design as he comes from a Mac background and enjoys their clean and easy to understand UI. I came away from that trying to figure out how I could provide a similar experience for skins and for the UI in Xion. I didn't want artists to have to jump through hoops or find programmers to make their skins come alive.
I was aware at the time that Sonique used PSD files, however they used a scripting system to power the skins. After some more thoughts, I came up with the idea of using keywords in the layer names to represent the function of the layer. That way you didn't need a separate file to tell the skin how to function. Keywords were a simple, yet powerful way to describe the skin.
[WC] I'm guessing you're a fan of UI customization. How tweaked out is your desktop right now? ( Can we get a Screenshot?)
[CC] Haha, a couple of years ago I was all into customizing my UI. Ieven made several WindowBlinds skins. I then tried some of the shell replacements. However, due to my slow PC, I found that it slowed me down too much. I ended up reverting to the Windows Classic look. These days I have the simple Royale XP skin. When I get some more time to relax, I'd love to customize the whole UI again.
|Cliff's current desktop, and a look at building Xion|
[WC] How difficult was it to write the skinning portion of the audio player? What was the single hardest aspect in getting the whole thing to work right?
[CC] The skinning engine was very time consuming. I built the PSD reader by browsing the Photoshop 6.0 File format documentation as well as a lot of hex editing and stepping through while I loaded the PSD file. After I was able to load the individual layers from the PSD file, I verified that the loader had worked, by dumping the data back out to RAW files and reading them back into Photoshop. Thereafter I built the rendering side. It was very rewarding to see a skin load up into the prototype code I had built. I think the first functionality I added was 'Stop' and 'Play'.
[WC] What Xion skin are you running on your PC right now?
[CC] I currently use the Thin Default Skin. I use it when I'm busy coding so that I can see all of the code. I do have a lot of favorites though and occasionally switch to them when I need a change of scenery.
[WC]Have you ever built a skinnable application before Xion? Are you considering building other skinnable apps beyond media players?
[CC] I've built several skinnable applications, including Chat and Media Players. A lot of them were never released. I think you can still find a Media Player I wrote long before Xion. It was called 'SCAMPS'. It never quite made its way off the ground. I wrote it in Visual Basic and it included many utilities to help with making skins. I guess you could say it was Xion's predecessor. I've built many applications, some of which are available on my other website: http://www.r2.com.au/ (They are mostly not skinnable though)
I am considering using the technology I have developed for Xion in other applications in the future, however I currently have nothing in the works as I'm too busy with Xion
|A snippet of BoXXi's Xion skin, Scope|
[CC] Very similar to the current build actually, just with less features and more bugs! The first public build was build 56. You can download it from:
I had wanted Xion to be well received and so I only released when I was happy with the quality.
[WC] What's next? Xion is at version 1 at the moment, and sees periodic updates (some quite significant). Do you have anything special planned yet for version 2?
[CC] I haven't really given any thought to a 2.0. I have found that users can get confused with the strange version systems that developers use, hence the reason I now make the build number the dominant number. For now I will be simply increasing the build number for each build. It may always be known as version 1.0, just with a larger build number. I think I will only upgrade to 2.0 if I make a large change that breaks a lot of things!
Some special goodies that I have planned for upcoming versions are:
- Hardware accelerated rendering (At the moment it's all done in Software. I hope to use DirectDraw or some form of DirectX to accomplish this)
- Better Playlist and Library support
- Support for WinAmp/Sonique/WMP visualizations
- Component SDK (Currently in Beta)
- For a more complete list, check out the forums under the Feature Requests threads
[WC] What are some of your favorite skinning/skinnable applications?
[CC] Haha I know this may sound biased, but definitely Xion! A couple of years ago I was into WindowBlinds and WinAmp. The funny thing is, that once you start developing your own such application, you tend to not have much time left for even checking out the new skinnable applications, so I guess I'm a bit behind the times in that respect! (Behind the times, not old timer! )
|BoXXi's iPhone Xion Skin|
[CC] Currently it is not available for developer license, however I've always wanted to make it available so that I can perhaps recoup some of the costs and time I've spent on it and others can benefit from the system I've developed.
[WC] It’s been a full year now for Xion, in that time how many downloads have you tracked?
[CC] Wow, has it been that long already? The downloads to this day are sitting at just under 94,000. The climb has been quite slow and steady until recent months where it has increased to almost 10,000 a month. It seems more and more people are discovering Xion
[WC] Right now Xion is completely free, I don’t even see a PayPal donation link on the page and only one or two Google ads on the entire site. In order to support continued development, will there ever be a premium version of Xion? We wouldn’t want to see you out on the streets after all.
[CC] That's correct. I actually originally released Xion as Shareware, however I received a lot of complaints and quite a few users insisted that Xion would never become large if people had to pay for it. It has taken me about 4 years in my spare time to develop it to where it is today and I hope that I can soon release a premium version that will help support me. It would be great to be able to work on Xion and my other applications as my full time job, instead of just in my spare time. I do have a PayPal donation set up on my r2 Studios website which you can find at http://www.r2.com.au/donate
I occasionally receive donations which help to pay for the Web hosting and Domain registration.
|MysticSteel by REDstyler|
[CC]Keep those awesome skins coming everyone! Its really great to see the way that the Community are able to use the skinning engine in Xion. You've managed to twist it to do things that I hadn't really thought were possible! If you have any bugs/feature requests or general feedback, don't be shy, come and visit us at the Xion Forums: http://xion.r2.com.au/community/ and post away!
Thanks again to Cliff for taking time out of his busy schedule to chat with me. If you're interested in learning more about Xion, or want to snag a copy yourself to start playing with, here are some important links:
And of course, check out more of the great software Cliff has been working on by checking out r2 Studios.