iOS Developer Roadmap
Start your journey today!
![Roadmap](http://pragmaticstudio.com/images/roadmaps/blocks-full.png?1416329930)
Where Do I Start?
Becoming an iOS 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 and the iOS developer tools, the Objective-C programming language, the Cocoa Touch frameworks, and various other technologies in the iOS SDK. If you try to learn them all at once, it can be quite overwhelming.
So where do you start on the path to learning how to create iOS 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:
- If this is your first adventure 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 iOS app.
- Finally, if you've already created a basic iOS app, then it's time to make it shine!
Not a Programmer? Creating iOS apps from scratch may look easy, but it 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 iOS app, you'll likely get your idea to market quicker by working with an experienced iOS developer.
Basic Programming
![Basic Programming](http://pragmaticstudio.com/images/roadmaps/blocks-1.png?1416329930)
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 iOS 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](http://pragmaticstudio.com/images/books/75x90/tibmac.jpg?1416329930)
Beginning Mac Programming: Develop with Objective-C and Cocoa
This book is intended for folks who have little or no previous experience programming. It introduces you to the principles of object-oriented programming, Objective-C, and the Cocoa frameworks in clear, easy-to-understand lessons.
Get Comfortable with the Developer Tools
![Developer Tools](http://pragmaticstudio.com/images/roadmaps/blocks-2.png?1416329930)
The iOS SDK is a 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 iOS Simulator so you can run your apps on your Mac during development.
Xcode is the IDE used for Mac and iOS programming. It was created by Apple, and included in the iOS 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 iOS apps.
#2 Download Xcode and the iOS SDK:
![Xcode](http://pragmaticstudio.com/images/roadmaps/xcode.png?1416329930)
- To develop your iOS app, you'll need to purchase Xcode from the Mac App Store ($4.99). The iOS SDK is included in Xcode.
- Once you have an app that you want to test on a device and distribute on the App Store, you need to apply to the iOS Developer Program. The program costs $99/year for individuals and $299/year for in-house enterprise apps. Program members can download Xcode for free.
#3 Xcode can look intimidating at first. Before you dive into coding, we recommend watching the following free video tutorials:
![Studio Bonus Tracks](http://pragmaticstudio.com/images/roadmaps/bonus-track.png?1416329930)
- Xcode 4 Project Setup (6 minutes, QuickTime)
- Xcode 4 Interface Overview (14 minutes, QuickTime)
- Using Interface Builder in Xcode 4 (15 minutes, QuickTime)
Then check out our full series of free Xcode 4 video tutorials.
Learn Objective-C and Cocoa
![Objective-C](http://pragmaticstudio.com/images/roadmaps/blocks-3.png?1416329930)
Objective-C is an object-oriented programming language used primarily to develop iOS and Mac apps. 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 iOS apps.
#4 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 2.0
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, which is especially important on iOS devices!
#5 Then, once you've had a look at Objective-C, you're ready for some Cocoa. We recommend working through the following book:
![Cocoa Programming](http://pragmaticstudio.com/images/books/75x90/dscpq.jpg)
Cocoa Programming: A Quick-Start Guide for Developers
This book will give you a better understanding of Cocoa fundamentals. The iOS 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.
#6 Join a CocoaHeads group:
![CocoaHeads](http://pragmaticstudio.com/images/roadmaps/cocoaheads.png?1416329930)
CocoaHeads is a group devoted to discussion of Apple Computer's Cocoa Framework for programming on Mac OS X and iOS. 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 iOS App
![Create Your App](http://pragmaticstudio.com/images/roadmaps/blocks-4.png?1416329930)
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.
#7 Consider learning in one of our acclaimed hands-on training courses:
![Pragmatic Studio](http://pragmaticstudio.com/images/studio/daniel-cocoa-small.jpg?1416329930)
- Attend a public course and learn all the major features of the iOS SDK so you can develop mobile apps like the pros.
- Schedule an on-site course to quickly get your team up to speed on iOS development. On-site courses are ideal for teams of 8 or more developers.
You'll learn how to create iOS apps directly from two experienced developers offering expert guidance and instruction.
#8 If you like to tinker, experiment with Apple's sample iPhone apps:
Apple has provided a number of sample iOS apps. Download the source code, run it in the iOS 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.
#9 Many books about iOS development are now available. Here are a couple recommendations:
iOS SDK Development
This Pragmatic guide takes you through the tools and APIs that you can use to create your own software for the iPhone, iPad 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 iOS platform.
![Beginning iPhone Development: Exploring the iPhone SDK](http://pragmaticstudio.com/images/roadmaps/exploring-sdk.jpg?1416329930)
Beginning iPhone Development: Exploring the iPhone SDK
This book starts with the basics, and walks you through how to build your first iPhone app step by step. From there, you learn other aspects of the iPhone SDK to apply to your apps.
#10 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.
Make Your App Shine!
![Shine!](http://pragmaticstudio.com/images/roadmaps/blocks-5.png?1416329930)
Take it to the next level by creating more advanced features that make your app unique and polished.
Core Data is a set of design tools and APIs for persisting data in iPhone apps.
Core Animation adds that "wow!" factor to your iPhone app. It's not just cool, it also improves the user experience to set your app apart from the crowd.
#11 Don't start from scratch. This book gives you time-saving recipes you can slip right into your app to get more done with less code:
![iOS Recipes](http://pragmaticstudio.com/images/books/75x90/cdirec.jpg)
iOS Recipes
This book walks you through clean, reusable solutions to a wide variety of problems and patterns common to iOS development with Cocoa Touch and Objective-C. With these recipes in your arsenal, your next apps will be more polished and more maintainable than ever.
#12 Persist data and allow fast searching of your data on the iOS device with Core Data. This book shows you how:
![Core Data](http://pragmaticstudio.com/images/books/75x90/mzcd.jpg?1416329930)
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.
#13 Add stunning animation and effects to your app. This book shows you how:
![Core Animation for Mac OS X and the iPhone](http://pragmaticstudio.com/images/books/75x90/bdcora.jpg?1416329930)
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.
#14 Attend WWDC:
The Apple Worldwide Developers Conference (WWDC) is the annual big event for learning the latest and greatest in iOS and Mac OS X development. It may seem a little spendy, but it's always well worth it if you're trying to make iOS development your livelihood.
We hope you have a lot of fun! We continually release new iOS resources, so please subscribe to our blog.