Welcome to the TUAW Holiday Gift Guide! We've sorted the treasure from the junk and are serving up suggestions to make your holiday gift-giving a little easier.
Chances are, if you're reading this post and this site, someone you know -- maybe you yourself -- has thought about learning to develop for iOS. For the person on your gift list who's got ambitions of coding the next Angry Birds, you can certainly pick out some items that will ease the path up to the mountaintop.
The biggest challenge for the gift-giver is knowing where to start; you've got to match the continuously variable levels of programming expertise that your recipient might have. From novices and noobs to l33t coders, we've got a list of presents that will challenge, educate and inform; even better, many of them are available in digital form for last-minute gifting, or overnight for Christmas Eve from Amazon or Apple (where there's free overnight shipping on orders of $50 or more). Some are even free!
Needless to say, anyone who's diving into iOS development is going to need one thing first: a Mac. Whether it's the most affordable new machine Apple makes (the Mac mini), or a used machine (any Core 2 Duo-based Intel Mac will do), getting on the Mac is a prerequisite. Technically, you can do Objective-C development in GNUstep on Windows, but you can't run Xcode and build projects for iDevices without Mac OS X. We'll leave aside for the moment the question of whether doing development on a hackintosh is a worthwhile idea.
The Mac mini makes an excellent development machine; it's fast enough, unobtrusive, and it works with the keyboard and monitor your lucky recipient already has. Xcode does crave memory, though, so you're best off bumping it to at least 4 GB for an extra $100. If you're looking for a used machine, you can go with Apple's refurbished list, third-party resellers like Small Dog, or local used machines via Craigslist. The Xcode environment itself is completely free of charge, although a thoughtful gift-giver might download the multi-gigabyte installer on a fast connection and hand it over on a USB drive.
In addition to the Mac itself, your would-be iOS dev will eventually need an iOS device to test apps upon -- an iPod touch is the least expensive option, contract-free, and readily available on the secondary market, especially if you're willing to go with a previous-generation model.
The final prerequisite for actually shipping an app, of course, is the $99 developer membership that permits the registration of test devices and allows uploads to the App Store. That step might not be necessary for a while, but as TidBITS' Matt Neuburg points out, putting your C-note towards the developer fee shows your confidence that the recipient is actually going to buckle down and get an app cranked out. Note that you can't actually register on behalf of someone else, unless you're a parent or guardian -- you'll have to fund the would-be developer's self-application. As commenter Matthew points out, the benefits of membership go beyond the nuts and bolts of app submission; you also get access to all the instructional content inside Apple's developer site, including WWDC session videos via iTunes U.
For a software development environment that couldn't be discussed in public until two years ago, the iOS SDK has taken over a substantial amount of shelf space on America's collective tech bookshelf. With scores of iPhone/iPad specific titles supplementing the preexisting Objective-C tomes, there's a book for every skill level and area of focus. How to start off building a reference and training library for your budding developer?
If you don't know exactly where your recipient falls on the technical ladder, the best approach might be to simply give the whole shebang: access to electronic editions of almost every leading iOS and Objective-C title through the Safari Books Online service. At the basic $23/month level, subscribers get to read up to 10 different titles from publishers like Addison-Wesley, O'Reilly, Apress and Peachpit, covering the gamut from ASP to z/OS. Safari unlimited gift subscriptions start at $110 for three months of as many books as your lucky friend can absorb. Once they've identified the titles that best match their needs, an Amazon, B&N or iBooks gift certificate lets them get the paper editions they want (or there's always the local library).
An envelope saying "Congratulations, here's your Safari Books membership!" looks pretty lean under the tree, though. For those developers who already have some familiarity with C or other common programming languages, you might aim for a book that covers Objective-C specifically. Todd's recommendations from January 2009 still hold up well, particularly Stephen Kochan's "bible" of Obj-C development, Programming in Objective-C 2.0 (third edition coming in April). Apress's Learn Objective-C on the Mac is a good start, as are the titles from Pragmatic's catalog and Scott Stevenson's Cocoa and Objective-C Up and Running. You can also point your giftee at Apple's Objective-C documentation (in fact, a little customized list of links from you might help kick start your buddy).
Moving from the general to the specific, the iOS-centric title list is also ample. Pragmatic has several titles, and both Apress and O'Reilly have a full list -- but there's no way around it, my friend and colleague Erica Sadun has the preeminent book in this spot. Her iPhone Developer's Cookbook belongs on the bookshelf of any programmer who's gone from "fiddling around" to "seriously working on iOS apps." It won't help novices get over the initial hiccups, but it will make intermediate or expert programmers better with the platform. Programmers looking to "level up" will also benefit from getting a copy of iPhone Programming: The Big Nerd Ranch Guide -- see the section on live classes further on for other BNR options. Paul J. Deitel's iPhone for Programmers gets extremely high marks from professional developers moving to the platform, but it's in need of a new edition pretty soon.
If your friend or family member is starting out with little or no programming experience, there are books for that, too. In particular, Tim Isted's Beginning Mac Programming is an accessible and lean title that gives all the basics without skimping on the good stuff. Beginning iPhone Development, Learn C on the Mac and Objective-C for Absolute Beginners are other good starting points that don't assume much in the way of coding mojo.
This list doesn't really do more than scratch the surface of the available titles out there, so I've put a big ol' page of links covering iOS development resources here -- we'll be updating it as new volumes get released.
Let's suppose your friend or family member learns better when there's a visual or auditory component in the mix? They're in luck, because there's a solid assortment of for-pay and free screencasts and lectures about iPhone programming. Preload that Mac or iPod with the highly-regarded Stanford iOS programming course, free from iTunes U, or the University of Utah lectures. A subscription to Lynda.com gives access to the iPhone SDK Essentials Training course (and hundreds of others). Cocoa Dev Central focuses more on the Mac side of Objective-C, but the site's tutorials are very handy, including a straightforward introduction to Objective-C; it also hosts Cocoa articles from Theocacao. You can get a quick free introduction to iOS coding at the Code Project, too.
Additional screencast-style training sessions, free PDF guides and demos can be found at the Cocoacast, Cocoalab and TutsPlus; there are live streaming options being scheduled at ClassroomM. Of course, there are plenty of training materials, sample code snippets and examples at Apple's developer site. Commenter Martica recommends the training content at iDeveloper.tv.
For true beginners, Harvard's introductory CS course might be a worthwhile grounding step.
It's obviously the big-ticket alternative to buying a book and watching a screencast, but sometimes there's no alternative for getting live training from the people who wrote the books and made the screencasts. Georgia's Big Nerd Ranch and Virginia's About Objects both have ongoing class schedules for iOS development training. You can read about our visit to Big Nerd Ranch here. Pragmatic Studio also offers touring classes. UK readers can check out classes from Shiny.
With any luck, there are a few ideas in here to help you stuff the stocking of your resident alpha geek. Just remember: becoming an iOS ninja takes focus, time and patient effort -- there are no shortcuts (well, not that many) to mastery. Keep the home fires burning, consider an appropriate soundtrack and beverage selection, and let them know you're supportive as they try to learn something new.