Table of Contents
Introduction
I. Overview
1. Introduction to Mac OS X
Darwin
UNIX
File Systems
Industry Standard Protocols
Quartz
OpenGL
QuickTime
Classic (OS 9)
Carbon
Cocoa
Java
Aqua
Software
Conclusion
2. Introduction to Programming in Mac OS X
Programming Languages
Objective-C
Java
Tools
Debugging
Source Control
Developer Utilities
Command-Line Developer Utilities
Frameworks
Conclusion
II. Application Level
3. Cocoa Applications
The Result
The Project
First Things First: Copyrights and Credits
First Things First: Other Info.plist Entries
First Things First: Application and Document Icons
Interface Builder
Main
MyDocument
RadarView
Application Preferences
Try This
Conclusion
4. Cocoa Plug-ins
The Results
The First Project: plistPlugin
The Plug-ins: What
The Plug-ins: Where
The Plug-ins: How
SearchWindowController
The Second Project: MyNSBP_App and MyNSBP_Plugin
The Host Application: Overview
The Plugin: Overview
The Host Application: Detail
The Plug-in Protocol
The Plug-in: Detail
A Word About Symbol Collisions
Try This
Conclusion
5. Carbon Plug-ins
The Results
The CFPlugin Project
What Is a UUID?
The CFPlugin Project Source Code
The Plug-in Interface
The Plug-in Main Function
The CFPluginCarbonApp Host Application Project
The CFPluginCocoaApp Host Application Project
Try This
Conclusion
6. Frameworks
Apple Frameworks
Third-Party Frameworks
OmniBase
OmniFoundation
OmniNetworking
OmniAppKit
OWF
OmniHTML
The Result
The Carbon Framework Project
The Cocoa Framework Project
The Cocoa Application Project
Try This
Conclusion
III. Enhancing the System
7. System Services
The Result
The Project
The Project Settings
The Source Code
The Application Connection
Try This
Conclusion
8. System Preference Panes
The Result
The Project
The Project Settings
The Nib File
The Source Code
More NSPreferencePane
Try This
Conclusion
9. Status Items
The Result
The Project
The Project Settings
The Nib File
The Source Code
Try This
Conclusion
10. Screen Effects
The Result
The Project
The Project Settings
The Nib File
The Source Code
Try This
Conclusion
11. Color Pickers
The Result
The Project
The Project Settings
The Nib File
The Source Code
Try This
Conclusion
IV. Advanced Methods
12. Threads
The Result
The Project
The Project Settings
The Nib File
The Source Code
Serial Versus Parallel
Thread Priority
Thread Data
Try This
Conclusion
13. Terminal
The Result
The Project
The Project Settings
The Nib File
The Source Code
Uptime
Ping
Try This
Conclusion
14. XML-RPC
The Result
The PHP Server
The PHP Client
The Cocoa Client
The Project Settings
The Nib File
The Source Code
Try This
Conclusion
15. SOAP
The Result
The PHP Server
The PHP Client
The Cocoa Client
The Project Settings
The Nib File
The Source Code
Try This
Conclusion
16. Snippets
Calling Carbon from Cocoa
Drawing with QuickDraw in a Cocoa Application
Displaying the Username
Finding a User's Home Directory
Finding Application Support Directories
Display Alert Panel and Write to Log
Updating the Application's Dock Image
Updating the Application's Dock Menu
Open a URL
Get the Icon of a File
Scrolling About Box
Checking Network Status
Checking for Modifier Keys
Executing AppleScripts via URL
Defaults
Find
Sample
Localizing Your Cocoa Application
CURLHandle
Conclusion
17. Conclusion
V. Appendixes
A. Source Code
Chapter 3—RadarWatcher
AppController.h
AppController.m
main.m
MyDocument.h
MyDocument.m
PreferenceController.h
PreferenceController.m
RadarView.h
RadarView.m
Chapter 4—MyNSBP_App
MyNSBP_Protocol.h
AppController.h
AppController.m
ImageWindowController.h
ImageWindowController.m
main.m
Chapter 4—MyNSBP_Desaturate
MyNSBP_Desaturate.h
MyNSBP_Desaturate.m
Chapter 4—MyNSBP_RemoveColor
MyNSBP_RemoveColor.h
MyNSBP_RemoveColor.m
SettingsController.h
SettingsController.m
Chapter 4—plistPlugin
AppController.h
AppController.m
main.m
SearchWindowController.h
SearchWindowController.m
Google.plist
Overture.plist
Yahoo.plist
Chapter 5—CFPlugin
main.c
Chapter 5—CFPluginCarbonApp
main.c
Chapter 5—CFPluginCocoaApp
AppController.h
AppController.m
main.m
Chapter 5—Shared
MyCFCallPlugin.c
MyCFCallPlugin.h
MyCFPluginInterface.h
Chapter 6—MyCarbonFramework
MyCarbonFramework.c
MyCarbonFramework.h
Chapter 6—MyCocoaFramework
MyCocoaFramework.h
MyCocoaFramework.m
Chapter 6—MyCocoaApp
AppController.h
AppController.m
main.m
Chapter 7—MyTextService
main.m
MyTextService.h
MyTextService.m
Chapter 8—MyPreferencePane
MyPreferencePanePref.h
MyPreferencePanePref.m
Chapter 9—MyStatusItem
AppController.h
AppController.m
main.m
Chapter 10—MyScreenEffect
MyScreenSaverView.h
MyScreenSaverView.m
Chapter 11—MyColorPicker
ThePicker.h
ThePicker.m
Chapter 12—MyThread
AppController.h
AppController.m
main.m
Chapter 13—MyTerminal
AppController.h
AppController.m
main.m
MyTerminalController.h
MyTerminalController.m
Chapter 14—MyXMLRPC
AppController.h
AppController.m
main.m
product_client.php
product_server.php
Chapter 15—MySOAP
AppController.h
AppController.m
main.m
product_client.php
product_server.php
B. Online Resources
Index