11 Jul 2012
Start Developing iOS Apps Today

Creating iOS apps is fun and rewarding, and if you're a new developer you might be wondering where to begin. This road map provides the perfect starting point for iOS app development. On your Mac computer, you can create iOS apps that run on iPad, iPhone, and iPod touch. Follow this road map to learn where to get the tools you need, understand the major concepts and best practices, and see where to find more information.

As you proceed through the road map, you will use Xcode and the iOS SDK, Apple’s tools for app development. You will learn the basics of programming with Objective-C, the language that powers all iOS apps and frameworks, and will explore the Cocoa Touch frameworks. You will create a simple iOS app and learn how to test it on a device. Finally, you will learn how to submit an app to the App Store.

image: ../Art/start_developing.png

Each page in the road map introduces a new topic and links to one or more short articles about that topic. The road map provides you with a breadth of knowledge to get you started, and the last page, Where to Go from Here, includes links to documents you should read next. After you finish the road map, you will be prepared to delve deeper into any individual topic. You'll have the knowledge, tools, and skills to start developing iOS apps!

Installing Tools

When you develop apps, you use the iOS software development kit (SDK) and Xcode, Apple’s integrated development environment (IDE). Xcode provides everything you need to create great apps for iPhone, iPod touch, and iPad. It includes a source editor, a graphical user interface editor, and many other features—from customizable builds to source repository management. Xcode employs a single window, called the workspace window, that holds most of the data you need. With Xcode, you smoothly transition from writing code, to debugging, to designing your user interface, all within the same window. The iOS SDK extends the Xcode toolset to include the tools, compilers, and frameworks you need specifically for iOS.

image: ../Art/install_tools.png

To get started, you need to:

  1. Download the latest version of Xcode.

    Open the Mac App Store app on your Mac, search for Xcode, and click Free to download Xcode. When you download Xcode, the iOS SDK is included. (The Mac App Store app is installed with Mac OS X version 10.7 and later. If you have an earlier version of Mac OS X, you need to upgrade.)

  2. Enroll as an Apple Developer in the iOS Developer Program.

    You do not need to enroll in the program to write apps and test them in Simulator. You do need to enroll, however, to test apps on devices and to distribute apps. Enrollment gives you full access to the iOS Dev Center and the iOS Provisioning Portal. If you enroll now, you will be able to follow all of the steps in the road map, including testing your app on a device.

Jump Right In

To make a great iOS app, you need to learn many things, but the tools and the iOS SDK make it easy to get an app up and running. The tutorial Your First iOS App introduces the tools, the fundamental design patterns, and the application development process. As you follow the tutorial, you create a simple app that accepts a user’s text input and prints it on the screen. You also learn how to run your app in Simulator on your Mac. The simple steps in the tutorial introduce elegant, useful concepts that you use over and over again in app development.

image: ../Art/tutorial.png

Your First iOS App is the longest article in the road map, but don’t rush through it. It lays the foundation for the concepts that you will learn more about later. Each of the other articles expands on one of those concepts.

Follow This Tutorial Now

Follow This Tutorial Now: Your First iOS App shows how to create a simple app as you orient yourself to the iOS development environment. After you finish the tutorial, return to this page and continue your path through the Start Developing iOS Apps Today road map.

Tools

Xcode provides tools to manage your entire development workflow—from creating your app to testing, optimizing, and shipping your app to the App Store. Your First iOS App showed you how to create a new project, add user interface elements, and edit your source code. After you create your app, use Xcode to test and debug your source code, analyze and improve your app’s performance, perform source control operations, archive and submit your app to the App Store, and more.

image: ../Art/tools.png

Customizable to suit your style of working, Xcode keeps you focused on the development task at hand.

Read This Article Now

Read This Article Now: Manage Your Workflow in Xcode shows you additional Xcode features for iOS app development.

 

Language

Objective-C is an elegant object-oriented language that powers all iOS apps. Objective-C is a superset of C, which means you can write both C and Objective-C code in your projects. Although you can use other languages for development, you can’t build an iOS app without Objective-C.

image: ../Art/language.png

Objective-C is a simple language with syntax and conventions that are easy to learn—especially if you have experience with other object-oriented languages such as Java and C++. If you’re a C programmer, you’ll find that when you are familiar with object-oriented programming and Objective-C, your apps are easier to design and modify.

Read This Article Now

Read This Article Now: Write Objective-C Code teaches you the basic syntax of Objective-C, including class declarations, methods, messaging, and declared properties.

 

Basic Tasks

Just as an artist must know how to use a paintbrush and a musician must be familiar with scales and chords, a programmer must know how to do some basic tasks in code.

image: ../Art/basic_tasks.png

To create an iOS app, you need to know how to create objects, compare objects, query objects for information about them, and access objects in collections such as arrays. These tasks are common in iOS apps. After you acquire these skills, you are ready to take on more complicated Objective-C code.

Read This Article Now

