Training | Swift Fundamentals

This course is designed to provide a strong foundation in Swift for developing applications and other professional projects.

24-30 hours


Swift is a relatively new programming language on the scene. While its primary use is for developing iOS and macOS apps, it can also be used in backend development or, as a scripting language. It incorporates modern features that provides it with a high expressive power, whereas maintaining safety. While Swift is an object-oriented language, it features characteristics such as high-order functions, value semantics, and protocols with associated types that make it very suitable for functional programming.


  • Knowledge of at least one programming language.
  • A computer with macOS and Xcode.

What you'll learn


  • Variables and constants
  • Primitive types: Numbers, Strings, Booleans.
  • Compound types: Tuples, Arrays, Dictionaries, Sets, Ranges.
  • Optional types.
  • Operators

Control flow

  • Conditional execution: if, guard, switch
  • Loops: for, while, repeat-while.


  • Defining and calling functions.
  • Named and unnamed arguments
  • Parameters: default values, variadic, in-out.
  • Nested functions.
  • Closures: trailing closures, escaping, autoclosures.

Value and reference semantics

  • Enumerations, Structs and Classes.
  • Initialization and deinitialization.
  • Properties, computed, lazy and property observers.
  • Subscripts.
  • Instance and static methods.
  • Visibility: public, internal, open, private, fileprivate, final.
  • Inheritance and extension.
  • Nested types.
  • Casting.

Error handling

  • Representing errors
  • Throwing and catching errors.


  • Protocol requirements: required and optional.
  • Protocol conformance and constraints.
  • Protocol inheritance


  • Generic functions
  • Protocols with associated types.
  • Generic types

Memory management

  • Automatic Reference Counting.
  • Reference cycles.
  • Modifiers: weak, unowned and strong.

Are you interested in scheduling this training for your company?

Contact us

Are you interested in attending a public training course?

Contact us

Alexandru Simonescu

“I’ve been developing software for more than ten years, and I think that learning functional programming through this training opened my mind and gave me more tools to solve my daily tasks in a more efficient way.”

Ilia Berlana

“This training was amazing. It gave me a new point of view about programming. I’ve been programming in Java for ten years in the backend on Android, and my next challenge is Kotlin, and this training helped me a lot.”

Juan Carlos García

“I’m very happy because I learned a lot, and I got some new tools I can use in my work day-to-day.”