Home > Store

iOS 8 for Programmers: An App-Driven Approach with Swift, 3rd Edition

Register your product to gain access to bonus material or receive a coupon.

iOS 8 for Programmers: An App-Driven Approach with Swift, 3rd Edition

eBook (Watermarked)

  • Your Price: $25.59
  • List Price: $31.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Description

  • Copyright 2015
  • Dimensions: 7" x 9-1/8"
  • Edition: 3rd
  • eBook (Watermarked)
  • ISBN-10: 0-13-396543-0
  • ISBN-13: 978-0-13-396543-8

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 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

  • Download code examples
  • For information on Deitel’s Dive Into® Series programming training courses delivered at organizations worldwide visit www.deitel.com/training or write to deitel@deitel.com
  • Join the Deitel social networking communities on Facebook® at facebook.com/DeitelFan, Twitter® at @deitel, Google+ at google.com/+DeitelFan, LinkedIn® at bit.ly/DeitelLinkedIn, YouTube™ at youtube.com/user/DeitelTV and subscribe to the Deitel® Buzz Online e-mail newsletter at www.deitel.com/newsletter/subscribe.html


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.

Sample Content

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

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020