6th
Getting Started With iPhone Development
This article is republished from Quite Useful (a guide to useful things).
This article is an introduction to iPhone development. You can use it to:
- Decide if iPhone development is right for you
- Understand what skills are required
- Learn about what Apple requires from you and how apps are deployed to phones for testing and the iTunes Store
Is iPhone Development Right For You?
Introductory material to iPhone development makes it look incredibly easy: you just pick components, tie them together with GUI tools, and then run your app and it’s done. This is an illusion: you’ll need object-oriented programming skills as well as some familiarity with Objective-C and Apple’s APIs.
I approached iPhone development with a background in Mac OS development. Here’s an example of my work: Helipad Mac and Helipad iPhone. Therefore I was familiar with Apple’s APIs, Objective-C and Interface Builder. These are the core skills for iPhone development.
When I originally started programming Mac OS applications I found the key to becoming comfortable with development was learning Apple’s Cocoa APIs, and the general Objective-C classes.
Getting Started
To start writing iPhone software, you need to learn the following:
- How to use Apple’s development tools (Xcode, Interface Builder, Instruments)
- Objective-C, which involves everything from object-oriented programming and managing memory
- Apple’s APIs for iPhone and Objective-C development
You also need to sort out a few more mundane details:
- A registered company (note that UK sole traders seem to get on the store)
- Xcode — more about installing Xcode below
- An account at Apple Developer Connection (ADC) — this is free
- The skills to produce logos and supporting graphics, or access to a designer or suitable stock images
It might sound like iPhone development will take a huge investment of time to learn the skills, but you’ll also learn most of the skills you need to write Mac OS software.
From Idea to Deployment
This is the entire process that you’ll go through:
- [0 days] Sign up to Apple Developer Connection and download the free SDK
- At this point you can happily build iPhone apps, but you won’t be able to run them on a real phone yet
- Apply to join the Developer Program (you’ll have to pay $99 and you may need to fax Apple your company’s registration details)
- [2-14 days] Once Apple accept your application, login to the Developer Program Portal and set up certifications for testing on a real phone
- At this point you can run your own software on an iPhone
- Once you’re happy with your application, you can submit it to iTunes Connect
- You’ll need to set up a contract with Apple in iTunes Connect for free or paid distribution
- [14-60+ days] Apple will quickly test your application, but it may take them 1-2 months to accept your contracts for selling applications
The last stage of the process can be frustrating: you’re left in the dark for a long time, this was frustrating for me because I didn’t know if there were US/UK contract/tax/banking issues that they were trying to resolve. Then after about 6 weeks my application just appeared on the store (with no fanfare, I found out through a Google Alert that had spidered a site that tracks new iPhone apps).
Xcode Installation and SDK Maintenance
Apple distributes Xcode with Mac OS, so if it’s not in /Developer/Applications you’ll need to get out your Mac OS installation disc. You can even download Xcode from the ADC Member Site (look for the link on the top-right of the developer.apple.com pages). It’s a 1GB disc image, so find your install discs!
The iPhone SDK has an installer so it’s easy to install. Once it’s set up and you’re in Xcode you may occasionally notice that it causes the documentation system to update the API files: these downloads can be huge and will make Xcode sluggish on older or low memory machines.
Objective-C
If you like object-oriented programming (if you’re into Ruby, Java, C#, Python, etc), then you’ll find Objective-C isn’t too painful at all. Don’t worry about learning C from scratch if you’re not familiar with it. If you’re a decent OO programmer, you’ll be able to survive with Apple’s documentation.
If you haven’t done much programming before you’ll need an Objective-C book. I’ve recommended one below.
Apple’s Tools

These are the key tools you’ll be using:
- Xcode - project management, programming, debugging, device management and even source code management (it works well with subversion)
- Interface Builder - drag and drop UI elements and bind them to methods in your code. Not everying can be achieved with IB, definitely not games
- Instruments - Don’t be scared of Objective-C memory management! Instruments helps you track memory, as well as network, CPU and graphics performance
If you’re a programmer who needs to learn C and Objective-C, you’ll find Apple’s rich set of tools and documentation really helps.
Killer Free Resources
- Apple’s documentation (online and within Xcode) will become burned into your eyeballs
- iPhone Developer Blog
- Inside iPhone
- Mobile Orchard
- Theocacoa has some amazing Objective-C/Cocoa tutorials
Recommended Books

I’ve read the following books and they come highly recommended.
Need to learn Objective-C? Get Programming in Objective-C by Stephen G. Kochan.
Want cheap books straight away? Buy some Pragmatic Programmer PDFs and screencasts: iPhone SDK Development, Writing Your First iPhone Application
