Why I want to consume "Xcode 3 Unleashed" — 3 years ago
Apple products are the next big wave in computing. I learned to program the Macintosh in the latter half of the 1980’s, just before I learned to program MS-Windows and C++.
By the mid-1990’s, Apple needed to refuel its Macintosh computer line with a new operating system. Ultimately, that led the company to rehire one of its original cofounders, Steve Jobs. When Apple did this, they also gained a wealth of new technologies that his NeXT company had adopted in the mid-1990’s and fostered right up until he rejoined Apple at its helm.
Today, thanks to this merger, Apple has a very powerful framework for application programming, developing services, and writing plugins called Cocoa .
This framework is used by programmers to write software for all of these popular, modern platforms.
- Macintosh
- iPhone
- iPod Touch
- iSlate ?
The Cocoa framework uses many classic OOP design patterns, especially the most powerful one for GUI programming: Model-View-Controller (MVC).
Cocoa has an optional layer on top of its regular MVC classes called CoreData. CoreData basically adds persistence capabilities to MVC objects. This relieves the programmer of many of the low-level programming burdens of saving/restoring objects in the model to persistence storage (SQLite, XML, etc.).
The primary programming language for Mac programming is named Objective-C . It was created in the mid-1980’s, at approximately the same time as C++ .
The GCC compiler is used to compile Objective-C programs on the Macintosh platform. Apple has harnessed the power of the DBX debugger and DTrace to debug & diagnose programs on the Mac. These tools are written for Unix, which the Mac is fortunate to have as the lower-level of its operating system.
The IDE used on Macs to create applications for it and other Apple products is named Xcode .
This book touches upon all of these subjects. If you know a little bit about them already, it will greatly strengthen your understanding of how they work on in Apple’s programming and runtime platforms. That is exactly what I want to do.

