iPhone Developer's Roadmap
Start your journey, today!
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 applications for a mobile device. And when you're just starting out, you're faced with learning a bunch of new things: Xcode, Interface Builder, the Objective-C programming language, Cocoa libraries, and the iPhone SDK. If you try to learn them all at once, it can be quite frustrating.
So where do you start on the path to learning how to create iPhone applications? Well, that depends. There's no single 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:
- If this is your first experience with programming in general, start by learning basic programming.
- If you're already an experienced programmer, but you're new to programming on the Mac, start by learning the developer tools and Objective-C and Cocoa.
- If you're comfortable with programming on the Mac, then jump right into creating your iPhone application.
- Finally, if you've already created a basic iPhone application, then it's time to make your app shine!
Not a Programmer? Creating iPhone applications 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 application, 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
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 applications. Learning Objective-C as your first programming language can a bit intimidating, though.
#1 If you're new to programming in general, we recommend working through the following book:
Beginning Mac Programming: Develop with Objective-C and Cocoa
This book is intended for people 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
Xcode is the IDE used for Mac and iPhone programming. It was created by Apple, and is freely available.
Interface Builder is the visual design tool for creating the user interfaces of your iPhone applications. You'll use it in conjunction with Xcode.
The iPhone SDK is a set of Objective-C libraries and tools created by Apple that allow you to create applications for the iPhone and iPod Touch, as well as test them in an iPhone simulator.
Apple Developer Connection (ADC) is the official resource for all things related to Mac and iPhone development. It's also where you download the developer tools.
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 applications. 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:
- 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 version of Xcode and Interface Builder is 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 applications.
#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
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
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) You might also consider purchasing the entire
video series for later use.
#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 iPhone SDK, to the tools and technologies used to create iPhone applications. It's a great resource!
Learn Objective-C and Cocoa
Objective-C is an object-oriented programming language used primarily to develop applications for the Mac and iPhone. However, it's a general purpose programming language. To build sophisticated applications, you'll need some libraries that do the heavy lifting for you.
Cocoa is a set of Objective-C libraries (frameworks) created by Apple that enable you to develop applications for the Mac. Cocoa Touch is based on Cocoa, but is used specifically for developing mobile applications that look and feel like the familiar applications on your iPhone or iPod Touch. These libraries provide high-level components such as buttons and windows and handle all the low-level details around graphics, networking, media, and so forth.
#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
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: 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 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
Putting it all together for the first time is both exciting and a tad overwhelming. 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 applications directly from experienced developers offering expert guidance and instruction:
- Attend a public course and learn all the major features of the iPhone SDK so you can develop mobile applications 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 applications:
Apple has provided a number of sample iPhone applications. 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:
iPhone SDK Development
This Pragmatic guide takes you through the tools and APIs, the same ones
Apple uses for its applications, that you can use to create your own
software for the iPhone and iPod Touch.
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 applications.
#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 If you're planning to build a table-based iPhone application, we recommend the following video:
Writing Your First iPhone Application
This five-part video series walks you through how to build an iPhone
application similar to the iPhone contacts manager. You'll learn how to
put everything together: Xcode, Interface Builder, Objective-C, Cocoa,
and the iPhone SDK. Watch
a free sampler (2 minutes, QuickTime) of what you'll learn in these
videos.
#13 Stay on top of your game by learning quick iPhone tips, tricks, or techniques that you can apply right away.
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!
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 applications, 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 APIs for persisting data in Mac applications. Here's some exciting news: You'll be able to use Core Data in your iPhone application when version 3.0 of the iPhone OS is officially released.
#14 Before you submit your application to the App Store, make sure to profile memory usage and fix any problems. This video shows you how:
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.
#15 Now's a great time to get a head start on iPhone 3.0 by learning 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.
#16 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.
#17 Consider using Core Animation to add stunning animation and effects to your application. This video and book go great together:
Creating a Compelling User Interface with Core
Animation
This six-part video series walks you through how to build a Cover
Flow application for photos, similar to the one in iTunes.
Watch a free
sampler (3 minutes, QuickTime) of what you'll learn in these videos.
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.
