 |
Programming in Objective-C 2.0 (2nd Edition) by Stephen G. Kochan
Book Summary InformationAuthor: Stephen G. Kochan Edition: Paperback Audio: English (Unknown); English (Original Language); English (Published) Published: 2009-01-08 ISBN: 0321566157 Number of pages: 624 Publisher: Addison-Wesley Professional Accessories:
Book Reviews of Programming in Objective-C 2.0 (2nd Edition)Book Review: GREAT! GREAT! GREAT! Summary: 5 Stars
I started to write a review for this book and was going through the ones already written for this edition and for the first edition (apparently, the reviews from a previous edition don't get carried across--I think this is a mistake). I decided to copy one of the reviews from the first edition here, since I couldn't think of any better words to describe how wonderful this book is. There are some updates to this review for the second edition, and I'll note those after you read this:
--------- Review from first edition
This book is the most lucid book on programming I have ever read. Having a little (self-taught) experience in C, this book was recommended to me as a good foundation before trying to learn Cocoa for programming on Max OS X. I fully expected to be confronted with the sort of doorstopper that I would never finish, as has been the case with several C++ books; instead, I found a straightforward, uncluttered guide, written by somebody with a genuine talent for teaching.
The author takes the approach of not trying to teach you C first, and this has two advantages: first, if you have no C experience, you get started immediately learning Objective-C, so you don't get taught one thing only to be told to forget it later; second, if you do have some C experience, you are thrown into object-oriented programming right from the start. The explanations are consistently concise but clear, and I found myself getting through a chapter or two every night after work and feeling that I was learning something significant on every page. I read someone describe it elsewhere as "Teach Yourself Objective-C in 21 Days," except that this book really could live up to such a title. I wholeheartedly agree - it took me only three weeks to work through the whole book, including nearly all of the exercises. If, like me, you have seen terms such as "polymorphism", "inheritance", "instance method" and "subclassing" bandied around only to stare at them in mute incomprehension, this book is a revelation. The author introduces all such major concepts very gently - in fact they seem to creep up on you, so that by the time you are presented with the proper terminology you either already know what it means or find yourself exclaiming - as I did - "Oh, so that's all polymorphism is!"
My only gripe - and it is very minor - is that the explanations of bitwise operators and bitfields are near incomprehensible to anybody who doesn't have a programming background (or rather, they are explained well, but there is no indication of when you would ever use them), and the author does occasionally (though rarely) seem to assume that the reader has a solid maths background (when there are those of us out there from humanities and arts backgrounds who want to learn to program, too). These topics take up little more than several paragraphs of the 500 or so pages, though, so if you're a novice, don't let them daunt you as they are the exception rather than the rule.
One thing I appreciated about this book was that full code is provided for 99% of the examples - you are never left with an example that won't compile because the author assumed you could guess the rest yourself. Moreover, whilst the examples and exercises do develop on code from previous chapters - in particular, you will develop a Calculator, Fraction, and Rectangle class in the first part of the book, and AddressCard and AddressBook classes in the second part - the author wisely avoids the build-one-big-program approach that some books adopt. This keeps things fresh and lively - you have to type in different examples, meaning you become familiar with the language through repetition, but at the same time you are doing different things in the examples themselves. Moreover the exercises at the end of each chapter are well judged - you are forced to think and look back through the book to recap on what you have learned, and they are difficult without being too difficult. (Don't skip them!)
In the second part of the book, the author moves on to the Foundation framework, which forms half of Cocoa (Cocoa also uses the AppKit for creating GUI's). You will learn how to use NSString, NSArray, NSDictionary (and their mutable counterparts) and a lot more. It builds on everything you've learned in Part One and provides a bridge between the basics of Objective-C and moving on to Cocoa. I expect that this part of the book especially will become dog-eared very quickly. To sum up, this book took me from knowing nothing about Ojbective-C to feeling as though I could write all the background code for the app I have in mind (ie. everything except the GUI). I am now just hoping that Hillegass's book on Cocoa is half as good.
A word of advice: I urge anybody who buys this book to print off the errata on the author's website (the address is given in the book), as there are a few minor errors that might stump you if you don't. Also, if you use Xcode instead of the command-line tools, you will need to delete the contents of the automatically-generated ..._Prefix.pch file as well as the #import line at the top of main.m each time you start a project (the book only specifies the latter). The prefix file caused me some headaches in one of the later chapters.
A lot of people on various forums say that this is the only book from which to learn Objective-C, and I can see why. In short, if you are reading this review you are probably thinking about learning Objective-C, either for its own sake or as groundwork for moving on to Cocoa. Which
means that if you are reading this review, you should buy this book.
Three things I have to add here: Apparently the author was listening to this reviewer and expanded the discussion about bitwise operations for this edition. It seems to be very clear to me, although I didn't read the description in the first edition and so I can't compare the two.
The author doesn't seem to have his own website anymore, but I did get the link to this site for errata and stuff after I sent him an email: [...]
The last thing is that besides the fact that the second edition has been updated to includes Objective-C 2.0 features, there's a new section added on developing iPhone applications. I really enjoyed this section because it solidified a lot of stuff for me. I not only got the fraction calculator from the book working on the iPhone simulator that's part of the iPhone SDK tools, but I got other programs running on there as well. Now I'm reading Beginning iPhone Development from Apress and I feel like I'm well on my way to writing more complex iPhone applications.
Summary of Programming in Objective-C 2.0 (2nd Edition) THE #1 BESTSELLING BOOK ON OBJECTIVE-C 2.0
Programming in Objective-C 2.0 provides the new programmer a complete, step-by-step introduction to Objective-C, the primary language used to develop applications for the iPhone, iPad, and Mac OS X platforms. The book does not assume previous experience with either C or object-oriented programming languages, and it includes many detailed, practical examples of how to put Objective-C to use in your everyday iPhone/iPad or Mac OS X programming tasks.
A powerful yet simple object-oriented programming language that?s based on the C programming language, Objective-C is widely available not only on OS X and the iPhone/iPad platform but across many operating systems that support the gcc compiler, including Linux, Unix, and Windows systems. The second edition of this book thoroughly covers the latest version of the language, Objective-C 2.0. And it shows not only how to take advantage of the Foundation framework?s rich built-in library of classes but also how to use the iPhone SDK to develop programs designed for the iPhone/iPad platform. Table of Contents
1 Introduction
Part I: The Objective-C 2.0 Language 2 Programming in Objective-C 3 Classes, Objects, and Methods
4 Data Types and Expressions
5 Program Looping
6 Making Decisions
7 More on Classes 8 Inheritance
9 Polymorphism, Dynamic Typing, and Dynamic Binding
10 More on Variables and Data Types
11 Categories and Protocols
12 The Preprocessor
13 Underlying C Language Features
Part II: The Foundation Framework 14 Introduction to the Foundation Framework
15 Numbers, Strings, and Collections
16 Working with Files
17 Memory Management
18 Copying Objects
19 Archiving
Part III: Cocoa and the iPhone SDK 20 Introduction to Cocoa 21 Writing iPhone Applications
Part IV: Appendixes A Glossary
B Objective-C 2.0 Language Summary
C Address Book Source Code
D Resources
Computers & Internet Books
|
 |