Read This Article Now: Acquire Basic Programming Skills describes the basic tasks in Objective-C programming.

 

Frameworks

An app consists of code that you write and frameworks provided by Apple. A framework contains a library of methods that your app can call. More than one app can access a framework library at the same time.

image: ../Art/framework.png

Any app that you develop links to multiple frameworks. You can take advantage of a framework through its application programming interface (API). The API, published in header files, specifies the available objects, classes, data structures, and protocols. Apple writes frameworks that anticipate the basic features you might want to implement. You should use frameworks both to save time and effort and to make sure that your code is efficient and secure. The system frameworks are the only way to access the underlying hardware.

Read This Article Now

Read These Articles Now: 

Design Patterns

A design pattern provides a solution to a common software engineering problem. Patterns are abstract designs, not code. When you adopt a design, you adapt the general pattern to your specific needs.

image: ../Art/design_patterns.png

No matter what type of app you are creating, you should know the fundamental design patterns used in the frameworks. Understanding design patterns helps you use frameworks more effectively and allows you to write programs that are more reusable, more extensible, and easier to change.

Read This Article Now

Read This Article Now: Streamline Your App with Design Patterns describes the key design patterns and explains how these are used in app development.

 

Human Interface Design

It's not enough to create an app that works. Users expect iOS apps to be intuitive, interactive, and engaging. Think about the user experience as you design every aspect of your app, from the features you choose, to the way your app responds to a gesture.

image: ../Art/user_experience.png

Although people might not be aware of human interface design principles, they can tell when apps follow the guidelines and when they don't. Follow the principles and conventions spelled out in iOS Human Interface Guidelines to design a superlative user interface and user experience for your product.

Read This Article Now

Read This Article Now: Design with the User in Mind explains how to create an app that delivers a great user experience. This document introduces the guidelines to follow when programming; it does not describe how to implement your designs in code.

 

App Design

Before you begin writing a line of code, you should make some critical design decisions. Be as specific as possible about your app’s purpose and features. Choose the kind of data model your app will use. Decide on a user interface style for your app; for example, should it follow a master-detail pattern or that of a utility app? Do you want your app to be universal—that is, an app that runs on iPad, iPhone, and iPod touch? These and other design decisions help you to construct the architecture of your app.

image: ../Art/application_design.png

But before you work on that architecture, become familiar with the Cocoa Touch frameworks. After all, your app doesn't exist on its own—it depends on the objects you can create with these frameworks. Get to know the framework objects that implement the basic structure of an app, that serve as the building blocks of your data model, and that compose the unique experience your app presents to users.

Read This Article Now

Read These Articles Now: 

  • Design Your App with Care presents some of the initial design questions you need to ask yourself. It also helps you figure out how to put your design decisions into action.

  • Know the Core Objects of Your App describes the important framework objects that are a part of all iOS apps and how these objects work together.

App Store

The information you’ve read so far focused on how to create an app in Xcode. However, there are other things you must do to publish an app on the App Store.

image: ../Art/app_store.png

To make a great app, you need to test it on actual devices throughout the development process, not just in Simulator. To run an app on iOS-based devices, you need to register the devices you want to test on, create certificates that authorize developers to sign an app, and create an app ID to identify the app.

After you test and refine your app, you need to submit it through iTunes Connect. Your app must be approved by App Store reviewers before it’s published.

Read This Article Now

Read This Article Now: Prepare for App Store Submission describes the administrative aspects of developing apps for the App Store.

 

Finding Information

While developing your apps, you'll need easy access to detailed technical information. Xcode makes that material available at your fingertips as you're coding.

image: ../Art/finding_info.png

Xcode's Quick Help displays concise reference information without taking your focus away from the file you’re editing. Click a symbol, interface object, or build setting to see more information. Control-click areas of Xcode itself for task-based help about how to perform common operations. Each help article offers step-by-step instructions and usually includes a video or illustration for further clarification.

The documentation organizer in Xcode delivers in-depth programming guides, instructive tutorials, illustrative sample code, user guides for the developer tools, and detailed framework API references, all from the iOS Developer Library. The documentation organizer provides a searchable, browsable, integrated view of all of Apple's developer documentation. The iOS Developer Library is also available on the web.

Read This Article Now

Read This Article Now: Find Documentation Quickly illustrates how to use these essential documentation resources.

 

Where To Go From Here

Congratulations! You have now visited all the stations in Start Developing iOS Apps Today and have read the recommended overviews and other short documents. Now you are ready to begin developing iOS Apps on your own. Or you might download a sample app project from the iOS Developer Library to see how everything fits together. To become an efficient and productive iOS developer, however, you should first enroll in the iOS Developer Program and then deepen the knowledge and skills you have just acquired.

Read These Tutorials to Explore iOS App Development

Work through these tutorials to get experience in other areas of app development:

Read These Documents to Deepen Your Knowledge of iOS App Development

The following documents are essential reading for any developer of iOS apps: