Duration: 16 hours

Course Description
From Playgrounds to protocols, discover, explore, and demonstrate how to use the fundamental building blocks of the Swift programming language. This 2-day, hands-on course is designed to teach you the basic concepts of Swift programming, including syntax, logic, structures, functions, and patterns. It also includes detailed explanations of language syntax and coding exercises.

Objectives
Upon completion of the Introduction to Swift course, students will be able to:
  • Learn how to use Xcode Playgrounds to write Swift code
  • Learn common programming patterns used in Swift
  • Learn keywords and vocabulary used by the Swift language
Topics
Introduction to Swift and Playgrounds
  • Learn about the origin of Swift and some of its basic syntax
Constants, Variables, and Data Types
  • Learn how to define constants for values that don’t change and variables for values that do
  • Learn the data types that are included in Swift and how they can help you write better code
Operators
  • Learn how to use logical operators in Swift to check conditions and how to use control flow statements
Strings
  • Learn how to create and store text using the String type
  • You’ll learn a variety of String methods that allow you to compare two strings, access specific characters within a string, and insert and remove values
Functions
  • Learn how to declare functions with different parameters and return types
Structures
  • Learn how to create structures in Swift
Classes
  • Learn what makes classes different from structures and when to use classes instead of structures
  • You’ll also learn about inheritance, super-classes, and sub-classes
Optionals
  • Learn to use optionals to properly handle situations when data may or may not exist
Collections
  • Learn about the various collection types available in Swift and how to choose the appropriate one for your program
Loops
  • Learn how to create loops in Swift, control the conditions for looping, and specify when to stop
Type Casting
  • Learn why some data can be expressed using only a broader type and how you can test for specific kinds of data before using it
Guard
  • Learn to use guard statements to better manage control flow
Scope
  • Learn to write nicely structured code that’s easy to read. You’ll do this by properly scoping your constants and variables
Enumerations
  • Learn when enumerations are commonly used, how to define an enumeration, and how to work with enumerations using switch statements
Protocols
  • Learn what protocols are, when to use them, and how to write your own. Learn how to enable objects to communicate with each other and how to extend protocols to provide shared functionality across multiple types
Closures
  • Learn about closures, how to define them, how to use them as function arguments, and how to use some of the common functions that take closures as arguments
Extensions
  • Learn how to define an extension, as well as how and why to use extensions