Roadmap

Where Do I Start?

Becoming an iPhone developer is a lot of fun and a valuable skill in today's market. But there's a catch: It isn't as easy as it looks. Even experienced programmers are challenged by developing apps for a mobile device. And when you're just starting out, you're faced with learning a bunch of new things: Xcode, Interface Builder, Cocoa Touch frameworks, the Objective-C programming language, and other technologies in the iPhone SDK. If you try to learn them all at once, it can be a tad overwhelming.

So where do you start on the path to learning how to create iPhone apps? Well, that depends. There's no single how-to article, book, screencast, or training course that suits everyone. You'll need to take honest stock of your current skills and choose the appropriate resources. Here are some pointers to help you get started:

Not a Programmer? Creating iPhone apps from scratch may look easy, but can be deceptively challenging even for experienced programmers. Many people underestimate what's involved. If you're not a programmer, but you have an idea for an iPhone app, you'll likely get your idea to market quicker by working with an experienced iPhone developer. One way to team up with good developers is through our job board.

Basic Programming

Basic Programming

Object-Oriented Programming is a style of computer programming that uses concepts such as classes, objects, methods, and inheritance. Object-oriented programs also use more traditional programming concepts such as variables, loops, conditional statements, and so on.

Objective-C is the object-oriented programming language that you use to create iPhone apps. It's similar to other programming languages in many ways, but also significantly different in other ways.

#1 If you're new to programming in general, we recommend working through the following book:

Beginning Mac Programming

Beginning Mac Programming: Develop with Objective-C and Cocoa
This book is intended for folks who have little or no previous programming knowledge. It introduces you to the principles of object-oriented programming, Objective-C, and the Cocoa framework in clear, easy-to-understand lessons. You'll also learn how to get started with the developer tools.

 

Get Comfortable with the Developer Tools

Developer Tools

The iPhone SDK is a freely-available set of Objective-C frameworks (libraries) and tools that allow you to create apps for iPhone, iPod Touch, and iPad devices. It also includes an iPhone/iPad simulator so you can run your apps on your Mac during development.

Xcode is the IDE used for Mac and iPhone programming. It was created by Apple, and included in the iPhone SDK.

Interface Builder is the visual design tool for creating the user interfaces of your iPhone apps. You'll use it in conjunction with Xcode. It's also included in the iPhone SDK.

Apple Developer Connection (ADC) is the official resource for all things related to Mac and iPhone development. It's also where you download the iPhone SDK.

A Mac is the instantly-recognizable computer that you now have an excuse to buy! Seriously, the whole toolchain is Mac-only, and you need a Mac that has an Intel processor to create iPhone apps. The good news is that once you buy the Mac, all the development tools are free.

#2 Download Xcode, Interface Builder, and the iPhone SDK:

Xcode
  • You need to be an Apple Developer Connection (ADC) member or a registered iPhone developer in order to download the latest version of the iPhone SDK. ADC membership is free and has a lot of benefits. If you're not already a member, you can sign up for an account.
  • The latest version of the iPhone SDK is available for download at http://developer.apple.com/iphone/. The latest versions of Xcode and Interface Builder are included in the iPhone SDK download. One download gives you everything you need.
  • Once you have an application that you want to test on a device and distribute on the App Store, you need to apply to the iPhone Developer Program. The program costs $99/year for individuals and $299/year for in-house enterprise apps.

#3 Xcode and Interface Builder can be a little intimidating at first. Before you dive into coding, we recommend watching the following video tutorials:

Becoming Productive in Xcode

Becoming Productive in Xcode
This two-part video series will show you how to use Xcode in a truly productive way, so you'll spend less time being frustrated and have more time to focus on your application. Watch a free sampler (5 minutes, QuickTime) of what you'll learn in these videos.

  Getting Started with Xcode and Interface Builder

Getting Started with Xcode and Interface Builder
Watch the free, 22-minute introductory video of this five-part series to see how to get started with Interface Builder for iPhone development. (Download, 22 minutes, QuickTime)


#4 Watch Apple's free videos, too:

Spend some time watching the "Getting Started Videos" in the iPhone Dev Center. In these free videos, Apple experts discuss everything from getting started with the iPhone SDK, to the tools and technologies used to create iPhone apps. It's a great resource!

Learn Objective-C and Cocoa

Objective-C

Objective-C is an object-oriented programming language used primarily to develop apps for the Mac and iPhone. However, it's a general purpose programming language. To build sophisticated apps, you'll need some libraries that do the heavy lifting for you.

Cocoa is a set of Objective-C frameworks (libraries) created by Apple that enable you to develop apps for the Mac. Cocoa Touch is based on Cocoa, but is used specifically for developing mobile apps that look and feel like the familiar apps on your iPhone or iPod Touch. Cocoa Touch provides all the core user interface components you'll need to develop graphical, event-based iPhone or iPad apps.

#5 If you have a programming background, but you're new to the Objective-C language, we recommend watching the following video tutorial:

Coding in Objective-C

