With every successive release of iOS and its related hardware products, Apple and journalists the world over spout hyperbolic statements about “revolutionary” features, “insanely great” devices, and “unbelievable” sales. The numbers don’t disappoint, with hundreds of millions of iOS devices having been sold and billions of dollars sent to developers in revenue. As we enter the post-PC era, we do so using our smartphones and tablets. Apple’s iOS is consistently the most user-friendly, powerful platform for these new devices, and developers the world over benefit from offering their products on the App Store. That being said, it is a market that continues to grow every day, especially when customers can obtain an iPhone for next to nothing up front with a two-year contract. As the barrier to entry to the smartphone market declines and the user base goes up, opportunity skyrockets. This book will allow you to take advantage of that opportunity. We’ll get up and running using Xcode on Mac OS X, we’ll create applications as we learn Objective-C (the language in which you’ll be developing your apps), and we’ll tour the frameworks that make Cocoa Touch one of the best development environments in the world.
As you should get used to when programming for an Apple environment, there are rules. As such, there are some things you’ll need to go through this book: a Mac with an Intel processor running Mac OS X 10.7 (Lion) or newer, with Xcode 4.3 or newer (available from the Mac App Store), and ideally an iOS device running iOS 5.1 or newer. While older versions of Mac OS X, Xcode, and iOS may still be in use, screenshots and step-by-step instructions in this book may not work for other versions.
This book assumes a basic level of programming knowledge. You don’t have to be an expert, but any experience you have with C, C++, or even Java will be useful to help frame concepts explained in the early stages of the book. You should also be familiar with the basics of Apple’s Mac OS X and iOS operating systems, enough to get around the filesystem in Mac OS X and launch Xcode and enough to launch apps and understand typical app behavior on iOS.