Xcode 4 Unleashed

( 2 )


In Xcode 4 Unleashed, renowned Mac/iOS developer Fritz Anderson shows how to use Apple’s powerful new Xcode 4 integrated development environment to develop outstanding software with the least effort possible.

Anderson demonstrates Xcode 4 by walking through the construction of three full applications: a command-line tool, an iOS app, and a Mac OS X application. These case-study projects offer practical insights and realistic best practices for ...

See more details below
BN.com price
(Save 27%)$44.99 List Price

Pick Up In Store

Reserve and pick up in 60 minutes at your local store

Other sellers (Paperback)
  • All (18) from $1.99   
  • New (6) from $27.19   
  • Used (12) from $1.99   
Xcode 4 Unleashed

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac

Want a NOOK? Explore Now

NOOK Book (eBook)
BN.com price
(Save 44%)$35.99 List Price


In Xcode 4 Unleashed, renowned Mac/iOS developer Fritz Anderson shows how to use Apple’s powerful new Xcode 4 integrated development environment to develop outstanding software with the least effort possible.

Anderson demonstrates Xcode 4 by walking through the construction of three full applications: a command-line tool, an iOS app, and a Mac OS X application. These case-study projects offer practical insights and realistic best practices for efficiently utilizing Xcode 4 in day-to-day development.

Next, he drills down to offer an even deeper understanding of Xcode 4’s most powerful capabilities. Through practical examples, he shows experienced Apple developers how to move to Xcode 4’s “browser” model from older document-based approaches. You’ll also find thorough, up-to-the-minute coverage of key tasks ranging from builds and profiling to documentation.

He concludes with a chapter-length roundup of “tips, traps, and features” for maximizing your productivity with Xcode 4—whether you’re writing iOS apps or Mac applications, working solo, or as part of a large development team.

Detailed information on how to…

  • Get started fast with Xcode 4 project workflow
  • Master Xcode 4’s new features and development paradigms
  • Construct modern iOS and Mac user interfaces with Interface Builder
  • Implement Model-View-Controller designs in iOS apps
  • Use Storyboard to specify an iOS app’s entire structure in one file
  • Leverage Xcode’s first-class unit testing and measurement tools
  • Master the essentials of iOS provisioning
  • Use Mac OS X bindings to simplify the link between data and screen
  • Quickly localize Mac and iOS software for new languages and markets
  • Package and share subprograms that can be integrated into any OS X application
  • Use the Xcode Build System to move from source files to executable products
  • Fully understand and optimize performance and resource usage
Register your copy today at informit.com/register to download a free 90+ page guide to 4.4 & 4.5 feature changes
Read More Show Less

Editorial Reviews

From the Publisher
Praise for Xcode 4 Unleashed
“There are many great resources out there for learning iOS and Mac development that cover Objective-C and Cocoa. Xcode is an extremely important part of iOS and Mac development that often gets overlooked. You owe it to yourself to understand Xcode and all of its quirks and power user features to achieve maximum efficiency as a developer. Xcode 4 Unleashed can help you do just that.”
—Tony Hillerson, Member and Software Architect, Tackmobile.com

“Fritz Anderson’s Xcode Unleashed series is the definitive guide to using Xcode. Xcode 4 Unleashed has been rewritten to cover the sweeping changes in recent versions of the product. I highly recommend this book to anyone who uses Xcode—newbies and grizzled veterans alike.”
—Duncan Champney, Director of Software Development, WareTo

Praise for Xcode 3 Unleashed
“I would recommend this book to anyone that is serious about programming on the Mac. It is an excellent resource; I plan to refer to it often.”
—Cortis Clark

“I’ve been doing Mac OS X development for seven years, so I was surprised at how much new information I learned in his book. The details on building and the overview of Instruments were invaluable.”
—Dan Wood, Karelia Software

“There isn’t a better book on the market to understand Apple’s powerful—yet free integrated development environment, Xcode. Fritz Anderson stands among the most literate programmers I know, simultaneously able to provide a high-level development narrative while delving into the countless crucial details that make up modern development. I recommend Xcode 3 Unleashed to both novices as an introduction and professionals as a reference.”
—Jonathan ‘Wolf’ Rentzsch, http://rentzsch.com

“Whether you are new to programming on Mac OS X or a seasoned veteran, Xcode 3 Unleashed has something for you. The book is full of examples and practical information. I recommend this book for anyone doing serious development on Mac OS X 10.5.”
—Dave Dribin

Read More Show Less

Product Details

  • ISBN-13: 9780672333279
  • Publisher: Sams
  • Publication date: 5/25/2012
  • Series: Unleashed Series
  • Edition number: 2
  • Pages: 768
  • Sales rank: 1,446,040
  • Product dimensions: 6.90 (w) x 9.00 (h) x 1.20 (d)

Meet the Author

Fritz Anderson has been writing software, books, and articles for Apple platforms since 1984. He has worked for research and development firms, consulting practices, and freelance. He was admitted to the Indiana bar, but thought better of it. He is now an iOS and Mac programmer for the Scholarly Technology department at the University of Chicago. He has two daughters.
Read More Show Less

Table of Contents

Introduction 1
Part I First Steps

1 Getting Xcode 9
Before You Do Anything 9
Requirements 10
Installing Xcode. 10
What You Get 11
Removing Xcode. 12
Apple Developer Programs 12
Through an Installer Package 13
Summary 15

2 Kicking the Tires 17
Starting Xcode 17
Hello World 19
A New Project 19
Quieting Xcode Down 21
Building and Running 21
The Real Thing 23
Getting Rid of It 23
Summary 24

3 Simple Workflow and Passive Debugging 25
Building 28
Running 30
Simple Debugging 32
Summary 33

4 Active Debugging 35
A Simple Test Case 35
Going Active 35
Setting a Breakpoint. 36
The Variables Pane 37
Stepping Through 38
Fixing the Problem 40
Behaviors 40
The Fix 42
Summary 43

5 Compilation 45
Compiling 46
Linking 50
Dynamic Loading 51
Xcode’s Refinements 52
Compiler Products 55
Intermediate Products 55
Precompiled Headers 56
Summary 56

6 Adding a Library Target 57
Adding a Target 57
Targets 58
Target Membership 58
Adding Files to a Target 59
Headers in Targets 61
A Dependent Target 62
Adding a Library 63
Debugging a Dependent Target 63
Summary 64

7 Version Control 65
Taking Control 66
Creating a Git Repository by Hand 66
The State of Your Files 68
How Subversion Views Files 68
How Git Views Files 68
How Xcode Views Files 69
Your First Commit 70
Adding a Remote Repository 71
Setting Up the Remote 71
Pushing to the Remote 72
Starting from a Repository 74
Merges and Conflicts 75
User A 75
User B 75
Merging 76
Conflicts 77
The Versions View 79
Comparison 79
Blame 81
Log 82
Branching 82
Summary 84

Part II The Life Cycle of an iOS Application

8 Starting an iOS Application 87
Planning the App 87
Model-View-Controller 87
The Model 88
The Views 89
The Controllers 90
Starting a New iPhone Project 90
Target Editor 92
Copyright, Again 93
One More Thing 97
Summary 98

9 An iOS Application: Model 99
Implementing the Model 99
Entities 100
Attributes 100
Relationships 102
Managed-Object Classes 105
Creating the Classes 105
Extending the Classes 106
Some Test Data 108
Making the Model Easier to Debug 111
Summary 111

10 An iOS Controller 113
Renaming Symbols 113
Refactoring a Method Name 114
Refactoring a Class Name 114
Editing the View Controller 116
The Table View 116
Setting Up the Passer List 117
Creating a New Passer 117
Live Issues and Fix-it 118
The Real Passer Rating 120
Another Bug 120
Running Passer Rating 123
Summary 125

11 Building a New View 127
Adding a View Controller 127
XIB Files 128
Building a View 130
Lots of Labels 132
First Tryout 134
Outlets 134
Checking Connections 137
Connecting GameListController 137
Code Completion and Snippets 139
Testing the Passer Detail View 141
Summary 141

12 Adding Table Cells 143
The Game Table 143
Schemes 147
A Custom Table Cell 149
Summary 154

13 Unit Testing 155
Logic Testing 156
Test Data 158
Testing the CSV Reader 159
Application Testing 166
SenTestingKit Assertions 168
Simple Tests 169
Equality 169
Exceptions 169
Summary 170

14 Measurement and Analysis 173
Speed 173
Memory 182
Allocations 182
Leaks 187
Zombies 189
Analysis 193
The Analyzer 193
Automatic Reference Counting 195
Summary 196

15 Storyboard 197
What Storyboard Is 197
A Storyboard Project 199
Reconstructing Passer Rating 201
Workspaces 201
Copying the Model 203
Coding the Passer List 205
Copying Views 205
A Custom Table View Cell 207
Adding a Passer Editor 210
Creating the Editor View 210
Coding the Editor Controller 212
Adding a Segue 215
Editing an Existing Passer 217
Summary 219

16 Provisioning 221
Developer Programs 221
Organizations 221
Individuals 222
The Enterprise Program 222
The Provisioning Story 222
Automatic Device Provisioning 223
The Provisioning Portal 225
Development Certificates 225
Distribution Certificates 225
Device IDs 226
Application IDs 227
Development Profiles 228
Distribution Profiles 229
Using a Signing Identity 230
Distribution Builds 231
Sharing Identities and Profiles 233
Preparing an App Store Release 234
Final Provisioning 234
iTunes Connect 234
Validating and Submitting 235
Summary 236

