Learning to develop for the iPhone

Learning to develop for the iPhone

When I first started developing for the iPhone, I was in the lucky position to already have some Mac development experience. So when the iPhone development tools became available, I spend some days browsing through the (excellent) documentation provided by Apple at http://developer.apple.com. This situation was all nice and good for experienced Mac developers, but for new developers who want to get going on the next great iPhone app the learning curve could be, and can still be, a little steep.

First of all, there's the programming language. Mac and iPhone applications are written in the Objective C language, which is an object-oriented extension to the C programming language - like C++ is another object oriented version of the C language. Secondly, there are the frameworsk. If you want to develop for the iPhone and/or Mac, you are going to have to use Cocoa. Cocoa contains loads of very useful stuff one can use, from basic classes like Strings and Collections, to classes to build a user interface, like Buttons and Labels.

However, before you dive into iPhone development  I strongly advise you to have some knowledge in the C programming language, and know the concepts of object-oriented design.

The whole point of this post is to provide some pointers for new developers, in order to get you going. I picked up the following books after careful consideration (in suggested reading order):

- Apple's reference documentation (http://developer.apple.com)
- "Learn C on the Mac" by Dave Mark (Apress, 2008) http://apress.com/book/view/1430218096
- "Beginning iPhone 3 Development" by Dave Mark and Jeff LaMarche (Apress, 2009) http://apress.com/book/view/1430224592
- "More iPhone 3 Development" by Dave Mark and Jeff LaMarche (Apress, 2009) http://apress.com/book/view/143022505x
- "Learn Objective C on the Mac" by Mark Dalrymple and Scott Knaster (Apress, 2009) http://apress.com/book/view/1430218150
- "Learn Xcode Tools for Mac OS X and iPhone Development" by Ian Piper (Apress, 2009) http://apress.com/book/view/143027221x

Further reading:

- "Learn Cocoa on the Mac" by Dave Mark, Jeff LaMarche and Jack Nutting (Apress, 2009) http://apress.com/book/view/1430218592
- "Core Data - Apple's API for Persisting Data on Mac OS X" by Marcus Zarra (Pragmatic Programmers, 2009) http://www.pragprog.com/titles/mzcd/core-data
- "iPhone Design Award-Winning Projects" by Chris Dannen (Apress, 2009) http://apress.com/book/view/143027221x

(Note that I'm not affiliated in any way to any publisher whatsoever)

Jan Paul is a freelance Rails/Mac/iPhone Developer based in Amsterdam.

Posted