<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mac Developer Tips &#187; Book Reviews</title>
	<atom:link href="http://MacDeveloperTips.com/category/book-reviews/feed" rel="self" type="application/rss+xml" />
	<link>http://MacDeveloperTips.com</link>
	<description>Tips, tools and code for iPhone and Mac developers.</description>
	<lastBuildDate>Thu, 12 Aug 2010 23:45:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cocoa Programming &#8211; Part III</title>
		<link>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-iii.html</link>
		<comments>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-iii.html#comments</comments>
		<pubDate>Mon, 29 Sep 2008 08:07:00 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://MacDeveloperTips.com/?p=250</guid>
		<description><![CDATA[This is the third and final post in a series reviewing the book Cocoa Programming, by Aaron Hillegass. Here are links to the first and second parts of this review. In this post I&#8217;ll review a few highlights of the book as well as offer a few suggestions (from my perspective) for improvement should another [...]]]></description>
			<content:encoded><![CDATA[<p>This is the third and final post in a series reviewing the book <a href="http://www.amazon.com/gp/product/0321503619?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321503619 " target="_blank">Cocoa Programming</a>, by Aaron Hillegass. Here are links to the <a target="_blank" href="http://macdevelopertips.com/book-reviews/cocoa-programming-part-i.html">first</a> and <a target="_blank" href="http://macdevelopertips.com/book-reviews/cocoa-programming-part-ii.html">second</a> parts of this review.</p>
<p>In this post I&#8217;ll review a few highlights of the book as well as offer a few suggestions (from my perspective) for improvement should another edition be forthcoming. Let&#8217;s begin with the highlights.<br />
<span id="more-250"></span></p>
<p><strong>Highlights:</strong><br />
Early on in the book, I like how Aaron points out how an inexperienced Cocoa programmer might go about solving a problem versus how the &#8220;old hand&#8221; goes about accomplishing the same objective. I think most everyone new to a tool, language or framework leans toward whats familar or comfortable when learning. However, Aaron saves you from yourself by pointing out that what might seem like the right approach may not necessarily be the case when working with Objective-C and/or Cocoa. </p>
<p>Aaron often ends chapters with a &#8220;For the More Curious&#8221; section, which takes a deeper look and/or offers tips and tricks relevant to topics covered in the chapter. Along the same lines, some chapters include a &#8220;Challenge&#8221; which suggests how one might go about extending examples or otherwise writing code to build on concepts within the chapter.</p>
<p>Aaron has a knack for describing concepts in an easy to understand manner. For example, working with memory management using retain/release is often a common trouble spot for developers new to Cocoa/Objective-C. When explaining retain counts, Aaron states &#8220;an objects retain count should represent how many other objects have reference to it.&#8221; A simple explanation that makes it clear the relevance of a retain count and how that relates to an object&#8217;s lifetime. It&#8217;s not that the retain/release cycle is difficult to understand, it&#8217;s more about wrapping your brain around a visual that works and one that you can remember.</p>
<p><a href="http://www.amazon.com/gp/product/0321503619?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321503619" target="_blank"><img src="http://macdevelopertips.com/images/ads/cocoa-book.jpg" alt="" align="left" /></a></p>
<p><strong>Suggestions:</strong><br />
As mentioned above, there are challenges presented at the end of various chapters to provide suggestions for building upon code examples. What I would find interesting and a good learning tool would be for the author provide a solution to each challenge. Given there are typically many ways to approach solving a problem, having the opportunity to see how someone else approached the same problem would be very enlightening.</p>
<p>The back covers makes reference to the developer tools covered in the book: Xcode, Interface Builder and Instruments. Although the first two are used consistently throughout the book, Instruments is given just 2 1/2 pages, one which consists of two figures showing Instruments running. I would of expected more coverage of Instruments given it&#8217;s prominent placement and acknowledgment on the back cover.</p>
<p>On the nitpicking side, it would be nice to see updated object hierarchy diagrams. Given this is the third edition, and is often seen as the Cocoa book to have, updating the diagrams with a little more visual appeal would be a nice addition. On a similar note, I was impressed with the use of color in the book <a target="_blank" href="http://macdevelopertips.com/book-reviews/xcode-3-unleashed-part-i.html">Xcode 3 Unleashed</a>. Given Addison-Wesley is the publisher of both books, hopefully the addition of color figures and code examples will be on the docket for the next edition.</p>
<p><strong>Final Summary:</strong><br />
Teaching and writing must come naturally for Aaron, as it sure comes across that way. The content flows naturally, is well thought out and explained in a concise and easy to understand manner. This is an excellent reference for developers looking to learn the ropes of Cocoa programming.</p>
]]></content:encoded>
			<wfw:commentRss>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-iii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cocoa Programming &#8211; Part II</title>
		<link>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-ii.html</link>
		<comments>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-ii.html#comments</comments>
		<pubDate>Fri, 26 Sep 2008 08:23:34 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://MacDeveloperTips.com/?p=249</guid>
		<description><![CDATA[This post is the second in a series reviewing the book Cocoa Programming, by Aaron Hillegass. This part of the review is dedicated to a closer look at the code examples. Starting from Chapter 2, the book dives into building relevant code examples. Working with Xcode and Interface Builder, you&#8217;ll quickly become familiar with the [...]]]></description>
			<content:encoded><![CDATA[<p>This post is the second in a series reviewing the book <a href="http://www.amazon.com/gp/product/0321503619?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321503619 " target="_blank">Cocoa Programming</a>, by Aaron Hillegass. This part of the review is dedicated to a closer look at the code examples.</p>
<p>Starting from Chapter 2, the book dives into building relevant code examples. Working with Xcode and Interface Builder, you&#8217;ll quickly become familiar with the interface and interaction among both tools. There is even a short segue into the basics of debugging in Chapter 3.<br />
<span id="more-249"></span></p>
<p>There is a division of examples that are tied solely to one chapter, and those that extend over a range of chapters. I typically favor the former, short concise examples that are working pieces of code. With this approach, you can open the book to most any chapter and quickly grab what you need. Aaron does a nice job of using both approaches. Even when examples are used across multiple chapters, code is clearly managed/added in logical blocks, that make longer examples easier to follow.</p>
<p><a href="http://www.amazon.com/gp/product/0321503619?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321503619" target="_blank"><img src="http://macdevelopertips.com/images/ads/cocoa-book.jpg" alt="" align="left" /></a></p>
<p>You can download the code examples, and once unarchived you&#8217;ll find that each example is packaged as an Xcode project. This is really nice as all you have to do is double click the project file and you are good to go.</p>
<p>Unlike the XCode 3 Unleased book, in which examples were all shown in color (as were all figures), this book takes the more traditional approach, white pages, black text. To its credit, the code examples make good use of bold text to callout specific concepts and notes. </p>
<p>Overall, the code examples are quite helpful and do a good job of backing up the what the author is describing. You can download the source code for the examples <a href="http://www.bignerdranch.com/solutions/Cocoa-3rd.tgz">here</a>.</p>
<p>In the third and final post in this series, I wrap up with a quick review of highlights of the book as well as a few suggestions for improvements in the next edition.</p>
]]></content:encoded>
			<wfw:commentRss>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-ii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cocoa Programming &#8211; Part I</title>
		<link>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-i.html</link>
		<comments>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-i.html#comments</comments>
		<pubDate>Tue, 23 Sep 2008 07:01:23 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://MacDeveloperTips.com/?p=248</guid>
		<description><![CDATA[This post is the first in a series reviewing the book Cocoa Programming, by Aaron Hillegass. Let me begin by saying, Aaron&#8217;s know the topic of Cocoa programming. As a previous employee of NeXT which merged with Apple, Aaron has extensive experience teaching developers, including many Apple Engineers, how to write applications for Mac OS [...]]]></description>
			<content:encoded><![CDATA[<p>This post is the first in a series reviewing the book <a href="http://www.amazon.com/gp/product/0321503619?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321503619 " target="_blank">Cocoa Programming</a>, by Aaron Hillegass.</p>
<p>Let me begin by saying, Aaron&#8217;s know the topic of Cocoa programming. As a previous employee of NeXT which merged with Apple, Aaron has extensive experience teaching developers, including many Apple Engineers, how to write applications for Mac OS X.<br />
<span id="more-248"></span></p>
<p>After a brief history lesson of how NeXT Computer (founded by Steve Jobs upon leaving Apple) evolved and Cocoa came to life, Aaron dives into what most all of us developers crave from the get go, writing an application. Aaron walks through creating a simple program that ties together Xcode (developer IDE), Interface Builder (GUI layout tool) and Objective-C. There&#8217;s enough covered here to get the big picture view of how to build applications the Apple way.</p>
<p>The next step (no pun intended) is a closer looker at Objective-C. Although the details are left to other books/references (as would be expected) there is a good coverage of working with classes, basic data structures/types and a smattering of other topics that provide enough information for those who are new to both Cocoa and Objective-C to follow along as the book progresses.</p>
<p><a href="http://www.amazon.com/gp/product/0321503619?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321503619" target="_blank"><img src="http://macdevelopertips.com/images/ads/cocoa-book.jpg" alt="" align="left" /></a></p>
<p>The next chapter is all about memory management. With the release of Mac OS X 10.5 (Leopard) Apple introduced garbage collection as option for  memory management. Prior to GC, it was your responsibility as the developer to properly retain and release all objects. One caveat worth mentioning, if you are focused solely on iPhone development, you might as well skim or altogether skip learning about garbage collection as the iPhone does not offer GC support.</p>
<p>The book continues in this very methodical manner: presenting a concept, describing relevant methods within the framework, diagramming object relationships, inserting figures/screenshots, and more often than not, showing code examples to demonstrate concepts. What follows is the list of chapters covered in the book, an extensive list for sure:</p>
<p>Chapter 1. Cocoa: What Is It?<br />
Chapter 2. Let&#8217;s Get Started<br />
Chapter 3. Objective-C<br />
Chapter 4. Memory Management<br />
Chapter 5. Target/Action<br />
Chapter 6. Helper Objects<br />
Chapter 7. Key-Value Coding; Key-Value Observing<br />
Chapter 8. NSArrayController<br />
Chapter 9. NSUndoManager<br />
Chapter 10. Archiving<br />
Chapter 11. Basic Core Data<br />
Chapter 12. Nib Files and NSWindowController<br />
Chapter 13. User Defaults<br />
Chapter 14. Using Notifications<br />
Chapter 15. Using Alert Panels<br />
Chapter 16. Localization<br />
Chapter 17. Custom Views<br />
Chapter 18. Images and Mouse Events<br />
Chapter 19. Keyboard Events<br />
Chapter 20. Drawing Text with Attributes<br />
Chapter 21. Pasteboards and Nil-Targeted Actions<br />
Chapter 22. Categories<br />
Chapter 23. Drag-and-Drop<br />
Chapter 24. NSTimer<br />
Chapter 25. Sheets<br />
Chapter 26. Creating NSFormatters<br />
Chapter 27. Printing<br />
Chapter 28. Web Service<br />
Chapter 29. View Swapping<br />
Chapter 30. Core Data Relationships<br />
Chapter 31. Garbage Collection<br />
Chapter 32. Core Animation<br />
Chapter 33. A Simple Cocoa/OpenGL Application<br />
Chapter 34. NSTask<br />
Chapter 35. The End</p>
<p>In the next section of this review, I’ll provide some insight as to the code examples included in the book.</p>
]]></content:encoded>
			<wfw:commentRss>http://MacDeveloperTips.com/book-reviews/cocoa-programming-part-i.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Xcode 3 Unleashed, Part III</title>
		<link>http://MacDeveloperTips.com/general/xcode-3-unleashed-part-iii.html</link>
		<comments>http://MacDeveloperTips.com/general/xcode-3-unleashed-part-iii.html#comments</comments>
		<pubDate>Thu, 11 Sep 2008 12:03:18 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://MacDeveloperTips.com/?p=245</guid>
		<description><![CDATA[This post is the third in a series on the book Xcode 3 Unleashed, by Fritz Anderson. I&#8217;ll wrap up the review in this post by covering both highlights of the book and suggestions for future editions. Highlights Let&#8217;s begin with the highlights of this book, and there are many. You&#8217;ll notice from the moment [...]]]></description>
			<content:encoded><![CDATA[<p>This post is the third in a series on the book <a href="http://www.amazon.com/gp/product/0321552636?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321552636" target="_self">Xcode 3 Unleashed</a>, by Fritz Anderson. I&#8217;ll wrap up the review in this post by covering both highlights of the book and suggestions for future editions.</p>
<p><strong>Highlights</strong><br />
Let&#8217;s begin with the highlights of this book, and there are many. You&#8217;ll notice from the moment you crack open the book, it&#8217;s filled with color. Not just color figures, all code examples are in color, as in, color syntax highlighting. And the colors match what you&#8217;ll find in Xcode, how cool is that?<br />
<span id="more-245"></span></p>
<p>The author does a nice job of calling out concepts that have not yet been explained, or are otherwise outside the scope of the book. You&#8217;ll find notes about points of interest based on the topic on hand, explanation of terms used that are to be covered later in the book, as well as insightful tips/tricks.</p>
<p>The integration of concepts into the examples is well thought out. For example, when moving from the command line version of the application to the MVC design pattern, Fritz opts to use the command line tool as is, and essentially embed the tool into another project. This is a nice approach as you get to see how to work with application bundles, targets and dependencies.</p>
<p><a href="http://www.amazon.com/gp/product/0321552636?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321552636" target="_blank"><img src="http://macdevelopertips.com/images/ads/xcode3.jpg" alt="" align="left" /> </a></p>
<p>The coverage on most all topics is quite deep. This is a good thing from the perspective of the sheer volume of information available in the book. Which is a good segue into talking about areas where I think the book could be improved upon for a future edition.</p>
<p><strong>Suggestions</strong><br />
Continuing the thought from above on deep coverage of information, to his credit, it&#8217;s obvious that Fritz clearly knows Xcode and development on a Mac. And on that same line of thought, this experience is used any number of times to deep dive into various topics. The downside is that unless you are experienced with Mac development, it&#8217;s easy to get lost in the details. The back cover of the book lists the &quot;User Level&quot; as beginner to experienced. For the former, it would be helpful to offer smaller, bite size examples to grasp concepts. More than once I found myself longing for more self-contained examples, rather than always building upon one example throughout the first section of the book.</p>
<p>In Chapter 20, Navigating an Xcode Project, the author covers many of the nuances of working with the Xcode development environment. From my perspective, I would of found this much more valuable as an early chapter in the book. The reason being, since most all topics revolve around using the Xcode environment, I think a better understanding of the interface would be helpful as one goes about building projects and learning other concepts.</p>
<p>Although the book does a good job of integrating concepts into the examples, the one drawback is that without clear references to such information in either the Table of Contents or the index, if you ever want to come back to the topic at a later date, it can be hard to track down. This realization came about when I was reading about how to integrate one project into another (mentioned above as a highlight of the book) and when I thought about how I would find this information again in the future, I couldn&#8217;t find a reference in either the Table of Contents or the index. Not a big deal for sure, however, the little details such as this would go a long ways to make this book a good reference for the future.</p>
<p>All in all a very good book, with extensive coverage on all things Xcode. Good use of examples, quite readable (the color coded examples and figures are a nice addition) and written by someone cleary well versed on developing applications for the Mac.</p>
<p>I&#8217;ll wrap up this series of posts on Xcode 3 Unleashed by posting two tips that are derived from information in the book.</p>
]]></content:encoded>
			<wfw:commentRss>http://MacDeveloperTips.com/general/xcode-3-unleashed-part-iii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode 3 Unleashed, Part II</title>
		<link>http://MacDeveloperTips.com/book-reviews/xcode-3-unleashed-part-ii.html</link>
		<comments>http://MacDeveloperTips.com/book-reviews/xcode-3-unleashed-part-ii.html#comments</comments>
		<pubDate>Wed, 10 Sep 2008 10:05:48 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://MacDeveloperTips.com/?p=244</guid>
		<description><![CDATA[This post is a continuation of Part I of the book review of Xcode 3 Unleashed, by Fritz Anderson. Unlike the first section of the book, in the second half all topics are self-contained, that is, they are not tied into one example. This section begins with an in-depth look at working with Xcode projects. [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a continuation of <a href="http://macdevelopertips.com/book-reviews/xcode-3-unleashed-part-i.html">Part I of the book review</a> of <a href="http://www.amazon.com/gp/product/0321552636?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321552636" target="_blank">Xcode 3 Unleashed</a>, by Fritz Anderson.</p>
<p>Unlike the first section of the book, in the second half all topics are self-contained, that is, they are not tied into one example. This section begins with an in-depth look at working with Xcode projects. You&#8217;ll learn about code specific features such as code completion to folding/hiding blocks of code; class related activities such as a class browser and class modeler (visual representation of hierarchies); and optional layouts of content within Xcode, including the default, all-in-one and condensed. <span id="more-244"></span></p>
<p>The chapter &quot;Xcode for make veterans&quot; is an interesting exploration of the build system (a front-end for gcc), with the content specifically targeted to those who come from a development background (e.g. C) who are used to working with make files.</p>
<p><a href="http://www.amazon.com/gp/product/0321552636?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321552636" target="_blank"><img src="http://macdevelopertips.com/images/ads/xcode3.jpg" alt="" align="right" /> </a></p>
<p>One chapter that stood out for me was &quot;More About Debugging,&quot; the reason being, the timeliness of reading this chapter couldn&#8217;t of been better. The debugging features in Xcode are rather intuitive, however, when you want more than a highlevel step-through and viewing of variables, you need to dig a little deeper into the capabilities of Xcode. One good example is how to use data formatters, which allow viewing of complex data that would not otherwise be visible.</p>
<p>Another interesting chapter covers how to work with projects that were not originally built using Xcode. The example in the chapter &quot;A Legacy Project&quot; revolves around an open source project, TesseractOCR, this application converts an image (TIFF file of scanned text) and generates a text file as the output. An interesting project, in and of itself.</p>
<p>This section also includes coverage of the Shark profiling tool as well as a look at Instruments, a tool released with Xcode 3 that offers an impressive set of &quot;instruments&quot; for monitoring everything from file activity to process heap (think memory leaks) to network activity.</p>
<p>Here is a listing of the Table of Contents for Part II of the book:</p>
<p>Part II: Xcode Tasks</p>
<p>Chapter 20: Navigating an Xcode Projec<br />
Chapter 21: Xcode for make Veterans<br />
Chapter 22: More About Debugging<br />
Chapter 23: Xcode and Speed<br />
Chapter 24: A Legacy Project<br />
Chapter 25: Shark and the CHUD Tool<br />
Chapter 26: Instruments<br />
Chapter 27: Closing Snippet</p>
<p>In the next post I&#8217;ll take a look at some of the highlights of the book, as well as point out a few suggestions where I think the book could be improved up in a future edition.</p>
]]></content:encoded>
			<wfw:commentRss>http://MacDeveloperTips.com/book-reviews/xcode-3-unleashed-part-ii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode 3 Unleashed, Part I</title>
		<link>http://MacDeveloperTips.com/book-reviews/xcode-3-unleashed-part-i.html</link>
		<comments>http://MacDeveloperTips.com/book-reviews/xcode-3-unleashed-part-i.html#comments</comments>
		<pubDate>Tue, 09 Sep 2008 09:06:52 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://MacDeveloperTips.com/?p=243</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>What follows is the first post of three, reviewing the book <a href="http://www.amazon.com/gp/product/0321552636?ie=UTF8&#038;tag=macdevelopertips-20&#038;link_code=as3&#038;camp=211189&#038;creative=373489&#038;creativeASIN=0321552636">Xcode 3 Unleashed</a>, by Fritz Anderson.</p>
<p>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.</p>
<p>I&#8217;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&#8217;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&#8217;t in a book. Once the review is complete, I&#8217;ll write one or two posts (tips) that are based on information from the book. Let&#8217;s get started.<br />
<span id="more-243"></span></p>
<p><strong>Part I: The Life Cycle of a Mac OS X Application </strong><br />
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).<br />
<!--more--> 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.</p>
<p><a href="http://www.amazon.com/gp/product/0321552636?ie=UTF8&amp;tag=macdevelopertips-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0321552636" target="_blank"><img src="http://macdevelopertips.com/images/ads/xcode3.jpg" alt="" align="left" /> </a></p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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&#8217;t match the current version of Xcode (I have the latest release installed). However, I know from experience when writing technical content it&#8217;s no trivial undertaking to keep screenshots current with software releases. Differences that I did encounter did not inhibit working through the examples. </p>
<p>Let&#8217;s wrap up this this part of the review with a listing of the Table of Contents for Part I of the book:</p>
<p style="margin: 0px;"><strong>Part I: The Life Cycle of a Mac OS X Application </strong></p>
<p style="margin: 0px;">Chapter 1: Kicking the Tires</p>
<p style="margin: 0px;">Chapter 2: Simple Workflow and Passive Debuggin</p>
<p style="margin: 0px;">Chapter 3: Simple Active Debugging</p>
<p style="margin: 0px;">Chapter 4: Compilation: The Basics</p>
<p style="margin: 0px;">Chapter 5: Starting a Cocoa Applicatio</p>
<p style="margin: 0px;">Chapter 6: A Cocoa Application: Views</p>
<p style="margin: 0px;">Chapter 7: A Cocoa Application: Controllers</p>
<p style="margin: 0px;">Chapter 8: Version Contro</p>
<p style="margin: 0px;">Chapter 9: Property Lists</p>
<p style="margin: 0px;">Chapter 10: Libraries and Dependent Target</p>
<p style="margin: 0px;">Chapter 11: File Packages and Bundle</p>
<p style="margin: 0px;">Chapter 12: Unit Testin</p>
<p style="margin: 0px;">Chapter 13: Creating a Custom Vie</p>
<p style="margin: 0px;">Chapter 14: Dynamic Libraries and Framework</p>
<p style="margin: 0px;">Chapter 15: Documentation in Xcod</p>
<p style="margin: 0px;">Chapter 16: Using the Data Modeling Tool</p>
<p style="margin: 0px;">Chapter 17: Cross-Developmen</p>
<p style="margin: 0px;">Chapter 18: Spotlight (or, How to Build a Plug-in)</p>
<p style="margin: 0px;">Chapter 19: Finishing Touches</p>
<p>In the next post I&#8217;ll continue the review, focusing on the second half of the book, <strong>XCode Tasks</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://MacDeveloperTips.com/book-reviews/xcode-3-unleashed-part-i.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

