- 本とまとめ買いで割引 対象商品： 最大5000円OFF「PCソフト」
Cocoa Programming Developer's Handbook (Developer's Library) (英語) ペーパーバック – 2009/12/29
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
The Cocoa programming environment—Apple’s powerful set of clean, object-oriented APIs—is increasingly becoming the basis of almost all contemporary Mac OS X development. With its long history of constant refinement and improvement, Cocoa has matured into a sophisticated programming environment that can make Mac OS X application development quick, efficient, and even fun.
Yet for all its refined elegance and ease of use, the staggering size of the Cocoa family of APIs and the vast magnitude of the official documentation can be intimidating to even seasoned programmers.
To help Mac OS X developers sort through and begin to put to practical use Cocoa’s vast array of tools and technologies, Cocoa Programming Developer’s Handbook provides a guided tour of the Cocoa APIs found on Mac OS X, thoroughly discussing—and showing in action—Cocoa’s core frameworks and other vital components, as well as calling attention to some of the more interesting but often overlooked parts of the APIs and tools.
This book provides expert insight into a wide range of key topics, from user interface design to network programming and performance tuning.
David Chisnall has in-depth knowledge of Cocoa as both an implementer and a developer. He is an active contributor to the GNUstep project, which provides an open source implementation of the Cocoa APIs, and cofounded the Étoilé project to build a desktop environment atop GNUstep. He has created a new Objective-C runtime library, worked on Objective-C support in the clang compiler, and published papers on Objective-C. He wrote a popular series of articles on Objective-C and Cocoa for informIT.com and is the author of The Definitive Guide to the Xen Hypervisor (Addison-Wesley, 2008).
Amazon.com で最も参考になったカスタマーレビュー (beta)
The book has a distinct feel that it was written with the C programmer in mind. The book tells you all about the Objective-C messaging and objects but it keeps emphasising that Objective-C is not a substitute but an addition to C. If you read the book "Cocoa Programming for Mac OS X" by Aaron Hillegass you can very easily put together simple applications using XCode. However, if you have a deeply entrenched C background, you will feel lost a bit, because you don't know what's going on. Now this book tells you exactly that. It explains all the major Cocoa classes and the messaging but does it in a way that makes sense with a purely C background.
There are a couple of typographic errors in the book that are rather distracting. Code listings are line numbered and the text refers to the line numbers when it explains the workings of the code. The problem is, the numbers do not always match. You may have a listing of lines 1 to 20 and the text pointing out the clever trick used in lines 76 and 80. The code that the text refers to is all there, it's just the line numbers that are wrong. Obviously, when the text was written the author had a longer piece of code and later decided to remove all unimportant lines before the function in question, but forgot to update the references. At a few places the text simply doesn't make sense, apparently the author decided to rephrase a couple of consecutive sentences and haven't finished it. As expected, you have half-finished sentences, not forming a logical chain of thought.
Nevertheless, those problems are not show-stoppers. When you encounter them, you'll need to put some extra effort in deciphering the actual meaning or working out a listing offset. It is a distraction and a quite annoying one, but you can get the information.
Overall, this book will help you to understand the features and inner workings of Objective-C, the organisation of the major Cocoa frameworks and classes. It explains the Cocoa event system in depth and prepares you to feel comfortable with XCode even if you come from a non object oriented, "vi, make and gdb are the best development environment" centric background. After this book you can use the book from Aaron Hillegass and you will actually know what will going to happen in your code if you drag this thingy over there to that thingy in the interface builder, as per Aaron's instructions.
Furthermore, the book explains the differences between Objective-C 1.x and 2.0, the changes to Cocoa over the various OS X versions and shows how to write code that is backward compatible as well as forward compatible, i.e. not dependent on features that Apple might remove in future OS X versions. It also explains the differences between the Apple and GNU versions of Objective-C so that you can write code that is at least partially reusable on the GNU environment.
An important note: This book is not for iPhone development. Where the iPhone and OS X are different, the OS X version is explained but the iPhone is not. In such cases there is always a warning about the difference and usually some advice about achieving the same outcome on the iPhone, but you will need to consult iPhone specific documentation.
The book assumes that you are fluent in C and you have at least a vague idea about what object-oriented design is all about, even if you've never done any OO programming. You do not need to know Objective-C but, again you *do* need to know C to understand the book. Furthermore, having familiarity with event-driven programs, though not a requirement, will help. The book explains how events are delivered, but not the design philosophy behind event driven systems.
The book gives you a historical background regarding to OS X, Objective-C and Cocoa. It describes the (not always rosy) relationships between the Free Software Foundation, NeXT and Apple. It also explains how the GNU and non-GNU tools, old Apple technologies, NEXTSTEP, BSD and the Mach kernel are rolled together to form OS X. The history is written in a very readable style, telling the facts and explaining the business and politics behind the decisions. Nevertheless, this part of the book is very concise, it just "puts you in picture". The rest is highly concentrated information, written in an easy to follow, readable style but without fluff.
In summary, if you want to do OS X Cocoa development and you know your way around in writing software but you don't have an OO background then this is an excellent book, which I recommend to be read before any of the other Cocoa development books.
After I've figured it out, its always much easier to read this book, i.e. once you know how to do something the passages about that something seem much clearer. I haven't found a Cocoa reference that is both easy to follow and has sufficient depth to help me through the learning curve.
The index is terrible; having read the book cover-to-cover I find myself working on some piece of code, remembering it being mentioned in the book but totally unable to find the reference because the index is so poor. I guess this is an argument for buying the eBook version (you can always do a search in an eBook however you may get loads of inappropriate hits) A good index would be much better.
What's nice about this book is its emphasis on conceptual details. In particular, the chapters related to Objective-C (and Obj-C runtime) alone are worth every penny. Also, the book tries to tie together a lot of different things which you will need while building an application. Normally, this kind of knowledge is hard to get unless you have worked with a team of software engineers (I'm a research scientist, so I never had this opportunity, but I have learned enough from this book that I can build a full fledged Cocoa application). Also, almost all of the code samples that I downloaded from the authors web-site compiled and worked in XCode4, which is a big win.
That said, the book is not without some minor flaws. There are quite a few typos--even in the code snippets in the book! Also, a more in-depth overview of Complex UI design (in addition to what's there in chapter 11) would be extremely useful. In any case, I highly recommend this book for anyone who knows how Cocoa works, but would like to go a bit deeper.
- 洋書 > Computers & Technology > Apple > Development & Programming > Cocoa
- 洋書 > Computers & Technology > Apple > Development & Programming > OSX Development
- 洋書 > Computers & Technology > Apple > Home Computing & How-to > OS X
- 洋書 > Computers & Technology > Programming > Languages & Tools
- 洋書 > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design
- 洋書 > Education & Reference
- 洋書 > Pearson Education