Media3 offers an extensive Swift is training on iOS and OS X development. Swift adopts the best of C and Objective-C, without the constraints of C compatibility.

Media3 uses the same runtime as the existing Obj-C system on Mac OS and iOS, which enables Swift programs to run on many existing iOS 6 and OS X 10.8 platforms.

Course Overview

Introduction to Swift Programming
Getting started with application development

Evolution of Swift
Leveraging Xcode for rapid application development
Analyzing the syntax of a simple application Swift programming
Loops Swift programming
Coding variables, constants, statements and control blocks
Testing code in interactive Playgrounds

Working with Data Types Appraising built-in types

Choosing value types vs. reference types
Simplifying code with type inference
Writing safe and expressive code with optional

Creating user-defined types

Returning compound values with tuples
Selecting among enums, structs and classes Developing Classes,Structures and Enumerations

Declaring and initializing classes

Encapsulating specific tasks using methods and properties
Applying inheritance and polymorphism to class objects
Setting the initial state with initializers
Controlling access with public, private and internal modifiers
Organizing compound values with structures
Populating struct properties with the memberwise initializer
Contrasting functionalities of structs and classes

Designating groups of values with enumerations

Providing additional information with computed properties
Assigning initial values with custom initializers
Matching enumeration values in switch statements
Storing and accessing associated values Constructing Functions

Designing reusable functions for code modularity

Performing specific tasks with self-contained blocks of code
Modifying variables with in-out parameters
Nesting functions within functions to perform complex tasks
Passing functions as function arguments

Capturing errors

Wrapping function calls in do {..}catch blocks
Choosing between try, try? and try!
implifying code with guard and defer

Exploiting generics in applications

Declaring generic functions that use generic types
Constraining types passed to a generic function Structuring Object-Oriented Class Hierarchies

Reusing classes through aggregation

Incorporating the has-a relationship in class design
Employing collection types including arrays, dictionaries and sets
Iterating collections

Exposing interfaces with protocols

Conforming to protocols to provide standard functionality
Forming contracts with protocols
Benefiting from protocols in app design

Extending classes with inheritance

Enhancing class functionality beyond a default implementation
Identifying the is-a relationship
Defining initializers in subclasses
Leveraging dynamic binding through polymorphism

Customizing existing classes with extensions

Avoiding excessive inheritance
Modifying classes without access to the base-class source code Integrating Swift with Objective-C

Interacting with Objective-C frameworks

Instantiating Objective-C classes in Swift
Accessing properties and methods

Incorporating Objective-C and Swift in the same project

Bridging Objective-C header files into Swift
Importing Swift code into Objective-C

Building GUIs with Swift

Creating a simple iOS app
Connecting actions and outlets