Part III Xcode for Mac OS X

17 Starting a Mac OS X Application 239
The Goal 239
Getting Started 240
Model 243
Porting from iOS 243
Automatic Reference Counting 246
Making the Application Twitch 248
Wiring Up a Menu 248
Loading Data into LeagueDocument 250
Summary 251

18 Wiring a Mac Application with Bindings 253
Filling the Document Window 253
A Table View 254
Autoresizing 255
Your First Object Controller 258
Binding the Team Table 260
Running Bindings 260
Laying Out Views 263
The Passer and Game Array Controllers 264
Binding the Passer Table 266
The Game Table—Truncation and Dates 268
The Game Popover 269
Summary 273

19 A Custom View for Mac OS X 275
A Graphing View 276
Back to the View Controller 279
Using PasserGraphController 281
Custom View Properties 282
Summary 283

20 Localization and Autolayout 285
Adding a Localization 286
Trying It Out 287
Localizing MainMenu.xib 288
Localizing the Window XIBs 291
Translating View Strings 291
Making the Text Fit—by Hand 292
Making the Text Fit—Autolayout 292
Localizing Info.plist 300
Strings in Code 302
Summary 306

21 Bundles and Packages 307
A Simple Package: RTFD 308
Bundles 309
Application Bundles 309
The Info.plist File 311
Localizing Info.plist 312
Info.plist Keys 312
Keys for All Bundles 312
Keys for iOS and Mac OS X Applications 314
Keys for Mac OS X Applications 315
iOS Keys 320
Keys for Plug-ins 322
Keys for Preference Panes 323
Keys for Dashboard Widgets 323
Summary 324

22 Frameworks 325
Adding a Framework Target 326
Populating the Framework 326
Using the Framework 327
Installing a Framework 327
Running the Application Alone 328
Where Frameworks Are Found 330
Putting the Framework in the Application 331
Building Mac Passer Rating 332
One More Thing 332
Summary 336

23 Property Lists 337
Property List Types 337
Editing Property Lists 338
A Brand New Property List 341
Why Not the Property List Editor? 345
Other Formats 348
Text Property Lists 348
Binary Property Lists 348
Specialized Property Lists 349
Summary 350

Part IV Xcode Tasks

24 Xcode 4 for Xcode 3 Veterans 353
The Desktop and the Browser 353
Start Slow 354
The Sorcerer’s Apprentice 355
The Editor 355
The Assistant Editor 355
More Than One Editor 356
Building 358
Where Did Everything Go? 358
Groups & Files 358
Detail View 360
Info Windows 360
Special-Purpose Editors 362
Browsers 364
Source Control 364
Interface Builder. 365
Other Changes 366
Summary 368

25 Documentation in Xcode 369
Intrinsic Help 369
The Quick Help Inspector 369
The Quick Help Popover 370
Open Quickly 371
Help 372
Xcode How-To’s. 373
The Documentation Organizer 373
Browsing Documentation 373
Searching Documentation 374
Bookmarks 375
Keeping Current 375
Generating Documentation 377
Installing Doxygen 378
What Doxygen Does 378
Configuring Doxygen: The Wizard 381
Configuring Doxygen: Expert Settings 383
Running Doxygen 384
Installing a Docset 385
Making Doxygen Part of Your Builds 386
Summary 388

26 The Xcode Build System 389
Xcode Build Variables 392
Settings Hierarchy 393
Editing Build Variables 395
Configurations 396
Adjusting Configurations 396
Adding Configurations 398
Configuration Files 398
Creating a Configuration File 398
SDK- and Architecture-Specific Settings 399
Preprocessing xcconfig Files 399
The xcodebuild Tool 400
Custom Build Rules 401
The Build Log 403
A Simple Build Transcript 404
Resources 406
Precompiled Header 407
Compiling Source Files 408
Linking 409
Making a Universal Binary 410
Touch 410
Summary 410

27 Instruments 411
What Instruments Is 411
Running Instruments 412
The Trace Document Window 413
The Library 419
Instrument Configuration 420
Recording 421
Saving and Reopening 423
The Instruments 424
Core Data. 424
Custom Instruments 425
Dispatch 425
File System 425
Garbage Collection 426
Graphics 426
Input/Output 426
Master Tracks 426
Memory 426
System 427
Threads/Locks 429
UI Automation 429
User Interface. 430
Instruments Available to iOS 430
Custom Instruments 431
The Templates 433
For Both Mac and iOS 433
iOS Only 434
Mac Only 435
Summary 435

