Learning Cocoa with Objective-C/Appendixes/Additional Resources

From WikiContent

< Learning Cocoa with Objective-C | Appendixes
Revision as of 12:56, 7 March 2008 by Docbook2Wiki (Talk)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search
Learning Cocoa with Objective-C

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:

http://www.oreilly.com/catalog/learncocoa2/

At this site, you'll find the book's sample code available for downloading, as well as any errata and plans for future editions.

Contents

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.

/Developer/Documentation/ReleaseNotes

Cocoa Developer Documentation
The one-stop shop to get access to all the nitty-gritty documentation about Cocoa installed onto your hard drive.

/Developer/Documentation/Cocoa/CocoaTopics.html

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.

/Developer/Documentation/Essentials/SystemOverview/SystemOverview.pdf

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.

/Developer/Documentation/Cocoa/ObjectiveC/ObjC.pdf

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.

/Developer/Documentation/Essentials/AquaHIGuidelines/AquaHIGuidelines.pdf

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.

/Developer/Documentation/Essentials/Performance/performance.pdf

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.

/Developer/Documentation/CoreFoundation/corefoundation_carbon.html


Printed Documentation

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:

http://www.vervante.com/apple

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:

http://developer.apple.com/cocoa/index.html

You'll also find links to Cocoa Development Tips & Tricks, a page dedicated to sharing Cocoa development, debugging, and porting information.

Web Sites

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.

http://developer.apple.com/

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.

http://www.macdevcenter.com/

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.

http://www.mactech.com/

Stepwise
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.

http://www.stepwise.com/

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.

http://www.stepwise.com/Articles/VermontRecipes/index.html

Cocoa Dev Central
This site is updated fairly frequently with tips, tricks, and tutorials for the novice Cocoa developer.

http://www.cocoadevcentral.com/

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.

http://www.cocoadev.com/


Mailing Lists

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.

http://lists.apple.com/mailman/listinfo/cocoa-dev

Apple's projectbuilder-users mailing list
Apple's moderated email list focused on Project Builder issues.

http://lists.apple.com/mailman/listinfo/projectbuilder-users

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.

http://www.omnigroup.com/developer/mailinglists/macosx-dev/

The MacDev-1 mailing list
A source of news, information, updates, and special offers for the Mac programmer community.

http://www.mactech.com/macdev-1/index.html

Mamasam's Cocoa List Archive
A browsable, searchable archive of Apple's cocoa-dev and The OmniGroup's MacOSX-dev mailing lists.

http://cocoa.mamasam.com/


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:

http://developer.apple.com/membership/

Personal tools