Building Cocoa Applications: A Step-by-step Guide

Front Cover
"O'Reilly Media, Inc.", 2002 - Computers - 620 pages
5 Reviews

Cocoa is an object-oriented development environment available in Apple's Mac OS X environment. Mac OS X, a unified operating system and graphical operating environment, is the fastest growing Unix variant on the market today. Hard-core Unix programmers, developers who cut their teeth on classic Mac operating systems, and developers who cherished NeXTSTEP, the decade-old system on which today's Cocoa is based -- all are flocking to Cocoa, and they need a lot more practical information than is currently available from Apple. There is a lot to learn.

Building Cocoa Applicationsis an ideal book for serious developers who want to write programs for the Mac OS X using Cocoa. It's a no-nonsense, hands-on text that's filled with examples -- not only simple and self-contained examples of individual Cocoa features, but extended examples of complete applications with enough sophistication and complexity that readers can put them to immediate use in their own environments.

Building Cocoa Applicationstakes a step-by-step approach to teaching developers how to build real graphics applications using Cocoa. By showing the basics of an application in one chapter and then layering additional functionality onto that application in subsequent chapters, the book keeps readers interested and motivated. Readers will see immediate results, and then go on to build onto what they've already achieved.

The book is divided into four major parts:

Part I introduces the Mac OS X graphical user interface (Aqua) from a developer's point of view, Cocoa developer tools (such as the Interface Builder, Project Builder, and gdb debugger), object-oriented concepts, the Objective-C language in which Cocoa is written, and the basics of Cocoa programming itself.

Part II focuses on building the first complete application, Calculator, a simple four-function calculator. The chapters in this part of the book extend the application, piece by piece, by introducing such features as nibs, icons, delegation, resizing, events, and responders.

Part III focuses on building an application called MathPaper, which is similar to a word processor but which instead solves mathematical expressions the user supplies. The chapters in this part of the book extend MathPaper by developing both the front and back ends using a variety of Cocoa classes and methods. They introduce Cocoa'sdocument-based architecture, tasks, pipes, Rich Text format, handling document files, and using Quartz to draw in windows.

Part IV focuses on building the GraphPaper application, a more complex multithreading application that graphs mathematical functions in multiple dimensions and that uses mouse-over capabilities to identify graph points. The chapters in this part of the book add more advanced Mac OS X features such as multithreading, color, mouse events, zoom buttons, pasteboards, services, preferences, and the defaults database.

By the end of the book, readers who have built the applications as they have read will have a solid understanding of what it really means to develop complete and incrementally more complex Cocoa applications.

The book comes with extensive source code available for download from the O'Reilly web site, along with an appendix listing additional resources for further study.

  

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

II
3
III
4
IV
6
V
9
VI
12
VII
20
VIII
22
IX
24
LXXXIII
318
LXXXIV
319
LXXXV
320
LXXXVI
321
LXXXVII
322
LXXXVIII
328
LXXXIX
330
XC
335

X
30
XI
33
XII
42
XIII
49
XIV
59
XVI
60
XVII
61
XVIII
67
XIX
69
XX
78
XXI
84
XXII
85
XXIV
86
XXV
87
XXVI
92
XXVII
96
XXVIII
102
XXIX
103
XXX
104
XXXI
109
XXXII
129
XXXIII
138
XXXVI
139
XXXVII
141
XXXVIII
142
XXXIX
145
XL
151
XLI
163
XLII
171
XLIII
174
XLIV
176
XLV
177
XLVI
180
XLVII
183
XLVIII
186
XLIX
187
L
188
LI
192
LII
205
LIII
208
LIV
213
LV
214
LVIII
215
LIX
225
LX
232
LXI
237
LXII
243
LXIII
247
LXV
248
LXVI
251
LXVII
261
LXVIII
263
LXIX
275
LXX
276
LXXII
277
LXXIII
282
LXXIV
284
LXXV
289
LXXVI
290
LXXVIII
291
LXXIX
293
LXXX
295
LXXXI
302
XCI
337
XCII
346
XCIV
347
XCV
348
XCVI
356
XCVII
359
XCVIII
362
C
364
CI
370
CII
382
CIII
384
CIV
386
CV
389
CVII
390
CVIII
393
CIX
400
CX
408
CXI
410
CXII
416
CXV
418
CXVI
419
CXVII
422
CXVIII
428
CXIX
431
CXX
437
CXXI
440
CXXII
443
CXXIII
444
CXXIV
445
CXXV
447
CXXVI
450
CXXVII
454
CXXVIII
476
CXXIX
482
CXXXI
483
CXXXII
484
CXXXIII
488
CXXXIV
501
CXXXVI
503
CXXXVII
506
CXXXVIII
511
CXL
512
CXLI
513
CXLII
522
CXLIII
530
CXLV
536
CXLVII
537
CXLVIII
541
CXLIX
546
CL
549
CLI
560
CLII
570
CLIV
572
CLV
573
CLVI
579
CLVII
586
CLVIII
591
CLIX
595
CLX
596
CLXI
597
CLXII
603
Copyright

Common terms and phrases

About the author (2002)

Simson Garfinkel, CISSP, is a journalist, entrepreneur, and international authority on computer security. Garfinkel is chief technology officer at Sandstorm Enterprises, a Boston-based firm that develops state-of-the-art computer security tools. Garfinkel is also a columnist for Technology Review Magazine and has written for more than 50 publications, including Computerworld, Forbes, and The New York Times. He is also the author of Database Nation; Web Security, Privacy, and Commerce; PGP: Pretty Good Privacy; and seven other books. Garfinkel earned a master's degree in journalism at Columbia University in 1988 and holds three undergraduate degrees from MIT. He is currently working on his doctorate at MIT's Laboratory for Computer Science.

Michael K. Mahoney is Dean of the College of Engineering at California State University, Long Beach, where he is also a Professor of Computer Engineering and Computer Science. Formerly, he was the Associate Vice President for Academic Information Technology and Chair of the Department of Computer Engineering and Computer Science. Dr. Mahoney started programming at NeXT Computer, Inc. in January 1989 and coauthored (with Simson Garfinkel) NeXTSTEP Programming, Step One: Object-Oriented Applications (Springer-Verlag). He has given presentations on object-oriented programming and NeXTSTEP's Interface Builder at ACM meetings in Seattle, Los Angeles, Monterey, and New Orleans. Before becoming dean, he regularly taught university courses in computer graphics, user interface design, object-oriented programming, discrete mathematics, and web development. He has supervised eight Master's theses. Mahoney earned his Ph.D. in mathematics at the University of California, Santa Barbara, in 1979. He has published papers in computer graphics, computer science education, and mathematics. He has won campuswide teaching awards at both UCSB and CSULB. His web site is http://www.csulb.edu/~mahoney/.

Bibliographic information