Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Concurrency by Example: SwiftUI Projects that Teach You
Rating: 4.7 out of 5(15 ratings)
1,329 students

Concurrency by Example: SwiftUI Projects that Teach You

Build Real Apps and Understand Task Groups and Actors in Depth
Created byNorbert Grover
Last updated 5/2025
English

What you'll learn

  • Understand how to use Task, TaskGroup, and structured concurrency in Swift to manage asynchronous work efficiently.
  • Learn how to use @MainActor and Actor types to safely update UI and manage state across threads.
  • Build a Quote Loader app that fetches and displays data concurrently, demonstrating real-world async workflows.
  • Develop an Image Loader app that uses actors for safe caching and concurrent image retrieval.
  • Apply the MVVM architecture pattern to structure SwiftUI apps for clarity, scalability, and testability.
  • Understand how to use protocols and dependency injection to write modular, testable SwiftUI code.
  • Learn how to handle asynchronous sequences and lifecycle management in SwiftUI views.
  • Gain experience debugging common issues in Swift concurrency, such as race conditions and cancellation.
  • Explore how to architect apps that remain responsive and performant under real-world data loads.
  • Build confidence transitioning from UIKit or beginner-level Swift into advanced, production-ready SwiftUI development.

Course content

3 sections9 lectures3h 18m total length
  • What is a Task Group?11:03

    If you've ever felt overwhelmed trying to understand Swift concurrency, this video is for you. In this beginner-friendly breakdown, we demystify TaskGroup — a powerful tool that allows you to run multiple asynchronous tasks in parallel without losing your mind (or corrupting your data).

    You'll learn:

    • What a TaskGroup is and why it's useful

    • How TaskGroup compares to DispatchGroup

    • How to use TaskGroup to safely manage multiple async operations

    • The role of @Actor in Swift concurrency

    • How Actors help you avoid data races and why they're a perfect companion to task groups

    • A real-world SwiftUI example combining TaskGroup and @Actor to download and manage data safely

    By the end of this video, you’ll not only understand how TaskGroup works — you’ll see how it fits into the bigger picture of structured concurrency in Swift and how it empowers you to write safer, more efficient code.

    This isn’t just theory — it’s hands-on Swift training.
    Whether you're self-taught, transitioning into iOS, or just need a clearer explanation, this is the async video you’ve been waiting for.

  • Explaining the Quotes App and why we are making it.3:14

    In this video, we walk through the Quote Loader app — a beginner-friendly SwiftUI project designed to show you exactly how to use @Actor and TaskGroup in real-world scenarios.

    If you’re struggling to understand structured concurrency in Swift, this is the video that connects the dots.

    You’ll learn:

    • How to use @Actor to manage shared state safely without data races

    • Why actors are ideal for isolating asynchronous data operations

    • How TaskGroup enables running multiple asynchronous tasks in parallel

    • How to combine TaskGroup with an actor to safely mutate shared data across concurrent tasks

    • How these tools simplify your code and make it safer and more scalable

    We break down every step in the app's architecture — from data flow to task execution — so you can not only understand what’s happening, but confidently apply these concepts in your own SwiftUI apps.

    If you’ve been confused by async/await, actor isolation, or parallel task execution, this video is designed to make everything finally click.

Requirements

  • You should have a basic understanding of Swift syntax, including variables, functions, and control flow such as if and for statements.
  • You should be comfortable using Xcode to open projects, navigate SwiftUI previews, and run apps in the simulator or on a physical device.
  • You must have access to a Mac computer with the latest version of Xcode installed to take full advantage of SwiftUI and Swift concurrency features.
  • You do not need any prior experience with SwiftUI or the MVVM architecture, as both will be thoroughly introduced and explained.
  • You are not expected to have any background in concurrency or multithreading, since this course is designed to teach you those concepts from the ground up.

Description

Feel like async code is a foreign language? You’re not alone — and you’re not behind.

If you’re a self-taught developer or someone just starting out with SwiftUI, chances are you’ve already run into the wall of confusing jargon: async, await, TaskGroup, @Actor, structured concurrency… and tutorials that assume you already understand it all. It’s frustrating. It’s discouraging. And worst of all — it slows you down.

I built SwiftUI Download Lab to fix that.

This course is not a shallow overview or a lecture in disguise. It’s a hands-on, guided learning experience designed to help real beginners like you not just understand, but actually use modern Swift concurrency tools in everyday SwiftUI development.

We start at your level — no ego, no assumptions — and grow together. Each lesson is carefully crafted to demystify the abstract concepts and show you how to apply them in real-world scenarios.

You’ll work on two complete mini-projects that build real skills:

Project 1: Quote Loader
Here, you'll learn what @Actor really is — not in theory, but through a working example. You’ll see how it protects shared data, why it matters in real apps, and how to use it like a pro without having to memorize a whiteboard definition.

Project 2: PexelsGalleryLoader
You'll tap into the power of TaskGroup to perform multiple image downloads in parallel using the Pexels API. We’ll talk through how concurrency works in Swift, why TaskGroup is a game-changer, and how to use it in a way that’s actually understandable.

By the end of this course, you’ll know:

  • What async vs. sync really means (and when to use each)

  • How to avoid common bugs caused by race conditions or blocked threads

  • How to fetch data from APIs and display it in SwiftUI — the right way

  • How to reason through concurrent code like a senior developer

  • How @Actor and TaskGroup fit into your mental model of app architecture

This course doesn’t just teach you how to code — it helps you understand why the code works the way it does. And once you understand that, your confidence as a Swift developer goes through the roof.

This course is for you if:

  • You’re self-taught or transitioning into iOS development

  • You’ve felt overwhelmed by Swift’s concurrency model

  • You want to build SwiftUI apps with clean, modern async code

  • You want to feel like you're finally “getting it” instead of guessing

Let’s cut through the confusion — together.

Join me in the SwiftUI Download Lab, and let’s turn your uncertainty into clarity, your confusion into confidence, and your curiosity into real skills.

Enroll now — and start writing SwiftUI async code like you’ve been doing it for years.

Who this course is for:

  • Beginner iOS developers who want to understand Swift concurrency through hands-on SwiftUI projects.
  • UIKit and Storyboard developers looking to transition into SwiftUI and modern async architecture.
  • Self-taught programmers who struggle with async/await, TaskGroup, and @MainActor in Swift.
  • Developers new to the MVVM design pattern and interested in writing clean, scalable SwiftUI code.
  • Intermediate Swift learners who want to solidify their knowledge with real-world apps.
  • Students or bootcamp graduates looking to deepen their SwiftUI skills with real concurrency tools.
  • Mobile app freelancers who want to write more maintainable and testable iOS applications.
  • Developers aiming to prepare for technical interviews that focus on Swift and modern iOS practices.
  • Engineers from other disciplines moving into iOS who want practical concurrency experience.
  • Anyone curious about Swift concurrency and ready to build production-quality features with confidence.