Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Название: Cocoa(R) Programming for Mac(R) OS X (3rd Edition)
Автор: Hillegass A.
I own this book and worked through it fairly diligently. Having come out the other end of the book, I would say it provides a good foundation for continuing on, but I don't think this book is enough to start writing your own apps without some more assistance. I think it *almost* gets you there, but falls short in a couple of areas. I think if you buy this book with the intention of picking up one or more additional books to continue on, then this book will serve it's purpose, but I do think if you try and start programming just from this book, you'll be a bit lost when your done. I myself picked up Cocoa Design Patterns, which seems like a good next step so far. It provides a LOT less hand holding, but if you've gone through Hillebrands book, you should be ready for that anyway.
I think if I could sit down with Hillebrand and make any recommendation it would be to either have put more into this book, or break it up into 2-3 books, with some additional details along the way. In many cases as I diligently typed in the code examples I was often somewhat lost as I went along. Some things became more clear as the book progressed, but others remained somewhat murky. For instance the chapter on drag-drop. There was a lot of code there, and not a lot of explanation. I see that there is a follow up book to this by him coming out in July, which I intend to purchase, and I recently bought his iPhone book, which while I haven't gone through it in detail appears to be improved over this in it's flow, or perhaps it's just that I know more about Cocoa in general that it's not overwhelming me.
I can't say how difficult this book would have been without extensive OOP experience, but if your considering this as a starting point for programming, don't. This book, Cocoa itself is *not* for beginners. I would say you really need to cut your teeth with some general OOP concepts and put your time into programming them before you try and tackle Cocoa. PHP could be a pretty good way to build up your knowledge. It would allow you to learn programming and OOP while not getting bogged down with having to try and tackle interfaces, messaging etc. If you do already have oop experience, but don't know Objective-C, it's certainly different than other OOP languages I've used (Java, C++, PHP) but it's more syntactical than anything else. This book provides a decent primer on Obj-C and by the time I got past those primer chapters I was pretty set with regard to Obj-C itself.
I did really like this book. I have a good foundation on Cocoa now and while I am still in need of more books to start filling in the gaps and continue on my journey, this served as a good start for that, and I would most definately recommend this book. You should definately goto the book website and download the example/source code, I found on some of the challenges that I didn't figure out, it was helpful to see his examples and then move on, rather than spend time trying to find the needle in the haystack, at some point you do need to punt and move on...
It's worth mentioning that while I'd say 80-85% of what he talks about re: the Interface Builder was still relevant, this being from 2008, the IB has changed with the most recent version just enough that when I started this book as a complete newbie, I got stuck in a couple places until I could gather the knowledge to understand where his instructions were no longer accurate. In the end for me some googling solved my hickups. So for anyone starting with this book and using XCode 3.2 or newer, know that you'll find a few things work differently, and also know that once you see what you need to do differently and understand it, the differences are pretty minor, it's just when your totally new and don't know the IB well enough, it can seem impossible at first. A little perseverance will get you through. It would have been nice if the author had provided a bit more updates on his website about the differences, he gave some info, but it was pretty cursory.
FInally, even with my criticisms, I want to say I didn't intend the criticisms to be reasons not to get the book, but rather heads-up about where you would need to find other resources to keep you chugging along, and also to say that as good as this book is, I do think additional more advanced books are required afterward to ensure you move along on your journey.