O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

iOS 8 App Development with Swift

Video Description

In these two LiveLessons videos, Paul Deitel presents everything you need to know to become an expert iOS programmer using the Swift programming language. In Swift Fundamentals LiveLessons, Deitel teaches core Swift programming concepts through his signature "live code" approach. In iOS 8 App Development Fundamentals LiveLessons, Deitel uses an app-driven approach each new technology is discussed in the context of seven fully tested iOS 8 apps.

Code examples used in the LiveLesson are available for download at: http://www.deitel.com/books/SwiftFP and here:

http://www.informit.com/content/images/9780133965445/downloads/iOS8FP1_examples.zip

Skill Level

Beginner-to-intermediate app developers who are familiar with a C-based object-oriented programming language

Who should take this course?

  • Objective-C programmers who are developing new or modifying existing iOS and/or OS X apps, and who want to quickly begin using Swift in their apps
  • Java, C++ and C# programmers who are new to iOS and OS X development, and who want to start developing iOS and/or OS X apps in Swift.

Course requirements (Familiarity with any C-based, object-oriented programming language, such as Objective-C, Java, C++ or C#. Objective-C experience is not specifically required.

Table of Contents

Swift Fundamentals

Part I

Before you begin

Lesson 1: Introduction to Swift and Xcode 6

Lesson 2: Introduction to Swift Programming

Lesson 3: Introduction to Classes, Objects, Methods and Functions

Lesson 4: Control Statements; Assignment, Increment and Logical Operators

Lesson 5: Functions and Methods: A Deeper Look; enums and Tuples

Lesson 6: Arrays and an Introduction to Closures

Part II

Lesson 7: Dictionary

Lesson 8: Classes: A Deeper Look and Extensions

Lesson 9: Structures, Enumerations and Nested Types

Lesson 10: Inheritance, Polymorphism and Protocols

Lesson 11: Generics

Lesson 12: Operator Overloading and Subscripts

iOS 8 App Development Fundamentals

Part I

Before You Begin

Lesson 1: Introduction to iOS 8 App Development and Swift

Lesson 2: Welcome App

Lesson 3: Tip Calculator App

Lesson 4: Twitter Searches App

Part II

Lesson 5: Flag Quiz App

Lesson 6: Cannon Game App

Lesson 7: Doodlz App

Lesson 8: Address Book App



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 (the website for the book on which these videos are based) 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).

Table of Contents

  1. Introduction
    1. Swift Fundamentals LiveLessons: Introduction to Part I 00:14:32
  2. BeforeYouBegin: Setting Up Your Development Environment
    1. Lesson Introduction 00:01:41
    2. Before You Begin 00:09:03
  3. Lesson 1: Introduction to Swift and Xcode 6
    1. Lesson Introduction 00:02:03
    2. Swift Introduction 00:25:58
    3. Creating Swift Apps with Xcode 6: Creating a Playground 00:10:57
    4. Creating Swift Apps with Xcode 6: Creating a Project 00:10:03
  4. Lesson 2: Introduction to Swift Programming
    1. Lesson Introduction 00:02:33
    2. A First Swift Program: Printing a Line of Text 00:10:09
    3. Displaying a Single Line of Text with Multiple Statements 00:00:49
    4. Displaying Multiple Lines of Text with a Single Statement 00:01:44
    5. Composing Larger Strings with String Interpolation—Introducing constants, variables, type inference, type annotations, built-in types, initialization and Identifier naming 00:11:08
    6. Addition program—Introducing the arithmetic operators and overflow checking 00:12:05
    7. The if Conditional Statement and the Comparative Operators 00:10:47
  5. Lesson 3: Introduction to Classes, Objects, Methods and Functions
    1. Lesson Introduction 00:02:56
    2. Account Class: Defining a Class 00:10:05
    3. Account Class: Defining a Class Attribute as a Stored Property 00:04:46
    4. Account Class: Defining a public Stored Property with a private Setter 00:03:33
    5. Account Class: Initializing a Class’s Properties with init 00:07:20
    6. Account Class: Defining a Class’s Behaviors as Methods 00:05:07
    7. Creating and Using Account Objects: Importing the Foundation Framework 00:02:49
    8. Creating and Using Account Objects: Creating and Configuring an NSNumberFormatter to Format Currency Values 00:04:43
    9. Creating and Using Account Objects: Defining a Function—formatAccountString 00:06:42
    10. Creating and Using Account Objects: Creating Objects and Calling an Initializer 00:06:19
    11. Creating and Using Account Objects: Calling Methods on Objects—Depositing into Account Objects 00:03:13
    12. Creating and Using Account Objects: Calling Methods on Objects—Withdrawing from Account Objects 00:01:36
    13. Value Types vs. Reference Types 00:06:53
    14. Software Engineering with Access Modifiers 00:06:27
  6. Lesson 4: Control Statements; Assignment, Increment and Logical Operators
    1. Lesson Introduction 00:02:56
    2. if and if...else Conditional Statements and the Ternary Conditional Operator (?:) 00:08:29
    3. Compound Assignment Operators 00:01:24
    4. Increment and Decrement Operators 00:04:01
    5. switch Conditional Statement 00:12:16
    6. while Loop Statement and an Introduction to the Xcode playground timeline 00:04:01
    7. do...while Loop Statement 00:03:04
    8. for...in Loop Statement and the Range Operators: Iterating over Collections of Values with Closed Ranges, Half-Open Ranges and the Global stride Function; Locating Documentation about Swift Standard Library Features. 00:09:59
    9. for...in Loop Statement and the Range Operators: Compound-Interest Calculations with for...in 00:12:14
    10. for Loop Statement 00:04:31
    11. break Statement 00:01:04
    12. continue Statement 00:01:08
    13. Logical Operators 00:04:30
  7. Lesson 5: Functions and Methods: A Deeper Look; enums and Tuples
    1. Lesson Introduction 00:03:31
    2. Multiple-Parameter Function Definition 00:07:34
    3. Random-Number Generation: Rolling a Six-Sided Die 20 Times 00:04:48
    4. Introducing Enumerations and Tuples: Dice Game Example; Tuples and Multiple Function Return Values; Tuples as Function Arguments 00:24:24
    5. Scope of Declarations 00:09:10
    6. Function and Method Overloading 00:05:26
    7. External Parameter Names 00:11:31
    8. Default Parameter Values 00:02:11
    9. Passing Arguments by Value or by Reference 00:02:11
    10. Recursion 00:02:11
    11. Nested Functions 00:05:14
  8. Lesson 6: Arrays and an Introduction to Closures
    1. Lesson Introduction 00:05:46
    2. Array overview 00:05:56
    3. Creating and Initializing Arrays 00:11:47
    4. Iterating Through Arrays 00:09:48
    5. Adding and Removing Array Elements 00:11:01
    6. Subscript Expressions with Ranges—Slicing an Array 00:06:51
    7. Closures and Closure Expressions 00:03:02
    8. Array Methods sort and sorted 00:17:42
    9. Array Methods filter, map and reduce—Introduction to Internal Iteration 00:07:35
    10. Filtering an Array 00:05:15
    11. Mapping an Array’s Elements to New Values 00:01:55
    12. Reducing an Array’s Elements to a Single Value 00:01:53
    13. Combining Filtering, Mapping and Reducing 00:03:46
    14. Card Shuffling and Dealing Simulation—Class Card and an Introduction to Computed Properties 00:06:01
    15. Card Shuffling and Dealing Simulation—Class DeckOfCards, Reference-Type Arrays and an Introduction to Optionals 00:09:28
    16. Card Shuffling and Dealing Simulation—Shuffling and Dealing Cards, and Unwrapping Optional Values with Optional Binding and the if Statement 00:11:31
    17. Passing Arrays to Functions by value and by reference 00:08:03
    18. Multidimensional Arrays 00:12:32
    19. Variadic parameters 00:06:43
  9. Introduction
    1. Swift Fundamentals LiveLessons: Introduction to Part II 00:20:57
  10. Lesson 7: Dictionary
    1. Lesson Introduction 00:03:33
    2. Dictionary overview 00:04:57
    3. Declaring Dictionary Key-Value Pairs and Dictionary Literals 00:06:48
    4. Delcaring and Printing Empty Dictionary Objects 00:04:29
    5. Iterating through a Dictionary with for...in 00:04:57
    6. General-Purpose Generic Dictionary Printing Function 00:03:36
    7. Dictionary Comparison Operators == and != 00:03:33
    8. Dictionary count and isEmpty properties 00:03:18
    9. Dictionary with Values that are Arrays 00:06:33
    10. Dictionary Properties keys and values 00:06:32
    11. Inserting, Modifying and Removing Key-Value Pairs with Subscripting 00:08:48
    12. Inserting, Modifying and Removing Key-Value Pairs with Dictionary Methods 00:07:56
    13. Builing a Dictionary Dynamically: Word Countsin a String 00:07:01
  11. Lesson 8: Classes: A Deeper-Look and Extensions
    1. Lesson Introduction 00:05:42
    2. Time Class: Default Initializers and Property Observers 00:04:14
    3. Stored Property Initialization and the Default Initializer 00:03:02
    4. willSet and didSet Property Observers for Stored Properties 00:06:18
    5. Computed Read-Only Properties universalDescription and description 00:03:22
    6. Using Class Time 00:08:21
    7. Class Time with Overloaded Designated and Convenience Initializers 00:10:06
    8. Designated Initializers 00:06:39
    9. Convenience Initializers and Initializer Delegation with self 00:02:38
    10. Using Class Time’s Designated and Convenience Initializers 00:06:40
    11. Failable Initializers in Class Time 00:15:20
    12. Extensions to Class Time 00:07:26
    13. Read-Write Computed Properties 00:09:42
    14. Composition 00:07:06
    15. Automatic Reference Counting, Strong References and Weak References 00:03:18
    16. Deinitializers 00:01:37
    17. Using NSDecimalNumber for Precise Monetary Calculations 00:06:29
    18. Type Properties and Type Methods 00:12:52
    19. Lazy Stored Properties and Delayed Initialization 00:03:00
  12. Lesson 9: Structures, Enumerations and Nested Types
    1. Lesson Introduction 00:03:18
    2. Prefer Constants and Immutability By Default 00:04:41
    3. Time struct Definition with Default and Memberwise Initializers 00:08:04
    4. Custom Initializers extension to struct Time 00:04:52
    5. Computed Properties extension to struct Time 00:02:27
    6. Mutating Methods extension to struct Time 00:04:14
    7. Testing the Time struct 00:07:09
    8. Enumerations and Nested Types 00:03:57
    9. Card struct with Nested Suit and Face enum Types 00:04:33
    10. Nested enum Type Suit 00:06:28
    11. Nested enum Type Face 00:03:59
    12. Using enum Constants in switch Statements 00:02:00
    13. DeckOfCards struct 00:07:07
    14. Testing the struct Types Card and DeckOfCards, and the enum Types Suit and Face; Creating an enum Constant from a Raw Value 00:08:35
    15. Choosing Among Structures, Enumerations and Classes in Your Apps 00:04:15
    16. Associated Values for enums 00:03:50
    17. Demonstrating Associated Values with Optional<Int> 00:06:49
  13. Lesson 10: Inheritance, Polymorphism and Protocols
    1. Lesson Introduction 00:03:36
    2. Superclasses and Subclasses 00:02:11
    3. An Inheritance Hierarchy 00:03:19
    4. Utility Functions Used in Each of This Lesson’s Examples 00:04:20
    5. Using Inheritance to Create Related Employee Types—Superclass CommissionEmployee 00:07:30
    6. Using Inheritance to Create Related Employee Types—Subclass BasePlusCommissionEmployee 00:11:31
    7. Using Inheritance to Create Related Employee Types—Testing the Class Hierarchy 00:13:18
    8. Access Modifiers in Inheritance Hierarchies 00:04:16
    9. Introduction to Polymorphism: A Polymorphic Video Game Discussion 00:05:01
    10. Payroll System Class Hierarchy Using Polymorphism 00:02:42
    11. Payroll System Class Hierarchy Using Polymorphism—Base Class Employee 00:04:17
    12. Payroll System Class Hierarchy Using Polymorphism—Subclass SalariedEmployee 00:04:51
    13. Payroll System Class Hierarchy Using Polymorphism—Subclass CommissionEmployee 00:03:34
    14. Payroll System Class Hierarchy Using Polymorphism—Indirect Subclass BasePlusCommissionEmployee 00:02:53
    15. Polymorphic Processing 00:14:42
    16. Creating and Using Custom Protocols 00:10:27
    17. Creating and Using Custom Protocols—Declaring Protocol Payable 00:07:49
    18. Creating and Using Custom Protocols—Creating Class Invoice 00:11:43
    19. Creating and Using Custom Protocols—Using Extensions to add Printable and Payable Conformance to Class Employee 00:04:26
    20. Creating and Using Custom Protocols—Using Protocol Payable to Process Invoices and Employees Polymorphically 00:08:27
    21. Additional Protocol Features 00:07:20
    22. Using final to Prevent Method Overriding and Inheritance 00:01:21
    23. Initialization and Deinitialization in Class Hierarchies—Basic Class-Instance Initialization 00:02:10
    24. Initialization and Deinitialization in Class Hierarchies—Initialization in Class Hierarchies 00:03:39
    25. Initialization and Deinitialization in Class Hierarchies—Overriding Initializers and Required Initializers 00:01:53
    26. Initialization and Deinitialization in Class Hierarchies—Deinitialization in Class Hierarchies 00:01:40
  14. Lesson 11: Generics
    1. Lesson Introduction 00:03:52
    2. Motivation for generic functions 00:04:45
    3. Generic Functions: Implementation and Specialization 00:05:22
    4. Type Parameters with Type Constraints 00:05:31
    5. Generic Types—Implementing a Generic Stack Type 00:07:20
    6. Generic Types—Testing the Generic Stack Type 00:06:42
    7. Note About Associated Types for Protocols 00:01:28
  15. Lesson 12: Operator Overloading and Subscripts
    1. Lesson Introduction 00:04:20
    2. Overview 00:02:15
    3. String Operators and Methods: Variables and Constants 00:01:43
    4. String Operators and Methods: Comparative Operators 00:03:31
    5. String Operators and Methods: Custom String Unary Prefix Operator ! 00:02:58
    6. String Operators and Methods: Concatenation with + and += 00:01:49
    7. String Operators and Methods: Subscript Operator for Creating Substrings 00:03:44
    8. String Operators and Methods: Other String Methods 00:03:57
    9. Custom Complex Numeric Type with Overloaded Arithmetic Operators 00:09:34
    10. Overloading Arithmetic Operators for Class NSDecimalNumber 00:03:50
    11. Overloading Unary Operators ++ and -- 00:10:45
    12. Overloading Subscripts 00:13:42
    13. Custom Operators Overview 00:06:54
    14. Custom Generic Defining a Custom Exponentiation Operator for Type Int 00:06:22
    15. Custom Generic Operators 00:05:40
  16. Part 1 Introduction
    1. Introduction to iOS 8 App-Development Fundamentals with Swift, Part I 00:21:07
  17. BeforeYouBegin: Setting Up Your Development Environment
    1. Lesson Introduction 00:02:16
    2. Before You Begin: Configuring Your System for iOS Development 00:18:03
  18. Lesson 1: Introduction to iOS 8 App Development and Swift
    1. Lesson Introduction 00:01:53
    2. Test-Driving the Completed Application Using the iPhone Simulator 00:14:32
    3. Test-Driving the Completed Application on an iOS Device 00:08:56
  19. Lesson 2: Welcome App Dive-Into® Xcode
    1. Lesson Introduction 00:05:46
    2. Test-Driving the Completed Welcome App 00:03:38
    3. Technologies Overview 00:10:03
    4. Creating and Configuring a Project 00:09:03
    5. Xcode Workspace Window 00:07:42
    6. Keyboard Shortcuts 00:01:23
    7. Storyboarding the UI—Configuring Portrait and Landscape Orientations 00:02:53
    8. Storyboarding the UI—Providing an App Icon 00:06:57
    9. Storyboarding the UI—Creating an Image Set for the App’s Image 00:02:46
    10. Storyboarding the UI—Overview of the Storyboard 00:04:25
    11. Storyboarding the UI—Adding an Image View to the UI and Using Inspectors to Configure the Image View 00:07:13
    12. Storyboarding the UI—Adding and Configuring the Label 00:08:23
    13. Storyboarding the UI—Using Auto Layout to Support Different Screen Sizes and Orientations; Running the completed app 00:19:47
    14. Making Your App Accessible 00:13:16
    15. Internationalizating Your App 00:02:11
    16. Locking Your UI 00:03:28
    17. Exporting Your Ui’s String Resources 00:04:51
    18. Translating the String Resources 00:07:02
    19. Importing the Translated String Resources 00:04:08
    20. Testing the App in Spanish in the Simulator or on a Device 00:06:22
  20. Lesson 3: Tip Calculator App
    1. Lesson Introduction 00:05:02
    2. Technologies Overview—Swift Programming 00:03:21
    3. Technologies Overview—Swift Apps and the Cocoa Touch Frameworks 00:02:13
    4. Technologies Overview—Importing Frameworks; UI Components; View Controllers 00:03:01
    5. Technologies Overview—Linking UI Components to Your Swift Code 00:02:19
    6. Technologies Overview—Performing Tasks After a View Loads 00:03:01
    7. Technologies Overview—Financial Calculations with NSDecimalNumber; Swift’s Numeric Types 00:02:40
    8. Technologies Overview—Locale-Specific Numeric Formatting 00:01:02
    9. Technologies Overview—Briding Between Swift and Objective-C 00:03:40
    10. Technologies Overview—Operator Overloading 00:01:30
    11. Technologies Overview—Variable Initialization and Swift Optional Types 00:03:39
    12. Technologies Overview—Value Types vs. Reference Types 00:06:54
    13. Creating the TipCalculator Project 00:03:08
    14. Configuring the Size Classes for Designing a Portrait Orientation iPhone App 00:03:40
    15. Adding the UI Components—Adding the “Bill Amount” Label 00:01:59
    16. Adding the UI Components—Adding the Label That Displays the Formatted User Input 00:04:43
    17. Adding the UI Components—Adding the “Custom Tip Percentage” Label and a Label to Display the Current Custom Tip Percentage 00:02:07
    18. Adding the UI Components—Creating the Custom Tip Percentage Slider 00:01:43
    19. Adding the UI Components—Adding the “15%” and “18%” Labels 00:02:23
    20. Adding the UI Components—Creating the Labels that Display the Tips and Totals 00:06:21
    21. Adding the UI Components—Creating the “Tip” and “Total” Labels to the Left of the Yellow Labels 00:02:01
    22. Adding the UI Components—Creating the Text Field for Receiving User Input 00:04:21
    23. Adding the Auto Layout Constraints—Adding the Missing Auto Layout Contraints 00:03:29
    24. Adding the Auto Layout Constraints—Setting the Yellow Labels to Have Equal Widths 00:04:30
    25. Adding the Auto Layout Constraints—Debugging the Missing “18%” Label 00:05:39
    26. Creating Outlets with Interface Builder 00:09:48
    27. Creating Actions with Interface Builder 00:07:06
    28. Class ViewController—import Declarations 00:04:24
    29. Class ViewController—Class Definition 00:03:34
    30. Class ViewController—@IBOutlet Properties, Automatic Reference Counting and Property Attributes 00:08:55
    31. Class ViewController—Other Properties 00:07:00
    32. Class ViewController—Overridden Method viewDidLoad 00:06:54
    33. Class ViewController—Action Method calculateTip 00:25:16
    34. Class ViewController—Global String Formatting and Overloaded Operator Functions 00:08:06
  21. Lesson 4: Twitter Searches App
    1. Lesson Introduction 00:06:27
    2. Test-Driving the Completed Twitter Searches App 00:18:16
    3. Technologies Overview—Master-Detail Application Template 00:02:11
    4. Technologies Overview—Web View and Displaying Web Content in An App 00:01:33
    5. Technologies Overview—Swift: Array and Dictionary Collections 00:07:32
    6. Technologies Overview—NSUserDefaults for Local Key-Value Storage of App Settings 00:01:57
    7. Technologies Overview—iCloud Key-Value Pair Storage with NSUbiquitousKeyValueStore 00:03:08
    8. Technologies Overview—Social Framework 00:01:52
    9. Technologies Overview—Swift: Conforming to Protocols 00:02:51
    10. Technologies Overview—Swift: Exposing Methods to Cocoa Touch Libraries 00:01:24
    11. Technologies Overview—UIAlertController for Alert Dialogs 00:01:14
    12. Technologies Overview—UILongPressGestureRecognizer 00:01:41
    13. Technologies Overview—Model-View-Controller (MVC) Design Pattern 00:02:55
    14. Technologies Overview—Other iOS Design Patterns Used in this App 00:03:01
    15. Technologies Overview—Swift: External Parameter Names 00:06:25
    16. Technologies Overview—Swift: Closures 00:02:27
    17. Building the UI—Creating the Project 00:02:01
    18. Building the UI—Examining the Default Master Detail Application 00:10:08
    19. Building the UI—Configuring the Master and Detail Views 00:04:47
    20. Building the UI—Creating Class Model 00:04:21
    21. Model.swift—ModelDelegate Protocol 00:03:28
    22. Model.swift—Model Properties 00:05:20
    23. Model.swift—Model Initializer and synchronize Method 00:16:51
    24. Model.swift—Model Methods tagAtIndex, queryForTag and queryForTagAtIndex, and Property count 00:03:34
    25. Model.swift—Model Method deleteSearchAtIndex 00:05:52
    26. Model.swift—Model Method moveTagAtIndex 00:02:17
    27. Model.swift—Model Method updateUserDefaults 00:06:11
    28. Model.swift—Model Method updateSearches 00:06:05
    29. Model.swift—Model Method performUpdates 00:23:48
    30. Model.swift—Model Method saveQuery 00:05:27
    31. MasterViewController: Properties and modelDataChanged Method 00:10:53
    32. MasterViewController: awakeFromNib Method 00:04:42
    33. MasterViewController: Overridden UIViewController Method viewDidLoad and Method AddButtonPressed 00:12:52
    34. MasterViewController: Methods tableViewCellLongPressed and displayLongPressOptions 00:13:04
    35. MasterViewController: Method displayAddEditSearchAlert 00:13:22
    36. MasterViewController: Method shareSearch 00:06:49
    37. MasterViewController: Overridden UIViewController Method prepareForSegue 00:11:07
    38. MasterViewController: Method urlEncodeString 00:03:13
    39. MasterViewController: UITableViewDataSource Callback Methods 00:19:09
    40. DetailViewController Class 00:10:27
  22. Part 2 Introduction
    1. Introduction to iOS 8 App-Development Fundamentals with Swift, Part 2 00:16:04
  23. Lesson 5: Flag Quiz App
    1. Lesson Introduction 00:05:27
    2. Test-Driving the Completed Flag Quiz App 00:04:28
    3. Technologies Overview—Designing a Storyboard 00:02:09
    4. Technologies Overview—UINavigationController 00:01:05
    5. Technologies Overview—Storyboard Segues 00:01:41
    6. Technologies Overview—UISegmentedControls 00:01:41
    7. Technologies Overview—UISwitches 00:01:18
    8. Technologies Overview—Outlet Collections 00:02:24
    9. Technologies Overview—Using the App‚Äôs Main NSBundle to Get a List of Image Filenames 00:03:25
    10. Technologies Overview—Using Grand Central Dispatch to Perform a Task in the Future 00:03:18
    11. Technologies Overview—Applying an Animation to a UIView 00:02:29
    12. Technologies Overview—Darwin Module 00:01:02
    13. Technologies Overview—Random-Number Generation 00:02:50
    14. Technologies Overview—Swift Programming Language Features Used in This App 00:08:52
    15. Creating the Project 00:02:42
    16. Designing the Storyboard—Embedding the UIViewController in a UINavigationController 00:03:36
    17. Designing the Storyboard—Configuring the View Controller for the Quiz Scene 00:02:28
    18. Designing the Storyboard—Adding the View Controller for the Settings Scene and Creating a Segue from the Quiz Scene to the Settings Scene 00:04:18
    19. Designing the Storyboard—Running the App in the Simulator to Test the Segue 00:00:52
    20. Configuring the View Controller Classes 00:05:13
    21. Creating the UI for the QuizViewController 00:09:22
    22. Auto Layout Settings for the QuizViewController 00:09:13
    23. QuizViewController Outlets and Actions 00:06:49
    24. Creating the UI for the SettingsViewController 00:08:18
    25. SettingsViewController Outlets and Actions 00:04:07
    26. Creating Class Model 00:00:54
    27. Adding the Flag Images to the App 00:01:46
    28. Model Class—ModelDelegate Protocol 00:02:07
    29. Model Class—Properties 00:03:19
    30. Model Class—Initializer and regionsChanged Method 00:09:00
    31. Model Class—Computed Properties 00:03:28
    32. Model Class—Methods toggleRegion, setNumberOfGuesses and notifyDelegate 00:05:05
    33. Model Class—Method newQuizCountries 00:02:35
    34. QuizViewController Class—Properties 00:05:03
    35. QuizViewController Class—Overridden UIViewController Method viewDidLoad, and Methods settingsChanged and resetQuiz 00:04:43
    36. QuizViewController Class—Methods nextQuestion and countryFromFilename 00:11:08
    37. QuizViewController Class—Method submitGuess 00:09:23
    38. QuizViewController Class—Method shakeFlag 00:05:03
    39. QuizViewController Class—Method displayQuizResults 00:03:04
    40. QuizViewController Class—Overridden UIViewController Method prepareForSegue 00:01:47
    41. QuizViewController Class—Array Extension shuffle 00:02:35
    42. SettingsViewController Class—Properties 00:04:22
    43. SettingsViewController Class—Overridden UIViewController Method viewDidLoad 00:02:37
    44. SettingsViewController Class—Event Handles and Method displayErrorDialog 00:04:36
    45. SettingsViewController Class—Overridden UIViewController Method viewWillDisappear 00:01:25
  24. Lesson 6: Cannon Game App
    1. Lesson Introduction 00:05:58
    2. Test-Driving the Cannon Game App 00:04:54
    3. Technologies Overview—Xcode Game Template and SpriteKit 00:01:59
    4. Technologies Overview—Adding Sound with the AVFoundation Framework and AVAudioPlayer 00:00:49
    5. Technologies Overview—SpriteKit Framework Classes 00:04:40
    6. Technologies Overview—SpriteKit Game Loop and Animation Frames 00:06:28
    7. Technologies Overview—Physics 00:02:53
    8. Technologies Overview—Collision Detection and the SKPhysicsContactDelegate Protocol 00:04:32
    9. Technologies Overview—CGGeometry Structures and Functions 00:04:04
    10. Technologies Overview—Overriding UIResponder Method touchesBegan 00:01:34
    11. Technologies Overview—Swift Features 00:03:23
    12. Technologies Overview—NSLocalizedString 00:01:45
    13. Creating the Project and Classes 00:10:29
    14. Overview of the app created by the Game template 00:05:57
    15. GameViewController Class—Overridden UIViewController Method viewDidLoad 00:13:18
    16. GameViewController Class—Why are the AVAudioPlayer Variables Global 00:03:10
    17. GameViewController Class—Autogenerated Methods that we deleted 00:02:18
    18. Blocker Class—BlockerSize enum and Class Blocker’s Properties 00:06:44
    19. Blocker Class—Initializers 00:15:45
    20. Blocker Class—Methods startMoving, playHitSound and blockerTimePenalty 00:04:13
    21. Target Class—TargetSize and TargetColor enums 00:02:24
    22. Target Class—Properties 00:01:02
    23. Target Class—Initializers 00:06:31
    24. Target Class—Methods startMoving, playHitSound and targetTimeBonus 00:02:41
    25. Cannon Class—Properties 00:03:18
    26. Cannon Class—Initializers 00:04:53
    27. Cannon Class—Method rotateToPointAndFire 00:05:34
    28. Cannon Class—Method s fireCannonball and createCannonball 00:05:55
    29. GameScene Class—CollisionCategory struct 00:03:56
    30. GameScene Class—Properties 00:03:00
    31. GameScene Class—Method didMoveToView 00:09:41
    32. GameScene Class—Method createLabels 00:05:04
    33. GameScene Class—SKPhysicsContactDelegate Method didBeginContact and Supporting Methods 00:05:47
    34. GameScene Class—Overridden UIResponder Method touchesBegan 00:02:23
    35. GameScene Class—Overridden SKScene Method update and Method gameOver 00:05:33
    36. GameOverScene Class 00:05:31
    37. Programmatic Internationalization 00:10:22
  25. Lesson 7: Doodlz App
    1. Lesson Introduction 00:03:29
    2. Test-Driving the Doodlz App 00:06:48
    3. Technologies Overview—UIView, drawRect, UIBezierPaths and the UIKit Graphics System 00:03:17
    4. Technologies Overview—Processing Multiple Touch Events 00:02:50
    5. Technologies Overview—Listening for Motion Events 00:01:48
    6. Technologies Overview—Rendering the Drawing as a UIImage 00:02:35
    7. Technologies Overview—Storyboard Loading and Initialization 00:01:13
    8. Creating the Project 00:01:21
    9. Creating the Initial View Controller’s User Interface 00:12:40
    10. Creating the Color View Controller’s User Interface 00:17:24
    11. Creating the Stroke View Controller’s User Interface 00:12:05
    12. Adding the Squiggle Class 00:01:40
    13. ViewController Class—Property; Delegate Methods 00:04:11
    14. ViewController Class—Overridden UIViewController Method prepareForSegue 00:03:15
    15. ViewController Class—Methods undoButtonPressed, clearButtonPressed and displayEraseDialog 00:03:14
    16. ViewController Class—Overridden UIResponder Method motionEnded 00:02:01
    17. ViewController Class—Method actionButtonPressed 00:02:20
    18. Squiggle Class 00:06:37
    19. DoodleView Class—Properties 00:02:46
    20. DoodleView Class—Initializer 00:02:38
    21. DoodleView Class—Methods undo and clear 00:02:29
    22. DoodleView Class—Overridden UIView Method drawRect 00:02:09
    23. DoodleView Class—Overridden UIResponder Methods for Touch Handling 00:06:59
    24. DoodleView Class—Computed Property image 00:04:43
    25. ColorViewController Class 00:08:12
    26. StrokeViewController Class 00:06:27
  26. Lesson 8: Address Book App
    1. Lesson Introduction 00:04:18
    2. Test-Driving the Address Book App 00:05:32
    3. Technologies Overview—Enabling Core Data Support 00:02:15
    4. Technologies Overview—Data Model and Xcode’s Data Model Editor 00:02:21
    5. Technologies Overview—Core Data Framework Classes and Protocols 00:04:14
    6. Technologies Overview—UITableView Cell Styles 00:01:39
    7. Technologies Overview—UITableView Static Cells 00:00:49
    8. Technologies Overview—Listening for Keyboard Show and Hide Notifications 00:01:18
    9. Technologies Overview—Programmatically Scrolling a UITableView 00:01:11
    10. Technologies Overview—UITextFieldDelegate Methods 00:00:57
    11. Creating the Project and Testing the Default App 00:03:10
    12. Editing the Data Model 00:04:32
    13. Generating the Contact Subclass of NSManagedObject 00:07:28
    14. Customizing the MasterViewController 00:05:14
    15. Customizing the DetailViewController 00:09:47
    16. Adding the AddEditTableViewController 00:18:58
    17. Adding the InstructionsViewController 00:06:46
    18. MasterViewController Class—Protocol Conformance, Properties and the awakeFromNib method 00:06:13
    19. MasterViewController Class—Overridden UIViewController Method viewWillAppear and Method displayFirstContactOrInstructions 00:04:49
    20. MasterViewController Class—Overridden UIViewController Method viewDidLoad 00:01:14
    21. MasterViewController Class—Overridden UIViewController Method prepareForSegue 00:09:56
    22. MasterViewController Class—AddEditTableViewControllerDelegate Method didSaveContact 00:06:36
    23. MasterViewController Class—DetailViewControllerDelegate Method didEditContact 00:00:42
    24. MasterViewController Class—Method displayError 00:01:08
    25. MasterViewController Class—UITableViewDelegate Methods 00:08:57
    26. MasterViewController Class—Autogenerated NSFetchedResultsController and NSFetchedResultsControllerDelegate Methods 00:06:00
    27. DetailViewController Class—DetailViewControllerDelegate Protocol 00:00:42
    28. DetailViewController Class—Properties 00:01:57
    29. DetailViewController Class—Overridden UIViewController Method viewDidLoad and Method displayContact 00:02:49
    30. DetailViewController Class—AddEditTableViewControllerDelegate Method didSaveContact 00:01:31
    31. DetailViewController Class—Overridden UIViewController Method prepareForSegue 00:03:02
    32. AddEditTableViewController Class—AddEditTableViewControllerDelegate Protocol 00:01:13
    33. AddEditTableViewController Class—Properties 00:03:47
    34. AddEditTableViewController Class—Overridden UIViewController Methods viewWillAppear and viewWillDisappear 00:04:01
    35. AddEditTableViewController Class—Overridden UIViewController Method viewDidLoad 00:03:15
    36. AddEditTableViewController Class—Methods keyboardWillShow and keyboardWillHide 00:07:54
    37. AddEditTableViewController Class—UITextFieldDelegate Method textFieldShouldReturn 00:01:34
    38. AddEditTableViewController Class—@IBAction saveButtonPressed 00:03:29
    39. AppDelegate Class—UIApplicationDelegate Protocol Method application:didFinishLaunchingWithOptions: 00:02:48
    40. AppDelegate Class—UISplitViewControllerDelegate Protocol Method 00:01:24
    41. AppDelegate Class—Properties and Methods That Support the App’s Core Data Capabilities 00:02:53