For those of you wanting to learn iPhone development, there are a number of resources available. Besides blogs (like ours) there are a number of books that can help pull things together for new and budding developers.
New Stuff to Learn
There’s been a lot of press lately about Apple development tools and the programming language, which is Objective-C. While folks that come from a C and C++ background feel quite at home with Objective-C, there are various developer groups feeling left out of the iPhone app gold rush. Specifically, I am speaking to the legions of .NET and Flash developers who have spent many years mastering their craft and are now being asked to learn a new set of tools, programming language and SDK.
As someone who went through that transition I thought I would document the books that helped along the way. While I did learn Mac development in a classroom setting, the books I’ll recommend were instrumental to it all making sense. My recommendations are listed in suggested reading order.
The first book that can help orient new Mac developers is Learn Objective-C on the Mac by Apress. While the book doesn’t specifically focus on the iPhone SDK it does provide fundamental answers to beginner programming questions. This includes how to program Objective-C properties, methods, classes, variables and OO design. It also introduces important concepts such as NSDictionary and NSPredicate which become useful when learning database development using Core Data.
Build On What You’ve Learned
Once you get your bearings you can build on the fundamentals by reading Beginning iPhone Development by Apress. This book introduces the basic aspects of the iPhone SDK. As you may know, learning Objective-C doesn’t necessarily make you an iPhone expert. You will also need to learn how to apply the iPhone SDK using Objective-C which is the focus of this book.
Create User Interfaces
I’ve heard a lot of people comment about their experience with Interface Builder (IB). Granted, IB may not be what most existing developers are used to, I do find working with it to be fun and different. There’s a lot you can do with IB, but working with XIB files (pronounced “nib”) IBOulets and IBActions can be complex. In the book Cocoa Programming for Mac OS X by Aaron Hillegass, he provides almost all of his code examples in an illustrated step-by-step approach. Readers also get exposed to additional concepts such as Key-Value-Coding, which is used in Mac desktop development.
Fill In the Gaps
At this stage you’ll certainly understand most, if not all of the language syntax and SDK fundamentals. However, you may not understand why some things work they way they do. This may include items such as memory management, synthesizing properties, calling delegates and handling notifications. One of the best books to help fill in the gaps is Head First – iPhone Development by O’Reilly. It provides one of the best introductions to Core Data that I’ve seen. One cruise through this book and you’ll be a happy camper.
Build Something Cool
By now you should have the knowledge to put your development ideas into action. Add to your new found expertise by reading More iPhone Development by Apress. This book skips the preliminaries and gets right into the good stuff such as Core Location, GameKit and the MediaPlayer Framework. I’ve been surprised by how many times I go back to this book as a reference for new and existing projects.
Have a Reference
Finally, the last resource that I recommend is the online reference material provided by Apple. This is not to say that its documentation is not good. On the contrary, it’s a great resource, but almost to a fault. Due to the complexity of its documentation I find it most useful as a reference and not for learning new concepts. I feel many new developers rush to the iPhone Developers Reference documentation as their first information source only to be discouraged when none of it makes sense.
Learning iPhone Development is indeed challenging but is not impossible with the right resources. As you continue to build your skills in app development we’ll be here to help take your ideas from concept to the App Store. In meantime these books should ease the learning curve.