When we look back just a few years ago, Microsoft windows had shared over 90% of PC Operating System market and most of desktop enduser application developers had considered only this Windows environment. But these days, Mac OS X market share up 29%. Thus it's time to consider our desktop software supporting not only windows but also Mac OS X.
What we should consider
There are several differences between Windows and Mac OS X such as file path representation, case sensitivity for file names and directory names, storing method for configurations of applications, user access policies for system resources, socket APIs, and etc. Most of all, the hardest things to support cross-platform with Windows and Mac OS X are the differences of GUI APIs and abstract implementation of the UI event loop. There are several UI controls in both operating systems and some of them are similar but some controls exist only in Windows or only implemented in Mac. Event hough some UI controls look similar to both sides but APIs to create and to manage these are very different.
|Things to consider for cross-platform development for enduser applications|
UI controls for windows are created and managed by WIN32 APIs. WIN32 APIs are C based API which use 'handle's called HWND to create and manage UI controls. Carbon or COCOA is used on Mac OS X environment. Carbon is the C based old API and COCOA is the Objective-C based API to manage UI controls.
|APIs for several Operating Systems|
There are several ways to implement cross-platform enduser applications. But if possible, make it into one source code and not to be modified many things to compile with other operating systems so that we may reduce development and maintenance costs.
|Goal to cross-platform enduser application development|