Swift Programming Introduction (3 days – £1,785, plus VAT)

    This course is designed for beginners and covers: getting started; variables and constants; characters and strings; collections and tuples; operators; control flow; functions; classes, structures, and enumerations; protocols; subclassing and extending; generics; and Access control.

    Getting Started

    The Swift Revolution, Installing Xcode, Creating A Playground, Adding Pages To A Playground, Working With The Results Sidebar, Logging In To The Console, Adding Comments, Running A Repl, Using Dot Notation

    Variables And Constants

    Understanding Value And Reference Types, Understanding Mutability, Defining Strings, Defining Characters, Defining Integers, Defining Floating Points, Defining Booleans, Defining Numeric Literals, Defining Type Aliases, Deferring Value Assignment And Handling Nil

    Characters And Strings

    Understanding Unicode, Working With Strings

    Collections And Tuples

    Defining Arrays, Inspecting And Accessing Arrays, Modifying Arrays, Nesting Arrays, Defining Dictionaries, Inspecting And Accessing Dictionaries, Modifying Dictionaries, Nesting Dictionaries, Defining Sets, Inspecting And Comparing Sets, Performing Set Operations, Modifying Sets, Nesting Sets, Defining Tuples, Accessing Decomposing And Nesting Tuples, Modifying Tuples


    Using Arithmetic Operators, Combining Strings And Arrays, Using Comparison And Logical Operators, Using Ternary Conditional And Nil Coalescing Operators, Using Range Operators, Using Type Checking And Casting Operators, Understanding Binary Notation, Using Bitwise Operators, Understanding Operator Precedence And Associativity

    Control Flow

    Using For And For In, Using While And Repeat While, Using If And If Else, Optional Binding, Using Guard, Using Switch, Using Labels, A Quick Note On Enums, Using If Case And For Case, Deferring Code Execution, Optional Chaining


    Defining And Calling Functions, Variable Input And Output Parameters, Reference Type Parameters, Returning Functions, Returning Tuples, Currying, Handling Errors, Overloading Functions, Creating Custom Operators, Working With Closures, Using Closures To Calculate Values, Using Advanced Functions

    Classes, Structures, And Enumerations

    Comparing Classes And Structures, Working With Classes, Class Instance Properties, Class Instance Methods, Deinitializing A Class Before Cleanup, Avoiding Strong Reference Cycles, Working With Singletons, Working With Structures, Creating Mutating Structures, Creating Error Type Structures, Working With Basic Enumerations, Associating Values In Enumerations, Working With Recursive Enumerations, Subscripting


    Defining And Adopting Protocols, Working With Protocols That Have Optional Properties, Using Protocols In The Swift Standard Library, Working With Protocol Types, Implementing Delegation, Working With Option Set Types

    Subclassing And Extending

    , Initializing From Subclasses, Overriding Initializers, Preventing Subclasses From Overriding Properties Or Methods, Extending Concrete Types, Adding Initializers And Protocol Adoption Via Extensions, Extending Protocols, Overriding Default Implementations


    Understanding Generics, Working With Generics, Constraining Generic Types, Protocol Associated Types

    Access Control

    Understanding Access Control, Setting Up Access Control