HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
The professional programmer’s Deitel® guide to iPhone® and iPad® app development using iOS® 8, Swift™, Xcode® 6, and Cocoa Touch®
Billions of apps have been downloaded from Apple’s App Store! This book gives you everything you’ll need to start developing great iOS 8 apps quickly using Swift–Apple’s programming language of the future. You’ll also learn what makes a great app and how to publish your apps in the App Store. The book uses an app-driven approach–each new technology is discussed in the context of seven fully tested iOS 8 apps, complete with syntax shading, code highlighting, code walkthroughs and sample outputs. Apps you’ll develop include:
Practical, Example-Rich Coverage of:
IMPORTANT NOTE ABOUT XCODE AND SWIFT: With Xcode 6.3 and Swift 1.2, Apple introduced several changes in Swift that affect the book's source code. Please visit www.deitel.com/books/iOS8FP1 for updated source code. The changes do not affect Xcode 6.2 users. You can download Xcode 6.2 from developer.apple.com/downloads/index.action (you’ll have to log in with your Apple developer account to see the list of downloads).
¿Visit www.deitel.com
About This Book
Sales of iOS devices and app downloads have been explosive. The first-generation iPhone sold 6.1 million units in its initial five quarters of availability (bit.ly/iPhoneGen1l). The iPhone 6 and iPhone 6 Plus, released in September 2014, sold over 10 million combined in their first weekend of availability (bit.ly/FirstiPhone6Weekend). iPad sales are equally impressive. The first generation iPad, launched in April 2010, sold 3 million units in its first 80 days of availability (bit.ly/iPadGen1). In just the first quarter of 2014, Apple sold a record 26 million iPads (bit.ly/iPad2014Q1). At the time of this writing, there were over 1.2 million apps in the App Store (bit.ly/iOSApps2014) and more than 75 billion apps have been downloaded!
This book presents leading-edge computing technologies for professional software developers. At the heart of the book is the Deitel “app-driven approach”– a variant of Deitel’s live-code approach–concepts are presented in the context of complete working iOS apps, rather than using code snippets. The introduction and app test drives at the beginning of each chapter show one or more sample executions. The book’s source code is available at: www.deitel.com/books/iOS8FP1.
You’ll quickly learn everything you need to start building iOS 8 apps–beginning with a test-drive of the Tip Calculator app in Chapter 1, then building your first apps in Chapter 2 with visual programming and in Chapter 3 with Swift. By the time you reach Chapter 9, you’ll be ready to create your own apps for submission to the App Store. We’ll overview the submission process, including uploading your apps, deciding whether to sell your apps or offer them for free, and marketing them using in-app advertising, social media, Internet public relations and more.
Preface xix
Before You Begin xxvii
Chapter 1: Introduction to iOS 8 App Development and Swift 1
1.1 Introduction 2
1.2 iPhone and iPad Sales Data 3
1.3 Gestures 4
1.4 Sensors 5
1.5 Accessibility 6
1.6 iPhone 6 and iPhone 6 Plus 7
1.7 iOS Operating System History and Features 8
1.8 iOS 8 16
1.9 Apple Watch 18
1.10 App Store 19
1.11 Objective-C 20
1.12 Swift: Apple’s Programming Language of the Future 20
1.13 Can I Use Swift Exclusively? 24
1.14 Cocoa Touch® iOS Frameworks 25
1.15 Xcode 6® Integrated Development Environment 31
1.16 Object Oriented-Programming Review 33
1.17 Test-Driving the Tip Calculator App in the iPhone and iPad Simulators 36
1.18 What Makes a Great App? 38
1.19 iOS Security 40
1.20 iOS Publications and Forums 41
1.21 Wrap-Up 42
Chapter 2: Welcome App 43
Dive-Into® Xcode: Introducing Visual User Interface Design with Cocoa Touch, Interface Builder, Storyboarding and Auto Layout, Universal Apps, Accessibility, Internationalization
2.1 Introduction 44
2.2 Technologies Overview 45
2.3 Creating a Universal App Project with Xcode 46
2.4 Xcode Workspace Window 49
2.5 Storyboarding the Welcome App’s UI 52
2.6 Running the Welcome App 64
2.7 Making Your App Accessible 67
2.8 Internationalizing Your App 69
2.9 Wrap-Up 74
Chapter 3: Tip Calculator App 75
Introducing Swift, Text Fields, Sliders, Outlets, Actions, View Controllers, Event Handling, NSDecimalNumber, NSNumberFormatter and Automatic Reference Counting
3.1 Introduction 76
3.2 Technologies Overview 77
3.3 Building the App’s UI 85
3.4 Creating Outlets with Interface Builder 96
3.5 Creating Actions with Interface Builder 99
3.6 Class ViewController 100
3.7 Wrap-Up 109
Chapter 4: Twitter® Searches App 111
Master-Detail Applications, Split View Controllers, Navigation Controllers, Storyboard Segues, Social Framework Sharing, User Defaults, iCloud Key—Value Storage, Collections, Web Views, Alert Dialogs
4.1 Introduction 112
4.2 Test-Driving the App 113
4.3 Technologies Overview 120
4.4 Building the App’s UI 128
4.5 Class Model 131
4.6 Class MasterViewController 141
4.7 Class DetailViewController 154
4.8 Wrap-Up 157
Chapter 5: Flag Quiz App 158
UISegmentedControls, UISwitches, Outlet Collections, View Animations, UINavigationController, Segues, NSBundle, Scheduling Tasks with Grand Central Dispatch
5.1 Introduction 159
5.2 Test-Driving the Flag Quiz App 161
5.3 Technologies Overview 165
5.4 Building the GUI 170
5.5 Model Class 178
5.6 QuizViewController Class 184
5.7 SettingsViewController Class 193
5.8 Wrap-Up 196
Chapter 6: Cannon Game App 198
Xcode Game Template, SpriteKit, Animation, Graphics, Sound, Physics, Collision Detection, Scene Transitions, Listening for Touches
6.1 Introduction 199
6.2 Test-Driving the Cannon Game App 202
6.3 Technologies Overview 203
6.4 Creating the Project and Classes 209
6.5 Class GameViewController 211
6.6 Class Blocker 213
6.7 Class Target 218
6.8 Class Cannon 221
6.9 Class GameScene 226
6.10 Class GameOverScene 235
6.11 Programmatic Internationalization 237
6.12 Wrap-Up 240
Chapter 7: Doodlz App 242
Multi-Touch Event Handling, Graphics, UIBezierPaths, Drawing with a Custom UIView Subclass, UIToolbar, UIBarButtonItem, Accelerometer Sensor and Motion Event Handling
7.1 Introduction 243
7.2 Test-Driving the Doodlz App 244
7.3 Technologies Overview 249
7.4 Building the App’s UI and Adding Its Custom Classes 251
7.5 ViewController Class 257
7.6 Squiggle Class 261
7.7 DoodleView Class 262
7.8 ColorViewController Class 267
7.9 StrokeViewController Class 269
7.10 Wrap-Up 271
Chapter 8: Address Book App 273
Core Data Framework, Master-Detail Template with Core Data Support, Xcode Data Model Editor, UITableView with Static Cells, Programmatically Scrolling UITableViews
8.1 Introduction 274
8.2 Test-Driving the Address Book App 276
8.3 Technologies Overview 279
8.4 Creating the Project and Configuring the Data Model 282
8.5 Building the GUI 285
8.6 MasterViewController Class 288
8.7 DetailViewController Class 299
8.8 AddEditTableViewController Class 303
8.9 AppDelegate Class 309
8.10 Wrap-Up 311
Chapter 9: App Store and App Business Issues 312
Introducing the iOS Developer Program and iTunes® Connect
9.1 Introduction 313
9.2 iOS Developer Program: Setting Up Your Profile for Testing and Submitting Apps 313
9.3 iOS Human Interface Guidelines 317
9.4 Preparing Your App for Submission through iTunes Connect 318
9.5 Pricing Your App: Fee or Free 321
9.6 Monetizing Apps 324
9.7 Managing Your Apps with iTunes Connect 327
9.8 Information You’ll Need for iTunes Connect 328
9.9 iTunes Connect Developer Guide: Steps for Submitting Your App to Apple 330
9.10 Marketing Your App 331
9.11 Other Popular Mobile App Platforms 336
9.12 Tools for Multiple-Platform App Development 336
9.13 Wrap-Up 337
Index 339