05.01.2013 Views

Mac OS X Leopard - ARCAism

Mac OS X Leopard - ARCAism

Mac OS X Leopard - ARCAism

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Figure 24-2. Cocoa components in Interface Builder<br />

AppKit’s components are not just tangible UI widgets like menus, windows, and buttons.<br />

Some of the other things AppKit provides are the following:<br />

• Data visualization objects like tables, browsers, and matrices.<br />

• Abstract objects like controllers, timers, and formatters.<br />

• Document creation, management, and persistence.<br />

• Text handling, including editing, spell checking, and typesetting.<br />

• Graphics handling for images, multimedia, and animation.<br />

• Functionality such as event handling, undo management, and threading.<br />

• System interaction such as printing, pasteboard (clipboard) operations, and scripting.<br />

Most of AppKit’s features can be had with little or no code. Customization can be accomplished<br />

with simple configuration, either as needed by the developer, or at runtime in accordance<br />

with user preferences.<br />

Despite all this simplicity, AppKit is also quite flexible. Because AppKit is object-oriented,<br />

anything it offers can be subclassed, letting developers customize as much, or as little, as they need.<br />

Foundation<br />

CHAPTER 24 MAC <strong>OS</strong> X DEVELOPMENT: THE APPLICATION FRAMEWORKS 423<br />

High-level application toolkits are all well and good, but even with all the basics and some of the<br />

not-so-basics done for you, you’re still going to have to sit down and write some code. When<br />

that inevitability occurs, you need AppKit’s fraternal twin, Foundation.<br />

The Foundation classes are so legion as to be beyond the scope of this book. (Literally!<br />

Apple’s Foundation documentation is over 2,200 pages long.) However, as you might expect,<br />

from 60,000 feet it looks a lot like a bulleted list:<br />

• Basic data types such as strings, numbers, and raw data<br />

• Specialized data types like dates, URLs, and time zones<br />

• Basic collections like arrays, sets, and dictionaries

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!