28 Snippets 437
Tricks 437
General 437
The Jump Bar 440
Code Folding Ribbon 440
The Assistant Editor 441
Interface Builder 442
Instruments and Debugging 443
Building 445
Managing Schemes 447
Traps 448

Part V Appendixes

A Objective-C 455
The Basics 456
A Class Interface 457
A Class Implementation 458
Objective-C 2.0 and Cocoa. 460
Key-Value Coding 461
Memory Management 462
Attribute Accessors and Memory Management 463
Properties 464
Fast Enumeration 467
Foundation Data Types 468
Dynamic Dispatch 470
Objective-C++. 471
Summary 471

B Some Build Variables 473
Useful Build Variables 475
Environment 475
Build Targets 477
Source Locations 478
Destination Locations 478
Bundle Locations 479
Compiler Settings 480
Search Paths 481
Deployment 482
Info.plist 482
Source Trees 483

C Project and Target Templates 485
iOS Project Templates 487
Application 487
Framework & Library 488
Other 488
Mac OS X Project Templates 489
Application 489
Framework & Library 490
Application Plug-in 491
System Plug-in 492
Other 492
Target Templates 493
iOS File Templates 493
Cocoa Touch 493
C and C++. 494
Core Data. 495
Resource 495
Other 496
Mac OS X File Templates 496
Cocoa 496
C and C++. 496
User Interface 497
Core Data 497
Resource 497
Other 497
The File Template Library 497

D Resources 499
Books 499
On the Net 500
Forums 500
Mailing Lists 501
Developer Technical Support 501
Sites and Blogs 502
Face-to-Face 503
Meetings 503
Classes 503
Other Software. 504
Text Editors 504
Accessories 505
Index 507

Read More Show Less

Customer Reviews

Average Rating 3
( 2 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Posted December 31, 2012

    This author thinks that publishing a book in 2012 that goes no f

    This author thinks that publishing a book in 2012 that goes no further than Xcode 4.2 (OMG) is a good thing. Give me a break! We are all now at Xcode 4.5.2 and iOS 6, with significant changes! But this criticism is minor, honestly, to be fair, because every decent book regarding Apple Apps is dated within 3-6 months. However, this particular book, in my opinion, is downright egregious, because (1) the author seems to think that his inside jokes laid down every 4th or 5th line of the book is OK. This gets very tedious, extremely tiresome, and downright obnoxious. And (2) the author thinks that he must drag the reader through everything kind of mishap that might occur, one purposely placed code or design bug at a time, one right after another. ARGGHHH! The real joke is that his books requires a sophisticated reader/practitioner. Nobody in their right mind would pick up this book with little or no programming experience. Anybody looking to work through this book is a SERIOUSLY experienced programmer. I have 45+ years of programming under my belt and the absolute VERY last thing I need is to have a self-aggrandizing author who wishes to drag me through one purposefully screwed-up code after another, just to "teach" me how to "properly" create a text-field and a button. ARRGGGHHHHH!! This book should be pulled from the shelves.

    Was this review helpful? Yes  No   Report this review
  • Posted May 25, 2012

    I Also Recommend:

    This is a great piece of work. It teaches Xcode in great detail yet it's pleasant to read.

    I preordered this book before the release date only because of the title. I've been using Xcode for over a year -- first Xcode 3 and then Xcode 4 when it came out -- but I never fully understood all its functionality. I had Richard Wendtk's book "Xcode 4", which was in print remarkably soon after Xcode 4 itself was released. That's a good book with lots of solid information. It taught me a lot but it doesn't cover everything. Anderson's book is at least as good and probably better. If you want to know as much as possible about Xcode you need both but if you only buy one, I think Anderson's is the better choice. It has great depth and detail on lots of topics and the author has a clear and easy-to-read style even though he's writing about some pretty complicated stuff. Clearly a huge amount of hard work went into preparing this book.

    The first day it arrived I started reading around page 19, "Hello World", even though I knew how to start a new project. I expected to sample topics here and there but instead I found myself reading page-after-page continuously up to about page 100. The topics on those pages were things I thought I already knew but I kept reading because the topics were presented so clearly and because I kept coming across things that I actually didn't know and probably would not have found on my own. And I kept having "Aha!" moments, which was pleasant. I'm not stopping at page 100, I just haven't had time to read further yet.

    He uses a running example project to illustrate the concepts. The project is well chosen for the purpose and quite simple, so you don't have to struggle to understand the project in order to learn about Xcode. And he doesn't overemphasize the project as many authors do, and which I find annoying. The index looks extensive and well organized but I haven't used it much yet.

    I think this will be one of my favorite iOS books.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)