<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Modern Concurrency in Swift Article Series on Andy Ibanez</title><link>https://www.andyibanez.com/categories/modern-concurrency-in-swift-article-series/</link><description>Recent content in Modern Concurrency in Swift Article Series on Andy Ibanez</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 08 Sep 2021 07:00:00 -0400</lastBuildDate><atom:link href="https://www.andyibanez.com/categories/modern-concurrency-in-swift-article-series/index.xml" rel="self" type="application/rss+xml"/><item><title>Modern Swift Concurrency Summary, Cheatsheet, and Thanks</title><link>https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/</link><pubDate>Wed, 08 Sep 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/</guid><description>&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Group Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Since WWDC21, we have talked, extensively, about all the new concurrency features introduced in Swift 5.5. We covered &lt;em&gt;a lot&lt;/em&gt; of topics, so I decided to finish off this series writing a summary article were we cover the most important topics of each article. Links will be given to the relevant articles when necessary in case this summary is not enough.&lt;/p&gt;</description></item><item><title>Using AsyncSequence in Swift</title><link>https://www.andyibanez.com/posts/using-asyncsequence-in-swift/</link><pubDate>Wed, 01 Sep 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/using-asyncsequence-in-swift/</guid><description>&lt;ul&gt;
&lt;li&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift Article Series&lt;/a&gt;.*&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Group Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using AsyncSequence in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Along the new concurrency APIs introduced in Swift at WWDC2021, we have AsyncSequence. &lt;code&gt;AsyncSequence&lt;/code&gt; is a collection protocol that allow us to receive data in loops and even top higher order functions - such as &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;map&lt;/code&gt; and &lt;code&gt;reduce&lt;/code&gt; - asynchronously, being able to &lt;code&gt;await&lt;/code&gt; for new data as it becomes available.&lt;/p&gt;</description></item><item><title>Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model</title><link>https://www.andyibanez.com/posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model/</link><pubDate>Wed, 18 Aug 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift Article Series&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Task Groups in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Sharing Data Across Tasks with @TaskLocal with the new Swift Concurrency Model&lt;/p&gt;</description></item><item><title>@MainActor and Global Actors in Swift</title><link>https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/</link><pubDate>Wed, 11 Aug 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift Article Series&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Task Groups in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;@MainActor and Global Actors in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;We have recently talked about &lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;actors&lt;/a&gt;, what they are, and how to use them. If you remember, an actor controls access to its properties, so a member doesn&amp;rsquo;t get written from different processes at the same time, avoiding corrupted data.&lt;/p&gt;</description></item><item><title>Understanding Actors in the New Concurrency Model in Swift</title><link>https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/</link><pubDate>Wed, 04 Aug 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift Article Series&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Task Groups in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;When we are working with concurrency, the most common problem developers face are data races. Whether it is a task updating a value at the same time another task is reading it or two tasks writing a value so that it it has an invalid value, data races are probably the main pain point of concurrency. Data races are very easy create, and hard to debug. There are entire books dedicated to the problem of data races and established patterns to avoid them.&lt;/p&gt;</description></item><item><title>Unstructured Concurrency With Detached Tasks in Swift</title><link>https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/</link><pubDate>Wed, 28 Jul 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift Article Series&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article was originally written creating examples using Xcode 13 beta 1. The article, code samples, and provided sample project have been updated for Xcode 13 beta 3.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Task Groups in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Understanding async tasks is a requirement to read this article. If you don&amp;rsquo;t understand async tasks, you can read the &lt;a href=""&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt; article from this Article Series&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Introduction to Unstructured Concurrency in Swift</title><link>https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/</link><pubDate>Wed, 14 Jul 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift Article Series&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article was originally written creating examples using Xcode 13 beta 1. The article, code samples, and provided sample project have been updated for Xcode 13 beta 3.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Task Groups in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Introduction to Unstructured Concurrency in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Understanding Structured Concurrency in Swift is a pre-requisite to read this article. If you aren&amp;rsquo;t familiar with that concept, feel free to read the &lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Beginning Concurrency in Swift: Structured Concurrency and async-let&lt;/a&gt; and &lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Group Tasks in Swift&lt;/a&gt; articles of this series.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Structured Concurrency With Task Groups in Swift</title><link>https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/</link><pubDate>Wed, 07 Jul 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift Article Series&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article was originally written creating examples using Xcode 13 beta 1. The article, code samples, and provided sample project have been updated for Xcode 13 beta 3.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Structured Concurrency With Task Groups in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Understanding Structured Concurrency and &lt;code&gt;async let&lt;/code&gt; is a pre-requisite to read this article. If you aren&amp;rsquo;t familiar with that concept, feel free to read the third part of this article series: &lt;a href=""&gt;Beginning Concurrency in Swift: Structured Concurrency and async-let&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Structured Concurrency in Swift: Using async let</title><link>https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/</link><pubDate>Wed, 30 Jun 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift&lt;/a&gt; article series.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article was originally written creating examples using Xcode 13 beta 1. The article, code samples, and provided sample project have been updated for Xcode 13 beta 3.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Structured Concurrency in Swift: Using async let&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Task Groups in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Understanding async/await is a pre-requisite to read this article. If you aren&amp;rsquo;t familiar with that concept, feel free to read the first part of this article series: &lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Converting closure-based code into async/await in Swift</title><link>https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/</link><pubDate>Wed, 23 Jun 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift&lt;/a&gt; article series.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article was originally written creating examples using Xcode 13 beta 1. The article, code samples, and provided sample project have been updated for Xcode 13 beta 3.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Converting closure-based code into async/await in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Task Groups in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;To better benefit from this article, you should be familiar with async/await. If you aren&amp;rsquo;t, feel free to read the first part of this article series: &lt;a href="https://www.andyibanez.com/posts/understanding-async-await-in-swift/"&gt;Understanding async/await in Swift&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Understanding async/await in Swift</title><link>https://www.andyibanez.com/posts/understanding-async-await-in-swift/</link><pubDate>Wed, 16 Jun 2021 07:01:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/understanding-async-await-in-swift/</guid><description>&lt;p&gt;&lt;em&gt;This article is part of my &lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift&lt;/a&gt; article series.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article was originally written creating examples using Xcode 13 beta 1. The article, code samples, and provided sample project have been updated for Xcode 13 beta 3.&lt;/em&gt;&lt;/p&gt;
&lt;h6 id="table-of-contents"&gt;Table of Contents&lt;/h6&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/"&gt;Modern Concurrency in Swift: Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Understanding async/await in Swift&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/converting-closure-based-code-into-async-await-in-swift/"&gt;Converting closure-based code into async/await in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-in-swift-using-async-let/"&gt;Structured Concurrency in Swift: Using async let&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/structured-concurrency-with-group-tasks-in-swift/"&gt;Structured Concurrency With Group Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/introduction-to-unstructured-concurrency-in-swift/"&gt;Introduction to Unstructured Concurrency in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/unstructured-concurrency-with-detached-tasks-in-swift/"&gt;Unstructured Concurrency With Detached Tasks in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/understanding-actors-in-the-new-concurrency-model-in-swift/"&gt;Understanding Actors in the New Concurrency Model in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/mainactor-and-global-actors-in-swift/"&gt;@MainActor and Global Actors in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="posts/sharing-data-across-tasks-tasklocal-new-swift-concurrency-model"&gt;Sharing Data Across Tasks with the @TaskLocal property wrapper in the new Swift Concurrency Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/using-asyncsequence-in-swift/"&gt;Using AsyncSequence in Swift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.andyibanez.com/posts/modern-swift-concurrency-summary-cheatsheet-thanks/"&gt;Modern Swift Concurrency Summary, Cheatsheet, and Thanks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Before you try to dive in with concurrency in Swift, you need to understand async/await. There&amp;rsquo;s no way around it. While async/await are not the only &lt;a href="https://www.andyibanez.com/posts/multithreading-options-on-apple-platforms/"&gt;concurrency options&lt;/a&gt;, Apple&amp;rsquo;s SDKs are starting to make heavy use of them. There is no doubt that third-party library providers will start offering these as well.&lt;/p&gt;</description></item><item><title>Modern Concurrency in Swift: Introduction</title><link>https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/</link><pubDate>Wed, 16 Jun 2021 07:00:00 -0400</pubDate><guid>https://www.andyibanez.com/posts/modern-concurrency-in-swift-introduction/</guid><description>&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;This article series was originally written creating examples using Xcode 13 beta 1. The articles in the series, code samples, and provided sample projects have been updated for Xcode 13 beta 3.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is a tutorial series focused on the new async/await APIs Apple introduced in WWDC2021. I do not know how many articles it is going to have yet, but they will be posted in the upcoming weeks.&lt;/p&gt;</description></item></channel></rss>