Expert-led training for your team

Swift training course

A "World Class" course - Learn how to use Swift to Speed Up your iOS App Development, at the same time as preventing errors and improving readability

JBI training course London UK

"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"

Brian Leek, Data Analyst, May 2022

Public Courses

15/07/24 - 4 days
£2500 +VAT
26/08/24 - 4 days
£2500 +VAT
07/10/24 - 4 days
£2500 +VAT

Customised Courses

* Train a team
* Tailor content
* Flex dates
From £1200 / day
EDF logo Capita logo Sky logo NHS logo RBS logo BBC logo CISCO logo
JBI training course London UK

  • Understand Swift and its role in iOS and OS X software development
  • Create, compile and execute Swift programs using Xcode
  • Verify Swift code in Playgrounds
  • Organise code with classes, structures and enumerations
  • Develop Mac, iPhone and iPad applications that use functions
  • Implement flexible object-oriented designs
  • Gain experience using Swift's data types and standard library.
  • Become familiar with the advanced features of the Swift language
  • Speed Up your iOS App Development With Swift


Here is a short video of a session on sets in Swift that would be taught during JBI Training's 4 day Swift training course.

Basic Swift Concepts

Module 1: Introduction to Swift Fundamentals

  • Exploring Why Swift Differs from Other Languages

Module 2: Getting Started with Swift Basics

  • Introduction to Playgrounds and Command Line: The Essential Tools
  • Constants: Their Preference over Variables and Data Passing in Swift
  • Understanding Strings in Swift, Including Swift 5 Strings
  • Swift's Strong Data Typing and its Significance

Module 3: Working with Constants and Data Types

  • Using Constant Arrays: Immutable Data Collections and Functions
  • Leveraging Constant Sets to Remove Duplicates from Datasets
  • Introducing Tuples: Ad-Hoc Data Types
  • Understanding Basic Operators for Constants
  • Understanding Program Flow and Control in Swift

Module 4: Advanced Data Handling and Operations

  • Intervals, Ranges, and Strides: Building and Comparing without Iteration
  • Exploring Optionals: Swift's Approach to Basic Error Handling
  • Overview of Function Signatures and Functional Concepts
  • Utilizing Closures: Anonymous Functions and Passing Functionality
  • Creating Basic Custom Types with Enumerations
  • Utilizing Constant Dictionaries: Working with Key-Value Datasets

Intermediate Swift Concepts and Functional Programming

Module 5: Functional Programming and Intermediate Concepts

  • Pattern Matching: Filtering Data and Enumerations using Switch
  • Introduction to Functions: Passing Data and Differences from Closures
  • Implementing Sorted, Map, Filter, Reduce, Flatmap, and Zip in Swift
  • Variables in Swift: Implementation and Differences from Other Languages
  • Variable Operators: Applying Operators to Variables, Not Constants
  • Expanding Variable Arrays: Beyond the Realm of Constant Arrays
  • Enhancements in Variable Dictionaries and Sets
  • Loop Structures for Variables: Enhancing Control


Module 6: Advanced Data Types and Memory Management

  • Understanding Structures: Swift's Core Type and Its Importance
  • Basics of Classes and Objects: Enabling iOS and MacOS Interfaces
  • Memory Management with Automatic Reference Counting (ARC)
  • Delving Deeper into Enums, Structures, Classes, and Initializers
  • Implementing the Observer Design Pattern in Swift
  • Applying Composition Over Inheritance: iOS and MacOS Design Pattern
  • Standard Built-In Functions: Leveraging Swift's Functionality

Advanced Concepts, Protocol-Oriented Programming (POP), and More

Module 7: More Closures 

  • Exploring Advanced Closure Concepts
  • Utilizing Key Paths within Closures
  • Leveraging Trailing Closures for Concise Syntax
  • Capturing Values in Closures
  • Understanding Closures as Reference Types
  • Differentiating Between Escaping and Non-Escaping Closures
  • Using Autoclosures for Deferred Execution

