how does apple make cross platform apps?

boyfarrell

Registered
Hello.

I was just installed iTunes on my windows machine at work. It looks identical to the mac version. They have got rid of the menu bar (that is normally stuck to every app window) and have the menu integrated into the top left the itunes windows.

So my question is how do they do it! I would bet that they don't have two seperate code bases for mac and windows.
 
I would bet that they do have two different code bases for Mac and Windows versions -- they would HAVE to, since Windows APIs are completely different from Macintosh APIs.

While I'm sure a lot of the guts of the code is the same or very similar for both platforms (such as compression code, playback code, etc.), as far as the user interface goes, they're completely different code bases.

I'm sure it was very intentional on Apple's part to make iTunes for Windows look extremely similar to iTunes for Macintosh -- iTunes should look the same on both platforms. Still, Windows puts menubars on each instance of a window, while Macintosh keeps their menu in one place (at the top). It would be silly for a menubar to magically appear at the top of your Windows desktop whenever you launch iTunes -- that's just counter-intuitive as far as the Windows user interface goes. Likewise, it would be silly to put a menubar at the top of every window instance on the Macintosh for the same reason.
 
At least Apple make decent apps for Windows users...the other way around, well let's not go there *cough MSN cough Media Player*
 
You can make any application look like anything you want if you write code at a low enough level. They just don't use the default Window class that you get with the MS Visual Studio pre-generated programs.
 
It's quite easy to skin your UI on Windows. Winamp has been doing it for ages. I imagine iTunes is doing something similar.
 
On that note, though, while Apple do apparently maintain a seperate code-base for Windows, there are plenty of rumuors that suggest that Apple has at least partially implemented the Cocoa libraries on Windows, particularly to support QuickTime and iTunes.
 
A partial implementation of Cocoa isn't too hard to do, IMHO. After all, GNUStep is supposedly a nearly completely implementation of Cocoa and it's available for Windows. The only thing stopping Apple from using it could well be the license (GPL?).
 
Back
Top