Advanced Swift: Generics and Protocols

The generics system and protocols are the heart of the Swift language. Learn how it all fits together in this course. By Ray Fix.

Leave a rating/review
Save for later
Comments
Share

Learning path

This is part of the Advanced Swift learning path. View path.

Who is this for?

This course is for developers interested in getting a deeper understanding of the Swift language. It expects you to be comfortable with the basic syntax of Swift and to have perhaps written an app or two. You should be familiar with basic types in the Swift standard library.

Covered concepts

This course focuses on:

  • Parametric Polymorphism
  • Protocols
  • Generics
  • Constraints
  • Conformance
  • Associated types

01
Toggle description

Generics are a key feature in Swift, which, combined with protocols, let you build clean, reusable abstractions. Let's get started!

Toggle description

What happens when you abstract across a type? Let's take a look at a simple generic type to find out.

Toggle description

Let's see how you can use protocol constraints to inform the type system about the capabilities of a type.

Toggle description

You know how to make structs, enum and classes generic. Learn how to make protocols generic using associated types.

Toggle description

It's time for a challenge! Try to use your new knowledge of associated types to build a generic protocol.

Toggle description

In this video, learn how you can add constraints to associated types. Now even specify them recursively.

Toggle description

Find out how you can add additional API to a type depending on the capability of an associated type.

Toggle description

In this challenge, let's put your knowledge of conditional conformance into action by adding API to a type.

Conclusion 2:01
Toggle description

Swift has one of the most powerful generic systems available that balances performance with ease of use.

Up next

Multiple Domains
Advanced Swift: Values and References
Swift mutation model uses values and references to improve local reasoning and maintain performance. Find ... more

Instructors

Contributors

Ray Fix

Instructor

JORGE R. MOUKEL

Tech Editor

Christine Sweigart

Editor

Over 300 content creators. Join our team.