This course delves into the advanced features and capabilities of Swift, focusing on its evolution and the tools developers need to create modern, efficient applications. Swift has become one of the leading languages for iOS and macOS development, and mastering its key concepts is critical for anyone looking to stay at the forefront of app development.

Mastering Swift 6
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Recommended experience
Recommended experience
What you'll learn
Master advanced Swift topics like closures, protocols, and generics to write scalable code.
Gain hands-on experience with error handling, structured concurrency, and memory management in Swift.
Develop real-world applications by applying protocol-oriented and functional programming techniques in Swift.
Details to know

Add to your LinkedIn profile
June 2026
21 assignments
See how employees at top companies are mastering in-demand skills

There are 21 modules in this course
This module explores the origins and ongoing development of the Swift programming language, highlighting its versatility across Apple and non-Apple platforms. Learners will examine the major updates introduced in Swift 6 and understand how these changes impact modern software development.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 10 minutes
- Introduction•4 minutes
- What's New with Swift 6•6 minutes
1 assignment•Total 16 minutes
- The Evolution of Swift•16 minutes
This module explores how closures enhance Swift's flexibility, including their syntax, use with arrays, and handling multiple trailing closures. Learners will also discover how result builders enable the creation of expressive and maintainable domain-specific languages in Swift. By the end, you'll be able to write more concise and powerful Swift code using these advanced features.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 28 minutes
- Introduction•6 minutes
- Shorthand Syntax for Closures•6 minutes
- Using Closures with Swift Arrays•5 minutes
- Multiple Trailing Closures•5 minutes
- Result Builders•6 minutes
1 assignment•Total 16 minutes
- Mastering Closures and Result Builders in Swift•16 minutes
This module explores how Swift protocols and protocol extensions enable flexible, reusable, and maintainable code. Learners will discover how protocols facilitate polymorphism, enforce consistency with enumerations, and interact with the Any type. By the end, you'll understand how to leverage these features to write more robust Swift programs.
What's included
1 video4 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
4 readings•Total 21 minutes
- Introduction•5 minutes
- Polymorphism with Protocols•4 minutes
- Using Protocols with Enumerations•6 minutes
- Any and Any•6 minutes
1 assignment•Total 16 minutes
- Exploring Protocol Concepts in Swift•16 minutes
This module introduces the concept of generics in Swift, demonstrating how they enable developers to write flexible, reusable code. Learners will explore generic functions, types, conditional extensions, and subscripts, gaining practical skills to enhance code adaptability and type safety.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 27 minutes
- Introduction•6 minutes
- Calling Generic Functions•4 minutes
- Generic Types•6 minutes
- Conditionally Adding Extensions with Generics•4 minutes
- Generic Subscripts•7 minutes
1 assignment•Total 16 minutes
- Exploring Generics in Swift Programming•16 minutes
This module explores the differences between value and reference types in Swift, including their behavior, memory management, and use cases. Learners will examine concepts such as inout parameters, recursive data structures, inheritance, and copy-on-write optimization. Practical examples, like implementing a queue, help solidify understanding of these foundational programming concepts.
What's included
1 video6 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
6 readings•Total 33 minutes
- Introduction•6 minutes
- I/O Parameters and Value Types•7 minutes
- Recursive Data Types for Reference Types•4 minutes
- Inheritance for Reference Types•6 minutes
- Copy-on-write•5 minutes
- Creating a Queue Type•5 minutes
1 assignment•Total 16 minutes
- Value and Reference Types in Programming•16 minutes
This module explores how Swift leverages enumerations to organize related values, enhance code clarity, and manage associated data. Learners will discover how to define enums with associated values and iterate over their cases to perform useful operations. By the end, you'll be able to utilize Swift's powerful enum features to write more expressive and maintainable code.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 15 minutes
- Introduction•4 minutes
- Associated Values•5 minutes
- Enumeration Iteration•6 minutes
1 assignment•Total 16 minutes
- Exploring Advanced Enumeration Concepts in Swift•16 minutes
This module explores how programs can inspect and modify their own structure at runtime using reflection. Learners will discover how to leverage the CustomReflectable protocol to control what information is exposed during runtime inspection, enhancing debugging, logging, and security practices.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 11 minutes
- Introduction•6 minutes
- CustomReflectable Protocol•5 minutes
1 assignment•Total 16 minutes
- Reflection and Runtime Inspection in Swift•16 minutes
This module explores how to anticipate, handle, and recover from errors in Swift applications to ensure robust and reliable software. Learners will discover techniques for throwing and catching errors, customizing error messages, and managing multiple error types efficiently.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 24 minutes
- Introduction•4 minutes
- Throwing Errors•4 minutes
- Catching Errors•5 minutes
- LocalizedError Protocol•4 minutes
- Multi-pattern Catch Clauses•7 minutes
1 assignment•Total 16 minutes
- Mastering Error Handling and Availability in Swift•16 minutes
This module introduces the fundamentals of regular expressions, demonstrating how to create and use regex patterns for text searching and manipulation. Learners will explore both traditional regex literals and the more readable RegexBuilder format, gaining practical skills for implementing pattern matching in code.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 15 minutes
- Introduction•5 minutes
- Regular Expression Literals•6 minutes
- Converting Regular Expressions to RegexBuilder Format•4 minutes
1 assignment•Total 16 minutes
- Mastering Regular Expression Constructs•16 minutes
This module explores how to define and implement custom subscripts in Swift, enabling more flexible and intuitive access to elements within your custom types. Learners will discover how to create subscripts for reading and writing data, as well as how to use external names to differentiate between multiple subscript signatures. By the end, you'll be able to enhance your Swift types with powerful, tailored subscripting behavior.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 16 minutes
- Introduction•3 minutes
- Creating and Using Custom Subscripts•5 minutes
- External Names for Subscripts•8 minutes
1 assignment•Total 16 minutes
- Mastering Custom Subscripting in Swift•16 minutes
This module explores how Swift's property observers and property wrappers can be used to monitor and manage changes in property values, enhancing code reusability and maintainability. Learners will also discover how projected values extend the functionality of property wrappers for more flexible state management.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 15 minutes
- Introduction•7 minutes
- Introducing Property Wrappers•5 minutes
- Projected Values•3 minutes
1 assignment•Total 16 minutes
- Mastering Property Observers and Wrappers•16 minutes
This module explores how Swift enables dynamic access to properties and methods using dynamic member lookup and key paths. Learners will discover how these features enhance flexibility and type safety when working with data structures. Practical examples will illustrate how to implement and utilize these tools effectively in Swift programming.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 12 minutes
- Introduction•4 minutes
- Key Paths•8 minutes
1 assignment•Total 16 minutes
- Exploring Dynamic Member Lookup and Key Paths•16 minutes
This module introduces the fundamentals of Grand Central Dispatch (GCD) for managing concurrent and serial tasks in application development. Learners will explore how to create and use dispatch queues, execute code on the main queue, and schedule tasks with DispatchTime. By the end, you'll understand how to efficiently handle asynchronous operations and UI updates in your apps.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 27 minutes
- Introduction•4 minutes
- GCD•5 minutes
- Creating and Using a Concurrent Queue•5 minutes
- Executing Code on the Main Queue Function•6 minutes
- DispatchTime•7 minutes
1 assignment•Total 16 minutes
- Mastering Grand Central Dispatch•16 minutes
This module introduces Swift's modern concurrency features, including async/await, tasks, task groups, and global actors. Learners will explore how to coordinate multiple asynchronous operations, manage task cancellation, and adapt legacy completion handlers to the new concurrency model. By the end, you'll be able to write safer and more efficient concurrent code in Swift.
What's included
1 video6 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
6 readings•Total 32 minutes
- Introduction•6 minutes
- Calling Multiple Asynchronous Functions•4 minutes
- Canceling Tasks•5 minutes
- Task Groups•5 minutes
- Global Actors•5 minutes
- Adapting Completion Handlers to Async/Await•7 minutes
1 assignment•Total 16 minutes
- Concurrency Fundamentals in Swift•16 minutes
This module explores how Swift manages memory automatically and the importance of efficient resource handling in application development. Learners will investigate common pitfalls such as strong reference cycles and discover how weak references help prevent memory leaks. By the end, you'll understand key strategies to ensure your Swift applications remain robust and efficient.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 19 minutes
- Introduction•6 minutes
- Strong Reference Cycles•6 minutes
- Weak References•7 minutes
1 assignment•Total 16 minutes
- Memory Management Fundamentals•16 minutes
This module delves into advanced operator concepts in Swift, including bitwise and overflow operators, and demonstrates how to extend operator functionality for custom types. Learners will gain hands-on experience manipulating binary data and implementing operator overloading to enhance their code's expressiveness and efficiency.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 27 minutes
- Introduction•5 minutes
- Bitwise Operators•6 minutes
- The Bitwise XOR Operator•6 minutes
- BinaryInteger Extension•4 minutes
- Operator Methods•6 minutes
1 assignment•Total 16 minutes
- Exploring Advanced Swift Operators•16 minutes
This module explores how access control mechanisms in Swift help developers manage code visibility and maintain secure, well-structured applications. Learners will discover how to set and enforce access levels, particularly with enumerations, to ensure proper encapsulation and interaction between components.
What's included
1 video2 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
2 readings•Total 10 minutes
- Introduction•5 minutes
- Access Levels with Enumerations•5 minutes
1 assignment•Total 16 minutes
- Access Control Fundamentals•16 minutes
This module introduces the fundamentals of unit testing in Swift, including key testing components, new features like exit tests, and practical application through building and testing a calculator app. Learners will gain hands-on experience organizing and executing tests to improve code quality and reliability.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 24 minutes
- Introduction•4 minutes
- Building Blocks for Swift Testing•6 minutes
- Exit Tests•5 minutes
- Swift Testing Example•3 minutes
- Testing Our Calculator•6 minutes
1 assignment•Total 16 minutes
- Mastering Swift Testing Fundamentals•16 minutes
This module introduces the principles of object-oriented programming by guiding learners through the design and implementation of a vehicle system for a game. Learners will explore how to define object types, use enumerations, and organize collections of objects to meet specific requirements. By the end, participants will understand how to create modular and reusable code structures.
What's included
1 video4 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
4 readings•Total 21 minutes
- Introduction•4 minutes
- Requirements for the Example Code•3 minutes
- Forming Our Object-Oriented Design•8 minutes
- Using Our Vehicle Types•6 minutes
1 assignment•Total 16 minutes
- Fundamentals of Object-Oriented Programming•16 minutes
This module introduces the principles of protocol-oriented programming in Swift, highlighting how protocols can be used to define flexible and reusable code structures. Learners will explore the differences between protocol-oriented and object-oriented paradigms, implement protocol-based designs, and leverage protocol composition for modularity.
What's included
1 video5 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
5 readings•Total 25 minutes
- Introduction•4 minutes
- Using POP•4 minutes
- Forming Our Protocol-Oriented Design•6 minutes
- Using Our Vehicle Types•4 minutes
- Protocol Composition•7 minutes
1 assignment•Total 16 minutes
- Protocol-Oriented Programming Fundamentals•16 minutes
This module introduces the foundational concepts of functional programming in Swift, including higher-order functions and currying. Learners will explore how these techniques can lead to more modular, reusable, and maintainable code. By the end, you'll be able to apply functional programming principles to enhance your Swift development skills.
What's included
1 video3 readings1 assignment
1 video•Total 1 minute
- Overview•1 minute
3 readings•Total 16 minutes
- Introduction•6 minutes
- Higher-order Functions•6 minutes
- Currying•4 minutes
1 assignment•Total 16 minutes
- Functional Programming Fundamentals•16 minutes
Instructor

Offered by
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
Frequently asked questions
Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.
If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. You’ll be able to submit assignments once the session starts.
Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. You’ll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.
If you complete the course successfully, your electronic Course Certificate will be added to your Accomplishments page - from there, you can print your Course Certificate or add it to your LinkedIn profile.
This course is currently available only to learners who have paid or received financial aid, when available.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
More questions
Financial aid available,





