新刊
同人誌・134ページ・30部頒布・紙/電子・1,300円現金のみの取り扱いになります。
Swift 5.5からSwiftは並行処理を言語機能としてサポートするようになりました。
Swift Concurrencyです。
async/awaitにより、非同期処理をクロージャーよりも完結に記述できます。
データ競合を防ぐ新しい型としてActorやデータ競合が発生しない型を表すSendableが登場しました。
並行処理の実行単位であるTaskもあります。
Swift ConcurrencyはWWDC 2021の目玉機能といっても過言ではありません。
本書ではSwift Concurrencyの機能を解説した技術本です。
非同期処理をasync/awaitで記述できるようになりました。従来クロージャーによるコールバックと比べてどのように簡潔、安全になったのかを解説します。
マルチスレッドプログラミングにおいて、データ競合(data race)は典型的な不具合のひとつです。Swift Concurrencyではデータ競合を防ぐ新しい型、Actorが導入されました。どのような特徴があるのかを解説します。
繰り返し処理でお馴染みのfor
文を非同期で書きましょう。
for await inループとそれを実現するAsyncSequenceプロトコルを学びます。
Swift Concurrencyの並行処理はTaskという単位で行われます。
Taskの特徴を解説します。
Actorを始め、並行コードにおいて、データ競合なしにデータを同時並行処理間で渡せるかどうかを表す新しいプロトコルSendableが登場しました。Sendableを解説し、コンパイラがエラーを出力した場合の対処方法を探ります。
既存のプロジェクトにSwift Concurrencyを導入する方法を解説します。async/await、@MainActorだけでなく、Swift 5.6の対応も行います。
本書は次の環境で検証しています。
• iOS 14.5, iOS 15.0
• Xcode 13.4.1
• Swift 5.6
• macOS 12.4
• MacBook Pro(14 インチ、2021) チップ: Apple M1 Max