Xcode 3 Unleashed, Part I

September 9, 2008

What follows is the first post of three, reviewing the book Xcode 3 Unleashed, by Fritz Anderson.

I hope you’ll find the approach to this review to be informative, as it will definitely be different from other technical book reviews. Much longer than most book reviews, there is a good reason: to provide depth of information about the book, including quality and relevance of the examples/code, describe where the book shines, and also to point out areas for improvement.

I’ll take the time to read the book (cover to cover), work through numerous examples (as in, type in code, compile, run, etc) and share my insight from the perspective of someone who has been in the software business (as a techie) for nearly 20 years. As the author of a technical book, I’ll also be able to put myself in the shoes of the author, which I think can provide for some additional insight regarding what works and what doesn’t in a book. Once the review is complete, I’ll write one or two posts (tips) that are based on information from the book. Let’s get started.

Part I: The Life Cycle of a Mac OS X Application
The first section of the book walks through most all aspects in a typical application lifecycle, from designing (with Interface Builder) to version control to unit testing (to name just a few of the topics covered).
Most all examples in this section revolve around one application, a linear regression example. The first few chapters work through coding the application to allow for user input of data points (input to the regression example) using the command line. From here the book dives into the Model-View-Controller design pattern. The model, view and controller objects are explained in relation to building upon the linear regression example. There is a chapter devoted to each topic, which provides a great deal of information not only on working with Xcode, but includes good material on MVC for those who are new to writing applications using this approach.

Once a basic working application is built, Fritz dives into creating a Subversion repository and integration of the same within Xcode. There is a fair amount of groundwork before one can use Subversion, and each step is covered in detail. I found that coverage of the more subtle nuances helpful, such as preference settings to exclude specific file types from being included in a repository.

Property lists, libraries, targets and file packages/bundles are covered next, each topic having its own chapter. The author does a nice job of building upon the linear regression example, and incorporating new concepts into the project. For instance, when talking about libraries, a C library is created to calculate regressions. To round out the library discussion, the author demonstrates how to add an additional target to the build process as well as making one target dependant on another, ensuring the most current version of the library is always used.

Attention to detail continues throughout the first section of the book, working through topics such as unit testing, documentation, data modeling. As with the work so far, the mapping of topics to the linear regression example continues. Case in point, the library built earlier has some limitations, so Fritz describes how to morph the library into a framework, a structured directory tree for managing header files, resources and the like.

For the most part I found the step-by-step descriptions and examples to be both accurate and effective. I did encounter several figures in the book that didn’t match the current version of Xcode (I have the latest release installed). However, I know from experience when writing technical content it’s no trivial undertaking to keep screenshots current with software releases. Differences that I did encounter did not inhibit working through the examples.

Let’s wrap up this this part of the review with a listing of the Table of Contents for Part I of the book:

Part I: The Life Cycle of a Mac OS X Application

Chapter 1: Kicking the Tires

Chapter 2: Simple Workflow and Passive Debuggin

Chapter 3: Simple Active Debugging

Chapter 4: Compilation: The Basics

Chapter 5: Starting a Cocoa Applicatio

Chapter 6: A Cocoa Application: Views

Chapter 7: A Cocoa Application: Controllers

Chapter 8: Version Contro

Chapter 9: Property Lists

Chapter 10: Libraries and Dependent Target

Chapter 11: File Packages and Bundle

Chapter 12: Unit Testin

Chapter 13: Creating a Custom Vie

Chapter 14: Dynamic Libraries and Framework

Chapter 15: Documentation in Xcod

Chapter 16: Using the Data Modeling Tool

Chapter 17: Cross-Developmen

Chapter 18: Spotlight (or, How to Build a Plug-in)

Chapter 19: Finishing Touches

In the next post I’ll continue the review, focusing on the second half of the book, XCode Tasks.

7 comments

Thank you for this basic review. I am new to programming for the Mac and Objective-C in general and, after learning the basics of Objective-C, have been using “Cocoa Programming for Mac OS X (Third Edition)” to learn XCode 3.x and basic Cocoa Programming. Having programmed in C/C++, Java and Smalltalk there was a small learning curve there, but I’m enjoying Objective-C.

I was trying to decide whether to get XCode X3 Unleashed. The initial part of the review convinced me to get it. The iterative development of a linear regression program using MVC helped me decide. Also, the chapter on using Subversion also helped. I’ve been a CVS user since punch cards (it seems so) and haven’t been able to wrap my mind around the Subversion paradigm (way toooooo flexible). I hope this book will give me some ideas.

Thanks again for the good review.

by Stephen McConnell on Sep 9, 2008 at 5:58 pm. Reply #

John, I agree with your assessment of the book. However, as someone new to the Mac, Xcode and Objective-C, I found myself a little lost at times. Partly because I was also trying to learn the Mac Gui interface (coming from the PC world). Another problem is that I am reading the book online using Safari Books online, and I got stuck at the Regression.m class development. I think it would have been better if the author had continued completely including the code in text as well as providing it in a CD directory, both for continity and completeness.

Thanks,

Lyle

by Lyle on Jan 26, 2009 at 2:46 pm. Reply #

I share Lyle’s problem.

I purchased the ebook from O’Reilly / Safari Books Online. Alas, the CD-ROM doesn’t seem to be available with the ebook I purchased, nor are the files from the CD-ROM

Thanks,

Martin

by Martin Haeberli on Mar 15, 2009 at 2:40 pm. Reply #

But I just found this:

http://x3u.manoverboard.org/

Which has the downloadable sample code.

Best,

Martin

by Martin Haeberli on Mar 15, 2009 at 4:48 pm. Reply #

Martin,

Belive it or not, I found the code at the Safari Online site! If you look at the top of the book window, you see links for TOC, Index, and examples. Click the examples link and that is the CD file store.

Thanks for your help…(PS I bought the book just before I found that!)

Lyle

by Lyle on Mar 15, 2009 at 11:56 pm. Reply #

Bought this book last week.
I’m sorry but it’s not the best good book for XCode starters
- Too many Mac programming details are stepped over in the examples
- Still use Objective C 2.0 code (without garbage collector) in a XCode 3.0 interface is
outdated, I know now ;-(

I’ve still learned some Xcode tricks though, but 40 Euro’s is pretty expensive for a few tricks!

Any advice?

Jeroen
(C#, C++ and PHP, >7 years, on PC…)

by Jeroen on Jan 4, 2010 at 2:18 pm. Reply #

Jeroen,

One thought would be to resell the book through Amazon or another book site. I’ve found this a good means to “recycle” technical books that are still relevant yet are no longer needed in my library.

john

by john on Jan 4, 2010 at 2:44 pm. Reply #

Post a comment:

Required.

Required. Not published.