Developing iPhone Apps Requires Xcode on the Mac

By Elisabeth Robson
October 7, 2009 | Comments: 4

I've had a few questions about the software I used in my previous screencasts (Tab bars and Navigation bars together and O'Reilly Books Example updated: Show a different image for each book). I created the app using Xcode for the Mac. Xcode is a developer tool, and if you want to develop iPhone apps, you'll need to download both Xcode and the iPhone SDK.


To develop iPhone apps, you'll first need to join the Apple iPhone Developer Program which you can do here: You can view the developer guides and get information about how to program the iPhone without joining, but you can't download the iPhone SDK without joining.

Once you've joined, you can download a package that contains both Xcode and the iPhone SDK in one big package. If you have upgraded to Snow Leopard, you can download the latest version of Xcode, Xcode 3.2, which comes with the iPhone 3.1 SDK. (The numbering is a little confusing because the version numbers are almost the same, but not quite so it's easy to get them confused!). When you download the Snow Leopard package, make sure you install "iPhone SDK" (which is listed with no number next to it in the installer, but it is 3.1).

You can develop apps for the simulator using Xcode and the iPhone SDK. To get an app on the iPhone itself, you'll also have to provision your device. Apple has a series of videos which step you through that process on the developer portal (accessible only if you have joined the iPhone Developer Program). It's not too complicated, but requires following the steps precisely.

I hope this helps you get started developing apps for the iPhone on your Mac.

You might also be interested in:


If you have some experience in programming, here's what you'll need to know before jumping into iPhone development (using Elisabeth's excellent introduction above):

1. Language. You'll need to learn Objective-C. If you know C or C++, note that Obj-C has a different philosophy, so you can either be frustrated that Obj-C isn't what you're used to, or take a deep breath and trust Obj-C. Similarly for Java developers. If you're experienced in web development, then note there are a lot of differences you'll need to get used to.

2. Platform. If you're coming from the Windows world, you'll need to get used to the OS X way of doing things.

3. Development Environment. If you're a Java developer used to Eclipse or a Windows developer used to Visual Studio, Xcode is COMPLETELY DIFFERENT. Again, you can either be frustrated that Xcode isn't what you're used to, or take a deep breath and trust Xcode.

4. API. You'll need to learn Cocoa Touch. If you're coming from the Mac, Cocoa Touch is very close to Cocoa. If you're coming from Java or Windows, it's a big change.

I agree with everything Patrick listed.

Would also like to add that the free Stanford Lectures on iTunesU really helped me with getting over the hump on all of those points. I'm a 3 year Ruby, 10 year Java dev, and a 2 month iPhone dev.

XCode is different and not in a good way. No amount of Apple hype can change that.

Borland got it right with C++ Builder and the VCL.
THAT is/was RAD development.

You shouldn't have to learn a whole new language before
you can even start development.

-There actually is a great way to develop iPhone apps on the PC without having to jailbreak your iPhone. Rhomobile has created a hosted development tool called RhoHub that solves this problem and also also gives you some other valuable features like building apps online for all smartphones without having to install SDKs locally. Check it out for free at

News Topics

Recommended for You

Got a Question?