Learning iPhone Programming Alasdair Allan Editor Brian Jepson Copyright © 2010 Alasdair Allan This book uses RepKover™, a durable and flexible lay-flat binding. 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 [email protected]. O’Reilly and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Learning iPhone 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 author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. O'Reilly Media O'Reilly Media 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 spawned an entire generation of copycat devices and shook an entire multibillion-dollar industry to its knees. Despite this, it still fits in your pocket. Who Should Read This Book? This book gives a rapid introduction to programming for the iPhone and iPod touch 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 you are an experienced Mac programmer making the transition to the iPhone, 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 iPhone, 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 iPhone 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 iPhone developer and setting up your work environment, from installing Xcode and the iPhone SDK to generating the developer certificates you’ll need to build your applications and deploy them onto your own iPhone or iPod touch. Chapter 3, Your First iPhone 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 or iPod touch. 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, TableView-Based Applications The UITableView and associated classes are perhaps the most commonly used classes when building user interfaces for iPhone or iPod touch 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, 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 10, Using Sensors This chapter discusses how to determine what hardware is available and illustrates how to deal with the major sensors on the iPhone and iPod touch: the accelerometer, magnetometer, camera, and GPS. Chapter 11, Geolocation and Mapping This chapter walks you through the process of building applications that make use of the Core Location and MapKit frameworks. Chapter 12, Integrating Your Application This chapter shows you some of the tricks to integrate your application with the iPhone’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, Other Native Platforms This chapter deals with the PhoneGap and MonoTouch platforms for building native applications for the iPhone and iPod touch that can be sold on the App Store. The chapter then walks you through the installation process and building your first Hello World application for both platforms. Chapter 14, Going Further This chapter provides a collection of pointers to more advanced material on the topics we covered in the book, and 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: