Learning Cocoa with Objective-C/Appendixes/Additional Resources
If your mission is to produce commercial-quality software for Mac OS X, Learning Cocoa with Objective-C has provided a great liftoff, but your journey to market still has a fair distance to go. This appendix lists information about the documents referred to in this book and points you to other resources that can further help you in your Cocoa application development. These resources include the following:
- Cocoa and Mac OS X books aimed at the general programmer audience
- Articles and postings about particular Cocoa programming topics
- Sample code
- Cocoa developer mailing lists and newsgroups
- Partnership programs with Apple Computer
Your first source of additional information pertaining to the material presented in this book is the book's own web site, located at the following URL:
At this site, you'll find the book's sample code available for downloading, as well as any errata and plans for future editions.
Documentation on Your Hard Drive
Many of the best resources on Cocoa development are installed on your hard drive:
- Mac OS X Release Notes
- Updated with every release of Mac OS X, these notes are typically one step ahead of the rest of Apple's documentation. You should read through these every time you update your system so that you can stay on top of the latest and greatest trends.
- Cocoa Developer Documentation
- The one-stop shop to get access to all the nitty-gritty documentation about Cocoa installed onto your hard drive.
- Inside Mac OS X: System Overview
- This overview of Mac OS X is valuable for anyone doing software development with Cocoa. You should read Inside Mac OS X: System Overview to familiarize yourself with the architecture of Mac OS X and how to take best advantage of its design. This guide not only describes the features and capabilities of the operating system, but also describes concepts, facilities, and conventions common to the system's Carbon, Cocoa, Java, and BSD application environments.
- Inside Mac OS X: The Objective-C Programming Language
- This book fully documents the Objective-C language and provides a foundation for understanding how Cocoa works.
- Inside Mac OS X: Aqua Human Interface Guidelines
- This book describes how to design your application for the Mac OS X user interface, known as Aqua. This guide provides examples of how to use such Aqua interface elements as windows, controls, dialogs, and icons so that the users of your Cocoa application will be familiar and comfortable with your product the moment they double-click its icon.
- Inside Mac OS X: Performance
- This book tells you how to enhance your program to achieve maximum performance and how to use development tools to analyze and tune your code. Topics include: managing virtual memory; accessing files efficiently; optimizing Carbon applications; building efficient C, C++, and Java code; using the Mac OS X performance measurement and analysis tools; and optimizing the in-memory layout of your program.
- Core Foundation Developer Documentation
- Cocoa is built upon the Core Foundation framework. Occasionally, you will need to use functionality that is at the Core Foundation level and isn't exposed via the Cocoa APIs.
If you prefer print over PDF, you can order printed, bound copies of many selected documents, including the full Cocoa API reference, from Apple's print-on-demand provider, Vervante:
Getting Sample Code
Sometimes there is no better way to learn how to write code than to see working code written by someone else. Apple provides software development kits (SDKs) free of charge for most of Apple's key technologies. You'll find header files, libraries, sample code, and other useful tools and resources in each SDK. You can access a link to Apple's SDKs from this web site:
You'll also find links to Cocoa Development Tips & Tricks, a page dedicated to sharing Cocoa development, debugging, and porting information.
The Web provides a cornucopia of information about Cocoa (as it does everything else). We've found it useful to use Google (http://www.google.com/) to provide help for the most arcane of issues, including odd compiler error messages. Just type it into the search field and go.
These are the sites that we browse most often for Cocoa information:
- Apple Developer Connection
- Apple uses the Developer Documentation area of this web site to post new documents, and update existing ones, on a frequent basis. In addition, being a member of the ADC (basic online membership is free) gives you access to the latest Developer Tools releases.
- O'Reilly's Mac DevCenter
- Affiliated with O'Reilly & Associates, Inc., the O'Reilly Network is home to the Mac DevCenter, a hub site that offers news, FAQs, original articles, and other technical information for Mac OS X developers.
- MacTech Magazine
- This MacTech web site also contains a lot of downloadable source code and a web version of MacTech Online, a monthly column from the magazine that provides online technologies and resources. These resources include links to web pages, shareware archives, newsgroups, mailing lists, and castanet channels aimed at Macintosh programmers.
- One of the original Cocoa sites, Stepwise was created as a resource for NeXTSTEP developers and serves as an excellent resource for Cocoa and WebObjects programming.
- The Vermont Recipes
- Published on Stepwise, this group of articles written by Bill Cheeseman serves as a cookbook for developing Mac OS X applications with Cocoa using a no-nonsense, hands-on, step-by-step approach.
- Cocoa Dev Central
- This site is updated fairly frequently with tips, tricks, and tutorials for the novice Cocoa developer.
- CocoaDev Wiki
- This user-editable web site is by and for the Mac OS X developer community. If you've never used a WikiWeb before, this style of site gives literally anyone capable of viewing the page the ability to add information.
Many programmers find online mailing lists to be the best way to stay on top of what's fresh and new in the Cocoa community. In addition, they can be an excellent place to get help for a problem; just be sure to search the archives first before asking!
- Apple's cocoa-dev mailing list
- Apple's moderated email list focused exclusively on Cocoa development issues.
- Apple's projectbuilder-users mailing list
- Apple's moderated email list focused on Project Builder issues.
- The OmniGroup's MacOSX-dev mailing list
- A mailing list set up by one of the premier Cocoa development houses for developers to assist each other.
- The MacDev-1 mailing list
- A source of news, information, updates, and special offers for the Mac programmer community.
- Mamasam's Cocoa List Archive
- A browsable, searchable archive of Apple's cocoa-dev and The OmniGroup's MacOSX-dev mailing lists.
Partnering with Apple
Apple knows that your success is Apple's success. Apple wants developers like you to create successful applications that make customers clamor for Apple computers.
You should tap into some of the programs, products, and services offered by Apple Developer Connection (ADC). Aimed at both large and small developers, the stated purpose of ADC is "to help you successfully develop, test, market, and distribute software and hardware products for Apple platforms and technologies."
In addition to publishing the Developer web site at developer.apple.com (which includes the Cocoa Developer Documentation suite), hosting an annual Apple Worldwide Developers Conference (WWDC), and championing developer needs to Apple's own development engineers, ADC offers several program packages useful to you and other developers.
You should become a member of one of these programs. At minimum, sign up for the Online program...it's free! The Online program allows you to download up-to-date development tools, gain access to certain early software releases, and receive weekly technical updates via email.
If you'd rather have this type of information mailed to you, you can pay to become an ADC Mailing customer. You'll then receive the latest in development tools, system software, development kits, and reference materials via a CD series delivered to you monthly via snail mail.
A low-cost ADC Student Program is targeted at university students around the world. ADC Student developers receive special introductory tools, access to a student community of Mac programmers, and other educational opportunities, including the chance to win scholarships to the Worldwide Developers Conference.
The priciest ADC programs are called Select and Premier. These programs offer a multitude of plush products and services, including fat discounts on Apple hardware and third-party products and services, as well as access to Apple's technical-support engineers.
For information on signing up for any of these programs, go to the following URL: