After Stefaan’s excellent book review Cocoa Programming, this is another book review. This time I’d like to review the followup to one of the best iPhone development books out there.

Introduction

I remember buying my first Apple laptop about 2 month after I had gotten my iPhone 3G. I wasn’t really interested in iPhone development at first but then I started playing with the device and wondered what exactly was possible with it. Now, if you’ve been developing Windows software for more than 10 years and then switch to OSX, Xcode, Cocoa and Objective-C – all at once – things can be a little challenging.

More than often I found myself at the wrong side of the swimming pool wondering what I had gotten myself into. It was at that time when the first iPhone books from Apress started coming out. I figured out pretty soon that Beginning iPhone Development: Exploring the iPhone SDK by Jeff LaMarche and Dave Mark would help me out. I wasn’t wrong.

This book helped me understand the iPhone SDK and chapter by chapter I found myself able to understand and use all the iPhone’s internals: gps, accelerometer, tab bars, navigation controllers etc. This book has since then been updated with Beginning iPhone 3 Development: Exploring the iPhone SDK to deal with the changes in SDK3.

This book has been the basis of my iPhone knowledge.

Enter SDK 3

Apple introduced quite a few new topics when SDK 3 was introduced. Topics such as GameKit, StoreKit, MapKit and CoreData. After the success of “Beginning”, Apress wanted more and More iPhone 3 Development: Tackling iPhone SDK 3 was released some weeks ago. This book builds on “Beginning” and is considered a followup that focuses on SDK3.

Needless to say: if you’re completely new in iPhone programming then you’ll need both books to get up to speed.

Table of contents

There are 16 chapters in this book, divided in 3 parts: an introduction, Core Data and Further Explorations.

Core Data alone covers 6 chapters.

Other chapters include:

  • Peer-to-peer over Bluetooth using GameKit
  • Online play: Bonjour and network streams
  • Working with data from the web
  • MapKit
  • Sending mail
  • iPod library access
  • Keeping your interface responsive
  • Debugging

The chapters on Core Data are focused on building a project involving heroes with superpowers and the project becomes more and more complex throughout the chapters, introducing you to all the different aspects of Core Data.

Peer-to-peer over Bluetooth using GameKit isn’t that difficult because you’ll be using delegation a lot which is something you’ll be familiar with if you’ve ever used the built-in gps or accelerometer. Online play is the follow-up chapter and it explains how you can let 2 iPhone users play against each other over a network connection. It’s a bit more complex but it’s a very interesting subject.

A lot of iPhone apps are mobile versions of websites where data is hosted on a server somewhere. The chapter “Working with data from the web” explains how you can access that data, how to do error handling and so on.

MapKit is the framework that allows you to use Google maps within your app, using Annotations with pins or images.

Sending mail is a very interesting chapter because in-app mail in SDK3 allows us to do something that wasn’t possible before: let users send an e-mail from within your app.

iPod library access does exactly what it says. It allows your app to access your media library and play songs from it.

Keeping your interface responsive gives you a load of tips and tricks on using timers, explaining deadlocks, operations and queues. It is a must read if your app involves heavy calculations which can slow down your responsiveness.

The final chapter gives you more info on debugging, which is something we all need to do from time to time.

Conclusion

I like this book, I really do. There are some typo’s in this book but the authors have setup support forums at http://iphonedevbook.com/forums where you can find typo’s and the solutions for them. If you haven’t got this book and if you’re serious about iPhone development, get it now.