Coding in Objective-C screencasts
This three-part video series will give you an overview of all the major features of the Objective-C language and the core concepts of object-oriented programming. You'll also learn how to manage memory (especially important on the iPhone!) and use the Xcode debugger to identify and fix problems quickly. Watch a free sampler (4 minutes, QuickTime) of what you'll learn in these videos.

 

#6 Then, once you've had a look at Objective-C, you're ready for some Cocoa. We recommend working through following book:

Cocoa Programming

Cocoa Programming: A Quick-Start Guide for Developers
This book will give you a better understanding of Cocoa fundamentals and Interface Builder for Mac development. The iPhone SDK uses many of the same concepts, and a good working knowledge of Cocoa will serve you well. Work through the fun exercises to get hands-on experience with the tools, language syntax, and basic Cocoa concepts such as target/action and delegation.

 

#7 Join a CocoaHeads group:

CocoaHeads

CocoaHeads is a group devoted to discussion of Apple Computer's Cocoa Framework for programming on Mac OS X (including the iPhone). CocoaHeads groups meet in a number of locations, worldwide! If you can't find a CocoaHeads group near you, consider starting a new group.

Create Your iPhone Application

Create Your App

Putting it all together for the first time is exciting. Here's where all your foundational work really pays off. When you're comfortable with the language, libraries, and tools, you can start turning your idea into reality.

#8 If you learn best in a hands-on, interactive, and focused environment, join us in an upcoming training course. You'll learn how to create iPhone apps directly from experienced developers offering expert guidance and instruction:

Pragmatic Studio
  • Attend a public course and learn all the major features of the iPhone SDK so you can develop mobile apps like the pros. Check out this video to see what the Studio experience is like.
  • Schedule an on-site course to quickly get your team up to speed on iPhone development. On-site courses are ideal for teams of 8 or more developers.

“It was totally awesome! I learned more in these four days than in six months of muddling around on my own”

—Will Ronco (more reviews)

 

#9 If you like to tinker, experiment with Apple's sample iPhone apps:

Apple has provided a number of sample iPhone apps. Download the source code, run it in the iPhone Simulator, and then start experimenting. Reading through the code is a great way to cement what you've learned about Objective-C and Cocoa. And you can use the code and design from these samples to inspire your own development.

#10 Many books about iPhone development are now available. Here are a couple recommendations:

Writing Your First iPhone Application

iPhone SDK Development
This Pragmatic guide takes you through the tools and APIs that you can use to create your own software for the iPhone and iPod Touch. Packed with useful examples, this book will give you both the big-picture concepts and the everyday "gotcha" details that developers need to make the most of the iPhone OS platform.

  Beginning iPhone Development: Exploring the iPhone SDK

Beginning iPhone Development: Exploring the iPhone SDK
This book starts with the basics, and walks you through how to build your first iPhone application step by step. From there, you learn other aspects of the iPhone SDK to apply to your apps.

 

#11 Subscribe to a mailing list or forum:

The Apple Developer Forums is a great place to ask fellow iPhone developers questions, and put your knowledge to the test by answering questions.

#12 Stay on top of your game by learning quick iPhone tips, tricks, or techniques that you can apply right away.

Studio Bonus Tracks

Studio Bonus Tracks
Bonus Tracks are free screencasts on practical tips and tricks related to topics we teach in our Pragmatic Studio training courses. Each screencast is short and focused on one technique so you can quickly move on and apply it to your application.

 

Make Your App Shine!

Shine!

Memory Management is especially important on the iPhone because resources are constrained. Objective-C 2.0 has a garbage collector, but it's not available on the iPhone. So if you’re writing iPhone apps, you’ll need to manage your own memory.

Core Animation adds that "wow!" factor to your iPhone application. It's not just cool, it also improves the user experience to set your application apart from the crowd.

Core Data is a set of design tools and APIs for persisting data in iPhone apps.

 

#13 Before you submit your application to the App Store, make sure to profile memory usage and fix any performance problems. This video shows you how:

Coding in Objective-C

Screencast Episode #2: Memory Management
In this episode, you learn how to use Instruments to find and fix various memory-management problems that are common in Objective-C programs.

 

#14 Now's a great time to get a head start on iPhone 3.0 by learning Core Data:

Core Data

Core Data: Apple's API for Persisting Data under Mac OS X
This book takes you from beginning with Core Data through to expert level configurations that you will not find anywhere else.

 

#15 Attend WWDC:

The Apple Worldwide Developers Conference (WWDC) is the annual big event for learning the latest and greating in iPhone OS and Mac OS X development. It may seem a little spendy, but it's always well worth it if you're trying to make iPhone development your livelihood. WWDC 2009 takes place June 8-12 in San Francisco.

 

#16 Consider using Core Animation to add stunning animation and effects to your application. This book shows you how:

Core Animation for Mac OS X and the iPhone

Core Animation for Mac OS X and the iPhone
This comprehensive guide will get you up to speed quickly and take you into the depths of Core Animation.

 

We hope you have a lot of fun! We have some exciting new iPhone resources coming soon, so don't forget to subscribe to our RSS feed.