Mac OS X is a uniquely powerful development platform, supporting multiple development technologies including UNIX, Java, the proprietary Cocoa and Carbon runtime environments, and a host of open source, web, scripting, database, and development technologies.
Darwin is an open source POSIX-compliant computer operating system released by Apple Inc. in 2000. It is composed of code developed by Apple, as well as code derived from NeXTSTEP, BSD, and other free software projects. Darwin forms the core set of components upon which Mac OS X, Apple TV, and iOS are based. It is compatible with the Single UNIX Specification version 3 (SUSv3) and POSIX UNIX applications and utilities.
MAC OS X is a form of Unix. It is an offshoot of an old FreeBSD. There are differences with the Unixes you are familiar with, but there are many more similarities. It doesn't look like Unix when you turn on the machine, because the GUI is the most obvious thing, but underneath it is Unix -- which you would see by bringing up a terminal window and entering standard Unix shell commands.
When porting products from Unix, remember that Mac IS Unix. When porting from Windows that's different. What would you tell yourself if you were porting from Windows to Unix? They are very different.
Porting the basic code is not that difficult. It uses gcc/clang. But there are some things you need to be aware of.
Credits:I credit the content of this article to my Colleague Jonathan. Thanks a lot Buddy Jon !!!
Ref:
http://developer.apple.com/
http://developer.apple.com/referencelibrary/GettingStarted/GS_MacOSX/index.html
http://developer.apple.com/macosx/overview.html
Porting UNIX/Linux Applications to Mac OS X - http://developer.apple.com/documentation/Porting/Conceptual/PortingUnix/index.html#//apple_ref/doc/uid/TP30001003
Programming Mac OS X with Cocoa for Beginners - http://en.wikibooks.org/wiki/ Programming_Mac_OS_X_with_ Cocoa_for_Beginners
Darwin is an open source POSIX-compliant computer operating system released by Apple Inc. in 2000. It is composed of code developed by Apple, as well as code derived from NeXTSTEP, BSD, and other free software projects. Darwin forms the core set of components upon which Mac OS X, Apple TV, and iOS are based. It is compatible with the Single UNIX Specification version 3 (SUSv3) and POSIX UNIX applications and utilities.
Carbon is one of Apple Inc.'s procedural application programming interfaces (APIs) for the Macintosh operating system. It provides C programming language access to Macintosh system services. Carbon provides a good degree of backward compatibility for programs to run on the now-obsolete Mac OS 8 and 9, however these systems are no longer actively supported since Apple released the final OS 9 update in December 2001. The development of Mac OS X APIs reflect that of the underlying operating system. Mac OS X is written mostly in C and Objective-C. In particular, Objective-C is ubiquitous in the human interface systems. With Mac OS X v10.5, after a transition where new elements of the Carbon interface specifically referred to the underlying Cocoa system, Apple identified Objective-C and Cocoa as the preferred interface to human interface services. Carbon access to various human interface services in the 64-bit operating environment is not available, and significant new features will not be added to the 32-bit Carbon interface. Most other parts of the system, which have less emphasis on Objective-C, are not so affected.
Xcode is a suite of tools developed by Apple for developing software for Mac OS X and iOS, first released in 2003. The latest stable release is version 4.2.1, which is available on the Mac App Storefree of charge for Mac OS X Lion users (requires an Apple ID).[1] Registered developers can download preview releases and previous versions of the suite through the Apple Developer website. The built-in Xcode Tools, combined with time-tested stability and performance characteristics, standards-based technologies, and remarkable user interface, make Mac OS X an amazingly multifaceted development platform. The current release, Mac OS X v10.4 Tiger, brings developers revolutionary new technologies like Spotlight, Dashboard, Automator, Core Data, Core Image, and many others. These powerful additions to the modern, UNIX-based foundation make Mac OS X Tiger the most advanced operating system available.
MAC OS X is a form of Unix. It is an offshoot of an old FreeBSD. There are differences with the Unixes you are familiar with, but there are many more similarities. It doesn't look like Unix when you turn on the machine, because the GUI is the most obvious thing, but underneath it is Unix -- which you would see by bringing up a terminal window and entering standard Unix shell commands.
When porting products from Unix, remember that Mac IS Unix. When porting from Windows that's different. What would you tell yourself if you were porting from Windows to Unix? They are very different.
Porting the basic code is not that difficult. It uses gcc/clang. But there are some things you need to be aware of.
- You will, of course, have to become familiar with some different system APIs.
- There are some different rules about building shared libraries. There are two kinds (bundles and dylibs) which are to be used in different circumstances. Second, though on other Unixes we don't worry about resolving all references when building a shared library (we let the executable take care of that at run time), you can't do that on OS X. All references have to be resolved at build time.
- Because of the two types of processors(Intel/Power-PC), you need to become familiar with their Universal Binary mechanism. This allows you essentially to build the product for each processor on one machine, and then combine the results for each processor into a single "fat" binary that contains binary code for both in a single file. The result is a product that can be installed and run on either machine (the system figures out which binary code to use), without the user having to use a different version for each processor.
- If you intend to have any GUI , you really have to make it look enough Mac-like (which is a bit different from other graphical desktops) to make the Mac users accept it, You have to understand the nature of the Mac desktop.
- You also have to know how Mac products install. Underneath you can use your own script, but there is a Mac installer that people may expect you to use.
Credits:I credit the content of this article to my Colleague Jonathan. Thanks a lot Buddy Jon !!!
Ref:
http://developer.apple.com/
http://developer.apple.com/referencelibrary/GettingStarted/GS_MacOSX/index.html
http://developer.apple.com/macosx/overview.html
Porting UNIX/Linux Applications to Mac OS X - http://developer.apple.com/documentation/Porting/Conceptual/PortingUnix/index.html#//apple_ref/doc/uid/TP30001003
Programming Mac OS X with Cocoa for Beginners - http://en.wikibooks.org/wiki/
Mac Automation made simple - http://itunes.apple.com/ podcast/mac-automation-made- simple/id288750552
Apple Script Tutorials - http://www.macosxautomation. com/applescript/firsttutorial/ index.html
An Absolute Beginner's Guide to iPhone Development - http://www.switchonthecode. com/tutorials/an-absolute- beginners-guide-to-iphone- development