Welcome! Before we get to the interisting stuff I want to say a couple of things about what you are reading.
My intention with this "book" is to help you learn everything I know about Swift Concurrency. If you read my blog or watch my videos then you already know my style 😉. If it's the first time you are reading something of mine, welcome!
Let me tell you a bit about what you will find here. It won't be a step-by-step tutorial on how to do something with concurrency, no. Instead, you will find explanations on what each part of the concurrency story does, how it does it and why it is done in that way. You will get the reasons behind the decisions, some theory and even comparisons with other platforms.
My job here is to be your guide. I don't want to just introduce you to the surface of the topic. No. Seeing how cool async/await is and how amazing actors are is cool and all, but what I want is to walk with you way further than that.
We won't get to the deepest part together, I wish I was so knowledgeable, but ultimately I'm not an expert, I'm just a guy that has spent a lot of time reading and documenting this topic since the first words were mentioned on Swift Evolution. But don't fear! I hope I will have equipped you with all the tools needed so you can continue the journey on your own! And remember, if you get further, come back and share it with the rest of us!
Thanks to all the notes I've taken, and all the conversations I've had -in the forums, twitter, slack, and even WWDC labs!- there is the urge in me to share my knowledge with a wider audience. And little that's my desire and why I'm doing this. I want you all to know those nifty details that I've learned along the way. And all the ones that I still have to learn!
I'm sure that by the time you are reading this there will be tons of other resources out there. I encourage you to read those too. We have an amazing community full of smart people so learn from everybody as much as you can!
Besides the text written here and in my notes I also have a bunch of code with experiments. Looking at some of them may inspire you to go and explore your own ideas. Going wild is great for getting a deeper understanding of how concurrency works.
If can also read other related articles about Swift concurrency on my blog:
I've mentioned my notes. They are the source of what you are reading. They are vast but mainly written for my brain. This means that it will take me a while to go trough them and rewrite them so they make sense for the rest of the world. Bare with me while that happens.
If you are curious about how my system looks like here, you have a graph: