Ios 8 For Programmers: An App-driven Approach With Swift by Paul DeitelIos 8 For Programmers: An App-driven Approach With Swift by Paul Deitel

Ios 8 For Programmers: An App-driven Approach With Swift

byPaul Deitel, Harvey M. Deitel, Abbey Deitel

Paperback | December 16, 2014

Pricing and Purchase Info

$29.23 online 
$45.99 list price
Earn 146 plum® points

Prices and offers may vary in store

Out of stock online

Available in stores


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:


  • Welcome App
  • Cannon Game
  • Tip Calculator
  • Doodlz
  • Twitter® Searches
  • Address Book
  • Flag Quiz


Practical, Example-Rich Coverage of:

  • iOS® 8, XCode® 6, Swift
  • Object-Oriented Programming with Swift and Cocoa Touch®
  • UI Design, Storyboards, Auto Layout, Outlets, Outlet Collections, Actions
  • View Controllers, Views, View Animations
  • Event Handling, Multi-Touch
  • Single View, Master-Detail, Game Templates
  • Accessibility, Internationalization
  • Core Data Database Access
  • User Defaults, iCloud Key—Value Storage
  • Social Framework Sharing
  • SpriteKit Game Programming: Animation, Graphics, Physics, Collision Detection
  • Accelerometer and Motion Event Handling
  • Grand Central Dispatch
  • App Store, Pricing, Monetization and more.

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 for updated source code. The changes do not affect Xcode 6.2 users. You can download Xcode 6.2 from (you’ll have to log in with your Apple developer account to see the list of downloads).



  • Download code examples
  • For information on Deitel’s Dive Into® Series programming training courses delivered at organizations worldwide visit or write to
  • Join the Deitel social networking communities on Facebook® at, Twitter® at @deitel, Google+ at, LinkedIn® at, YouTube™ at and subscribe to the Deitel® Buzz Online e-mail newsletter at

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 ( The iPhone 6 and iPhone 6 Plus, released in September 2014, sold over 10 million combined in their first weekend of availability ( iPad sales are equally impressive. The first generation iPad, launched in April 2010, sold 3 million units in its first 80 days of availability ( In just the first quarter of 2014, Apple sold a record 26 million iPads ( At the time of this writing, there were over 1.2 million apps in the App Store ( 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:


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.


Paul Deitel, Harvey Deitel, and Abbey Deitel are from Deitel & Associates, Inc., the internationally recognized programming languages authoring and corporatetraining organization. Millions of people worldwide have used Deitel books, LiveLessons video training and online resource centers to master iOS® app development, Swift™, Java™, ...
Title:Ios 8 For Programmers: An App-driven Approach With SwiftFormat:PaperbackDimensions:400 pages, 9.1 × 7 × 1 inPublished:December 16, 2014Publisher:Pearson EducationLanguage:English

The following ISBNs are associated with this title:

ISBN - 10:0133965260

ISBN - 13:9780133965261


Table of Contents

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


Editorial Reviews

COMMENTS FROM THE REVIEWERS “Excellent writing style which when combined with fantastic real world examples provides for a wonderful learning experience. The use of proper app-quality code examples designed to reflect the new style of Swift coding makes this very detailed book a joy to read. The iOS development book for the serious Swift developer. Provides solid, real-world apps, which are ready for the App Store. The book’s excellent writing style takes the skilled user on a line-by-line analysis of the complexities of iOS 8 programming, dealing with such subjects as UIKit, SpriteKit, Core Data and internationalization. Easily the best tutorial on Storyboards I’ve ever read. This text will never be far from the professional programmer’s side and provides so much more than a regurgitation of existing reference documentation or basic 'cookbook' examples. One of the best books on the subject and a must-have for any developer’s bookcase. Now completely updated to cover Swift and iOS8, this series really has turned into the definitive iOS developers guide.” –Rik Watson, Technical Team Lead, HP Enterprise Services   “A comprehensive companion for those new to iOS development as well as experienced Objective-C developers looking to learn Swift, Apple’s newest language. You’ll build seemingly complex projects, including a cannon game and a paint app. But you’ll quickly realize, that with the Deitels’ writing and app-driven approach, and with the iOS frameworks, building these apps is a piece of cake. The Cannon Game App is an interesting and engaging introduction to iOS game development with SpriteKit. You’ll learn basics of game design, including how to blend physics, sound, and animation. You can even use the sample code in your own app since it’s under a Creative Commons license.” –Scott Bossak, Thrillist Media Group   “The Deitels have written a guide book that will give developers new to iOS or the Swift programming language a solid ground stone from which to build their own apps. Each chapter is based on an app, many of which could rightly be in the App Store, and they take you through that app step by step. In no time at all you’ll feel confident about stepping out on your own developing apps targeting Apple’s latest mobile OS, iOS 8, using Xcode 6 and Apple’s new programming language Swift. You will touch on storing data between runs using NSUserDefaults and synchronising data using iCloud. And you will take advantage of executing tasks in parallel with Grand Dispatch, write a game with SpriteKit using physics, learn the magic of Auto Layout and much more.” –Robert McGovern, Indie Developer   “iOS 8 for programmers is a great book to get you up and running with iOS programming. Each chapter will teach you how to build an app from scratch. From the simple Tip Calculator app, all the way through to a fun game which will have you learning about SpriteKit. This book explains everything through the use of real-world examples. The writing is easy to read, giving step-by-step guidance alongside screenshots. This makes understanding complicated topics such as Auto Layout a breeze. I was particularly impressed by the fact that this book gives a good overview of localization and accessibility. Both are things which all iOS developers will need to use at some point. The book also covers the business of apps–something that I’ve not seen other books do. Overall, this book is going to suit you well if you’re new to iOS programming with Swift and want to dive straight in.” –Matt Galloway, iOS Developer and author of Effective Objective-C 2.0   “In the Introduction, the history of the sales numbers of all the different versions serves as motivation. I liked the Twitter Searches app–you did a good job stepping through the process to get the storyboard setup. I liked the Flag Quiz project. I liked your design for handling the various screen sizes in the Cannon Game app. Lots of good information in the App Store and App Business Issues chapter.” –Michael Haberman, Software Engineer, Instructor at University of Illinois   “I honestly feel that the Welcome app is pretty much perfect. It is a solid introduction to Xcode’s UI–one of the best I’ve read. The coverage of localization and accessibility is also a good start and it’s nice that you introduce these ideas at the beginning of the book. The Tip Calculator app is a really solid chapter–I think the reader will get a real sense of achievement by the time they get to the end of it, particularly having an app that looks like it fits in with the OS. I like getting the data from the filenames in the Flag Quiz app–it’s a handy trick. The Cannon Game app chapter lays a solid foundation for building games–the coverage of physics is good–it alludes to the power available without being overwhelming. Doodlz app is an excellent chapter–it takes a seemingly daunting app to attempt (and something you might see in the App Store) and makes it look easy; the descriptions are clear and to the point. I really like the sections on monetizing and marketing your apps; there is a lot of useful content there and the links are invaluable.” –Robert McGovern, Indie Developer   “The Cannon Game app is an excellent example with great code–I couldn’t find anything to criticise. The Doodlz app is an excellent chapter.” –Rik Watson, Technical Team Lead for HP Enterprise Services (Applications Services)   “I have reviewed a lot of chapters for many publishers–Twitter Searches is the first time I have managed to go through without any substantive comments–great job.” –Charles Brown, Independent Contractor Affiliated with Apple and Adobe   COMMENTS FROM THE EARLY iPHONE EDITION REVIEWERS “I wish I’d had this book when I started developing on the iPhone. What took me a lot of time and many mistakes to learn, is beautifully explained in a clear, concise style that will take you from zero to publishing your first app in no time. By the end of Chapter 1, Introduction to iPhone App Development, I’ve already seen a custom app run in the iPhone simulator–this is crucial, and very well done. I can see the app on my Mac–superb. I now have a good picture of what I’m about to embark on. The Tip Calculator app is great; it includes several basic but critical operations (converting between data types, displaying data and accepting input, formatting things and handling events).” –Marcantonio Magnarapa, Research & Development on Mobile Platforms, Ogilvy Interactive   “Covers a wide variety of iPhone programming topics. It provides needed advice on how to use XCode, how to submit your app to the App Store, how to set your price, and how to deal with other non-programming issues in iPhone development. Gives a quick start to iPhone programming, showing how to build complete iPhone apps. Briefly describes the purpose of each app, the coding technologies used to build it, and a detailed line-by-line walkthrough of the code. All of the code and project files are included so you can compile and test-drive each of the apps. I like the way you introduce the completed app up front, providing a framework for discussing how to build it. The chapter on iPhone App Store and App Business Issues provides a great overview of non-programming issues involved in selling iOS apps. The detailed information on how to set up the DRM (certificates and profiles) will save even experienced developers valuable time. A very easy introduction to using Interface Builder to lay out the interface of the Welcome app. The Flag Quiz Game app is quite fun! The Favorite Twitter® Searches app source code is very relevant, and easy to follow. I like the Cannon Game app. The Painter app [now Doodlz] is very polished and well organized–I had fun painting pictures.” –Zach Saul, Founder, Retronyms, and co-creator of Recorder–one of the 10 top-selling iPhone apps for 2008   “I liked the Welcome app without code to show the power of Xcode and Interface Builder. The Tip Calculator app chapter is the best introductory chapter on iOS programming I’ve read. Twitter® Searches app nailed it again– most books are barely out of ‘Hello World’ territory at this point, but here we are writing genuinely useful apps. How the Flag Quiz Game app is implemented is riveting stuff. The best introduction to tables I’ve read.” –Rik Watson, Senior Software Engineer, Lockheed Martin