Module 8: Property Wrappers 

  • Introduction to @propertyWrapper
  • Understanding the wrappedValue Property
  • Setting Initial Values with Property Wrappers
  • Practical Application of Property Wrappers
  • Exploring the projectedValue Property for Extra Functionality

Module 9: Advanced Concepts and Protocol-Oriented Programming

  • Extending Types with Extensions: Enumerations, Structures, and Classes
  • Implementing Protocols: Facilitating Interface Design Patterns
  • Exploring Swift's Protocol-Oriented Programming Approach
  • Understanding Standard Library Protocols

Module 10: Generics, Inheritance, and Swift's Unique Features

  • Leveraging Generic Functions: Reducing Overloading in Algorithms
  • Basics of Class Inheritance as Implemented in Swift, Especially for iOS
  • Deepening the Understanding of Functions: More Advanced Features
  • Implementing Currying and Partial Calls: Functional Design Patterns

Module 11: Multi-Threading, Persistence, and Advanced Concepts

  • Casting and Inspecting Types: Evaluating Variables and Constants
  • Implementing Multi-Threading with Grand Central Dispatch (GCD)
  • Handling JSON with Swift's Codable Protocol
  • Exploring Access Control Levels for Protection
  • How to Handle Errors and Exceptions in Swift

Module 12: More on Sets 

  • Understanding Sets in Swift
  • Working with Read-Only Sets
  • Leveraging Variable Sets
  • Combining Sets: Union and Intersection
  • Finding Common Values in Two Sets
  • Calculating Symmetric Differences of Sets
  • Subtracting Elements from Sets

Module 13: Interface with Objective-C

  • Establishing Communication with Objective-C
  • Creating an Objective-C Class and Bridging Header
  • Interacting with Foundation Objects
  • Utilizing C Libraries within Swift

Module 14: Saving Data

  • Introduction to Data Persistence
  • Using the Codable Protocol for Serialization
  • Encoding and Decoding Data with Encoders and Decoders
  • Writing Data to Files and Reading Data from Files
  • Storing and Retrieving Arrays using Codable
JBI training course London UK

Developers who want to take iOS and OS X application development a step further by building on the best of Objective-C and other modern languages.

5 star

4.8 out of 5 average

"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"

Brian Leek, Data Analyst, May 2022

“JBI  did a great job of customizing their syllabus to suit our business  needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and  the Instructor handled this particularly well - very impressive”

Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022



JBI training course London UK



Sign up for the JBI Training newsletter to stay updated with world-class technology training opportunities, including Analytics, AI, ML, DevOps, Web, Backend and Security. Our Power BI Training Course is especially popular.  Gain new skills, useful tips, and validate your expertise with an industry-leading organisation, all tailored to your schedule and learning preferences.

Our Swift training course teaches delegates how to take iOS and OS X application development a step further by building on the best of Objective-C and other modern languages. This course provides a comprehensive introduction to Swift's concepts and will show you how its concise and expressive syntax can help reduce coding time and create fast and powerful applications.

Why use Swift?

Swift is a clean and concise language that is also growing fast and gaining popularity. Initially developed only for native iOS development, programmers also use Swift to write safe, concise, and easy-to-use code for operating systems like Windows and Linux.

+44 (0)20 8446 7555

[email protected]



Copyright © 2023 JBI Training. All Rights Reserved.
JB International Training Ltd  -  Company Registration Number: 08458005
Registered Address: Wohl Enterprise Hub, 2B Redbourne Avenue, London, N3 2BS

Modern Slavery Statement & Corporate Policies | Terms & Conditions | Contact Us


Rust training course                                                                          React training course

Threat modelling training course   Python for data analysts training course

Power BI training course                                   Machine Learning training course

Spring Boot Microservices training course              Terraform training course

Kubernetes training course                                                            C++ training course

Power Automate training course                               Clean Code training course