Table Of ContentLearning iOS Programming
Alasdair Allan
Editor
Shawn Wallace
Editor
Brian Jepson
Copyright © 2012 Alasdair Allan
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available
for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales
department: (800) 998-9938 or corporate@oreilly.com.
Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media,
Inc. Learning iOS Programming, the image of a lapwing, and related trade dress are trademarks of O’Reilly Media, Inc.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks.
Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the
designations have been printed in caps or initial caps.
While every precaution has been taken in the preparation of this book, the publisher and authors assume no
responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
O'Reilly Media
A Note Regarding Supplemental Files
Supplemental files and examples for this book can be found at
http://examples.oreilly.com/0636920018490/. Please use a standard desktop web browser
to access these files, as they may not be accessible from all ereader devices.
All code files or examples referenced in the book will be available online. For physical
books that ship with an accompanying disc, whenever possible, we’ve posted all CD/DVD
content. Note that while we provide as much of the media content as we are able via free
download, we are sometimes limited by licensing restrictions. Please direct any questions
or concerns to booktech@oreilly.com.
Preface
The arrival of the iPhone changed everything. Or, at the very least, it changed the
direction of software development for mobile platforms, which is a pretty big thing. It has
spawned an entire generation of copycat devices and brought an entire multibillion-dollar
industry to its knees. Despite this, it still fits in your pocket.
Second Edition
Despite the title change to Learning iOS Programming, the book you hold in your hands
is the second edition of Learning iPhone Programming, although there have been
sweeping changes along the way. While the iPhone is just four years old, to me that
sometimes seems like a lifetime.
The changes made in this second edition reflect the fact that a lot has happened since the
first edition was published: the release of the iPad, a major release of Xcode, two revisions
of the operating system itself, and the arrival of Apple’s iCloud. This book has therefore
been refreshed, renewed, and updated to reflect these fairly fundamental changes to the
platform, and all of the example code was rewritten from the ground up for Xcode 4 and
iOS 5 using ARC.
Who Should Read This Book?
This book gives a rapid introduction to programming for the iPhone, iPod touch, and iPad
for those with some programming experience. If you are developing on the Mac for the
first time, drawn to the platform because of the iPhone, or alternatively are an experienced
Mac programmer making the transition to the iOS, this book is for you.
What Should You Already Know?
The book assumes some knowledge of C, or at least passing knowledge of a C-derived
language. Additionally, while I do give a crash course, some familiarity with object-
oriented programming concepts would be helpful.
What Will You Learn?
This book will guide you through developing your first application for the iOS from
opening Xcode for the first time to submitting your application to the App Store. You’ll
learn about Objective-C and the core frameworks needed to develop for the iOS by
writing applications that use them, giving you a basic framework for building your own
applications independently.
What’s in This Book?
Here’s a short summary of the chapters in this book and what you’ll find inside:
Chapter 1, Why Go Native?
This chapter discusses the need for native applications and compares building native
applications to building web applications.
Chapter 2, Becoming a Developer
This chapter walks you through the process of registering as an iOS developer and
setting up your work environment, from installing Xcode and the iOS SDK to
generating the developer certificates you’ll need to build your applications and deploy
them onto your own iPhone, iPod touch, or iPad.
Chapter 3, Your First iOS App
This chapter allows you to get hands-on as quickly as possible and walks you through
building your first Hello World application, including how to deploy and run the
application on your iPhone, iPod touch, or iPad.
Chapter 4, Coding in Objective-C
This chapter provides a crash course in the basics of the Objective-C language, and if
you’re familiar with another C-derived language (and perhaps with object-oriented
programming), it should be enough to get you up and running with Objective-C and
the Cocoa Touch frameworks.
Chapter 5, Table View–Based Applications
The UITableView and associated classes are perhaps the most commonly used classes
when building user interfaces for iOS applications. Due to the nature of the
applications, these classes can be used to solve a large cross section of problems, and
as a result, they appear almost everywhere. In this chapter, we dive fairly deeply into
the table view classes.
Chapter 6, Other View Controllers
After discussing the table view controller in detail, we discuss some of the other view
controllers and classes that will become useful when building your applications: simple
two-screen views, single-screen tabbed views, modal view controllers, and a view
controller for selecting video and images.
Chapter 7, Connecting to the Network
This chapter discusses connecting to the Internet, browsing the Web, sending email,
and retrieving information.
Chapter 8, Handling Data
This chapter discusses how to handle data input, both from the application user and
programmatically, and how to parse XML and JSON documents. The chapter also
covers storing data in flat files and storing data with the SQLite database engine.
Chapter 9, Using Sensors
This chapter discusses how to determine what hardware is available and illustrates
how to deal with the major sensors on iOS devices: the accelerometer, magnetometer,
camera, and GPS.
Chapter 10, Geolocation and Mapping
This chapter walks you through the process of building applications that make use of
the Core Location and MapKit frameworks.
Chapter 11, Introduction to iCloud
This chapter provides a brief introduction to integrating Apple’s iCloud service into
your own applications. iCloud is a service that helps you synchronize your data across
devices, making documents and data available to all of your subscribed devices.
Chapter 12, Integrating Your Application
This chapter shows you some of the tricks to integrate your application with iOS’s
software ecosystem, how to present user preferences with Settings Bundles, and how
to use custom URL schemes to launch your application. It also discusses how to make
use of the Media Player and Address Book.
Chapter 13, Distributing Your Application
This chapter talks about how to add some final polish to your application and walks
you through the process of building your application for distribution, either via ad hoc
distribution or for the App Store.
Chapter 14, Going Further
This chapter provides a collection of pointers to more advanced material on the topics
we covered in the book, as well as material covering some of those topics that we
didn’t manage to talk about in the book.
Conventions Used in This Book
The following typographical conventions are used in this book:
Italic
Indicates new terms, URLs, email addresses, filenames, and file extensions
Constant width
Used for program listings, as well as within paragraphs to refer to program elements
such as variable or function names, databases, data types, environment variables,
statements, and keywords
Constant width bold
Shows commands or other text that should be typed literally by the user
Constant width italic
Shows text that should be replaced with user-supplied values or by values determined
by context
NOTE
This icon signifies a tip, suggestion, or general note.
WARNING
This icon signifies a warning or caution.
Description:Get a rapid introduction to iPhone, iPad, and iPod touch programming. With this easy-to-follow guide, you’ll learn the steps necessary for developing your first marketable iOS application, from opening Xcode to submitting your product to the App Store. Whether you’re a developer new to Mac progr