Video description
In Swift Fundamentals LiveLessons, Paul Deitel teaches core Swift programming concepts through his signature "live code" approach. Rather than using code snippets, Deitel presents concepts in the context of complete working Swift programs that run on iOS® 8 and OS X®.
This video is intended for three audiences considering using Swift:
- Objective-C programmers who are developing new iOS and/or OS X apps and
who want to quickly begin using Swift in their apps.
- Objective-C programmers who are enhancing 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.
Throughout the video, Deitel emphasizes software engineering best practices gleaned from many years of programming experience.
The source code repository for this LiveLesson can be found at www.informit.com/title/9780134049854.
About the Instructor:
Paul J. Deitel, CEO and Chief Technical Officer of Deitel & Associates, Inc., is a graduate of MIT, where he studied Information Technology. He holds the Sun (now Oracle) Certified Java Programmer and Certified Java Developer certifications, and is an Oracle Java Champion. Through Deitel & Associates, Inc., he has delivered Java, C#, Visual Basic, C++, C and Internet programming courses to industry clients, including Cisco, IBM, Sun Micro systems, Dell, Siemens, Lucent Technologies, Fidelity, NASA at the Kennedy Space Center, the National Severe Storm Laboratory, White Sands Missile Range, Rogue Wave Software, Boeing, SunGard Higher Education, Stratus, Cambridge Technology Partners, One Wave, Hyperion Software, Adra Systems, Entergy, CableData Systems, Nortel Networks, Puma, iRobot, Invensys and many more. He and his co-author, Dr. Harvey M. Deitel, are the world’s best-selling programming-language textbook/professional book authors.
Table of Contents
Introduction
Swift Fundamentals LiveLessons: Introduction to Part I
00:14:32
BeforeYouBegin: Setting Up Your Development Environment
Lesson Introduction
00:01:41
Before You Begin
00:09:03
Lesson 1: Introduction to Swift and Xcode 6
Lesson Introduction
00:02:03
Swift Introduction
00:25:58
Creating Swift Apps with Xcode 6: Creating a Playground
00:10:57
Creating Swift Apps with Xcode 6: Creating a Project
00:10:03
Lesson 2: Introduction to Swift Programming
Lesson Introduction
00:02:33
A First Swift Program: Printing a Line of Text
00:10:09
Displaying a Single Line of Text with Multiple Statements
00:00:49
Displaying Multiple Lines of Text with a Single Statement
00:01:44
Composing Larger Strings with String Interpolation—Introducing constants, variables, type inference, type annotations, built-in types, initialization and Identifier naming
00:11:08
Addition program—Introducing the arithmetic operators and overflow checking
00:12:05
The if Conditional Statement and the Comparative Operators
00:10:47
Lesson 3: Introduction to Classes, Objects, Methods and Functions
Lesson Introduction
00:02:56
Account Class: Defining a Class
00:10:05
Account Class: Defining a Class Attribute as a Stored Property
00:04:46
Account Class: Defining a public Stored Property with a private Setter
00:03:33
Account Class: Initializing a Class’s Properties with init
00:07:20
Account Class: Defining a Class’s Behaviors as Methods
00:05:07
Creating and Using Account Objects: Importing the Foundation Framework
00:02:49
Creating and Using Account Objects: Creating and Configuring an NSNumberFormatter to Format Currency Values
00:04:43
Creating and Using Account Objects: Defining a Function—formatAccountString
00:06:42
Creating and Using Account Objects: Creating Objects and Calling an Initializer
00:06:19
Creating and Using Account Objects: Calling Methods on Objects—Depositing into Account Objects
00:03:13
Creating and Using Account Objects: Calling Methods on Objects—Withdrawing from Account Objects
00:01:36
Value Types vs. Reference Types
00:06:53
Software Engineering with Access Modifiers
00:06:27
Lesson 4: Control Statements; Assignment, Increment and Logical Operators
Lesson Introduction
00:02:56
if and if…else Conditional Statements and the Ternary Conditional Operator (?:)
00:08:29
Compound Assignment Operators
00:01:24
Increment and Decrement Operators
00:04:01
switch Conditional Statement
00:12:16
while Loop Statement and an Introduction to the Xcode playground timeline
00:04:01
do…while Loop Statement
00:03:04
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
for…in Loop Statement and the Range Operators: Compound-Interest Calculations with for…in
00:12:14
for Loop Statement
00:04:31
break Statement
00:01:04
continue Statement
00:01:08
Logical Operators
00:04:30
Lesson 5: Functions and Methods: A Deeper Look; enums and Tuples
Lesson Introduction
00:03:31
Multiple-Parameter Function Definition
00:07:34
Random-Number Generation: Rolling a Six-Sided Die 20 Times
00:04:48
Introducing Enumerations and Tuples: Dice Game Example; Tuples and Multiple Function Return Values; Tuples as Function Arguments
00:24:24
Scope of Declarations
00:09:10
Function and Method Overloading
00:05:26
External Parameter Names
00:11:31
Default Parameter Values
00:02:11
Passing Arguments by Value or by Reference
00:02:11
Recursion
00:02:11
Nested Functions
00:05:14
Lesson 6: Arrays and an Introduction to Closures
Lesson Introduction
00:05:46
Array overview
00:05:56
Creating and Initializing Arrays
00:11:47
Iterating Through Arrays
00:09:48
Adding and Removing Array Elements
00:11:01
Subscript Expressions with Ranges—Slicing an Array
00:06:51
Closures and Closure Expressions
00:03:02
Array Methods sort and sorted
00:17:42
Array Methods filter, map and reduce—Introduction to Internal Iteration
00:07:35
Filtering an Array
00:05:15
Mapping an Array’s Elements to New Values
00:01:55
Reducing an Array’s Elements to a Single Value
00:01:53
Combining Filtering, Mapping and Reducing
00:03:46
Card Shuffling and Dealing Simulation—Class Card and an Introduction to Computed Properties
00:06:01
Card Shuffling and Dealing Simulation—Class DeckOfCards, Reference-Type Arrays and an Introduction to Optionals
00:09:28
Card Shuffling and Dealing Simulation—Shuffling and Dealing Cards, and Unwrapping Optional Values with Optional Binding and the if Statement
00:11:31
Passing Arrays to Functions by value and by reference
00:08:03
Multidimensional Arrays
00:12:32
Variadic parameters
00:06:43
Introduction
Swift Fundamentals LiveLessons: Introduction to Part II
00:20:57
Lesson 7: Dictionary
Lesson Introduction
00:03:33
Dictionary overview
00:04:57
Declaring Dictionary Key-Value Pairs and Dictionary Literals
00:06:48
Delcaring and Printing Empty Dictionary Objects
00:04:29
Iterating through a Dictionary with for…in
00:04:57
General-Purpose Generic Dictionary Printing Function
00:03:36
Dictionary Comparison Operators == and !=
00:03:33
Dictionary count and isEmpty properties
00:03:18
Dictionary with Values that are Arrays
00:06:33
Dictionary Properties keys and values
00:06:32
Inserting, Modifying and Removing Key-Value Pairs with Subscripting
00:08:48
Inserting, Modifying and Removing Key-Value Pairs with Dictionary Methods
00:07:56
Builing a Dictionary Dynamically: Word Countsin a String
00:07:01
Lesson 8: Classes: A Deeper-Look and Extensions
Lesson Introduction
00:05:42
Time Class: Default Initializers and Property Observers
00:04:14
Stored Property Initialization and the Default Initializer
00:03:02
willSet and didSet Property Observers for Stored Properties
00:06:18
Computed Read-Only Properties universalDescription and description
00:03:22
Using Class Time
00:08:21
Class Time with Overloaded Designated and Convenience Initializers
00:10:06
Designated Initializers
00:06:39
Convenience Initializers and Initializer Delegation with self
00:02:38
Using Class Time’s Designated and Convenience Initializers
00:06:40
Failable Initializers in Class Time
00:15:20
Extensions to Class Time
00:07:26
Read-Write Computed Properties
00:09:42
Composition
00:07:06
Automatic Reference Counting, Strong References and Weak References
00:03:18
Deinitializers
00:01:37
Using NSDecimalNumber for Precise Monetary Calculations
00:06:29
Type Properties and Type Methods
00:12:52
Lazy Stored Properties and Delayed Initialization
00:03:00
Lesson 9: Structures, Enumerations and Nested Types
Lesson Introduction
00:03:18
Prefer Constants and Immutability By Default
00:04:41
Time struct Definition with Default and Memberwise Initializers
00:08:04
Custom Initializers extension to struct Time
00:04:52
Computed Properties extension to struct Time
00:02:27
Mutating Methods extension to struct Time
00:04:14
Testing the Time struct
00:07:09
Enumerations and Nested Types
00:03:57
Card struct with Nested Suit and Face enum Types
00:04:33
Nested enum Type Suit
00:06:28
Nested enum Type Face
00:03:59
Using enum Constants in switch Statements
00:02:00
DeckOfCards struct
00:07:07
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
Choosing Among Structures, Enumerations and Classes in Your Apps
00:04:15
Associated Values for enums
00:03:50
Demonstrating Associated Values with Optional
00:06:49
Lesson 10: Inheritance, Polymorphism and Protocols
Lesson Introduction
00:03:36
Superclasses and Subclasses
00:02:11
An Inheritance Hierarchy
00:03:19
Utility Functions Used in Each of This Lesson’s Examples
00:04:20
Using Inheritance to Create Related Employee Types—Superclass CommissionEmployee
00:07:30
Using Inheritance to Create Related Employee Types—Subclass BasePlusCommissionEmployee
00:11:31
Using Inheritance to Create Related Employee Types—Testing the Class Hierarchy
00:13:18
Access Modifiers in Inheritance Hierarchies
00:04:16
Introduction to Polymorphism: A Polymorphic Video Game Discussion
00:05:01
Payroll System Class Hierarchy Using Polymorphism
00:02:42
Payroll System Class Hierarchy Using Polymorphism—Base Class Employee
00:04:17
Payroll System Class Hierarchy Using Polymorphism—Subclass SalariedEmployee
00:04:51
Payroll System Class Hierarchy Using Polymorphism—Subclass CommissionEmployee
00:03:34
Payroll System Class Hierarchy Using Polymorphism—Indirect Subclass BasePlusCommissionEmployee
00:02:53
Polymorphic Processing
00:14:42
Creating and Using Custom Protocols
00:10:27
Creating and Using Custom Protocols—Declaring Protocol Payable
00:07:49
Creating and Using Custom Protocols—Creating Class Invoice
00:11:43
Creating and Using Custom Protocols—Using Extensions to add Printable and Payable Conformance to Class Employee
00:04:26
Creating and Using Custom Protocols—Using Protocol Payable to Process Invoices and Employees Polymorphically
00:08:27
Additional Protocol Features
00:07:20
Using final to Prevent Method Overriding and Inheritance
00:01:21
Initialization and Deinitialization in Class Hierarchies—Basic Class-Instance Initialization
00:02:10
Initialization and Deinitialization in Class Hierarchies—Initialization in Class Hierarchies
00:03:39
Initialization and Deinitialization in Class Hierarchies—Overriding Initializers and Required Initializers
00:01:53
Initialization and Deinitialization in Class Hierarchies—Deinitialization in Class Hierarchies
00:01:40
Lesson 11: Generics
Lesson Introduction
00:03:52
Motivation for generic functions
00:04:45
Generic Functions: Implementation and Specialization
00:05:22
Type Parameters with Type Constraints
00:05:31
Generic Types—Implementing a Generic Stack Type
00:07:20
Generic Types—Testing the Generic Stack Type
00:06:42
Note About Associated Types for Protocols
00:01:28
Lesson 12: Operator Overloading and Subscripts
Lesson Introduction
00:04:20
Overview
00:02:15
String Operators and Methods: Variables and Constants
00:01:43
String Operators and Methods: Comparative Operators
00:03:31
String Operators and Methods: Custom String Unary Prefix Operator !
00:02:58
String Operators and Methods: Concatenation with + and +=
00:01:49
String Operators and Methods: Subscript Operator for Creating Substrings
00:03:44
String Operators and Methods: Other String Methods
00:03:57
Custom Complex Numeric Type with Overloaded Arithmetic Operators
00:09:34
Overloading Arithmetic Operators for Class NSDecimalNumber
00:03:50
Overloading Unary Operators ++ and —
00:10:45
Overloading Subscripts
00:13:42
Custom Operators Overview
00:06:54
Custom Generic Defining a Custom Exponentiation Operator for Type Int
00:06:22
Custom Generic Operators
00:05:40