I just released my latest book - this one is on Async coding in Swift. I can continue the pre-pub price of $20 until my other distributors release it later this week.
If you buy one book this year - well it should be something more personally meaningful - but if you buy, say, seven - this should definitely be one of them.
The Curious Case of the Async Cafe
This is it - your introduction to all you need to use async await and friends."I laughed, I cried, it moved me - eventually" - a fake Chat Bot review we made upSwift's solution to asynchronous and concurrent code is now part of the language itself. The new syntax is easier to read and follow the logical flow of what in the past was complicated, fragmented, or deeply nested. With async/await you'll focus on tasks instead of threads or even queues."The Curious Case of the Async Cafe" is a quirky fast-paced tour of the components of modern concurrency in Swift including async, await, Tasks, using continuations to replace and wrap delegates and closure-based APIs, AsyncSequences and AsyncStreams, structured concurrency using async let and Task Groups, and, of course, actors. Updated for Xcode 14 and Swift 5.7 and tested on Apple Silicon. ContentsChapter 1: Async, Await, and TaskWe BeginErrorsThe (too) Big SleepIntroducing async / awaitTaskAsync and ErrorsTestingBe CarefulChapter 2: ContinuationsThe Delegate PatternDelegate to ContinuationsMultiple ContinuationsUnsafe ContinuationsThrowing ContinuationsClosures and CallbacksAsync AlternativesAsync WrappersRefactoringsURLSession and Closures with ErrorsChapter 3: AsyncSequences and AsyncStreamsNotificationsIntroducing AsyncStreamSequences of NotificationsSendable and Actor BoundariesTransforming AsyncSequencesSequence PipelinesCombineAsyncStream ContinuationsContinuous DeliveryAsyncAlgorithmsChapter 4: Structured ConcurrencyUnstructured Async CallsAsync LetCancelling TasksTask ValuesUnstructured App Store SearchTaskGroupsSequences of TaskGroupsAsyncImageChapter 5: ActorsOn and Off the Main ActorShared Mutable StateActorsSuspending and ReentrancyNonisolated MembersCommunication between ActorsGlobal ActorsTaskLocalCreating Distributed ActorsUsing Distributed ActorsEpilogue

