一冊でマスター!Swift Concurrency入門
1,980円 (1,800円+税)
関連サイト
本書の関連ページが用意されています。
内容紹介
Swift 5.5からSwiftは並行処理を言語機能としてサポートするようになりました。それがSwift Concurrencyです。本書はその機能を解説しています。
async/awaitにより、非同期処理をクロージャーよりも完結に記述できます。データ競合を防ぐ新しい型としてActorやデータ競合が発生しない型を表すSendableが登場しました。並行処理の実行単位であるTaskもあります。Swift ConcurrencyはWWDC 2021の目玉機能といっても過言ではありません。
Swift Concurrencyの概要が一冊で日本語で理解できるのが本書の特徴です。Swift Concurrencyには覚えなければいけない概念が数多くあります。async、await、Actor、MainActor、Task, TaskGroup、AsyncSequence、Sendableなどなど。本書は一冊でSwift Concurrencyの概要をほぼ全て網羅しています。各章にそれぞれサンプルコードが付属しているので、どんな動作をするのかを試して理解を深められます。
書誌情報
- 著者: 佐藤 剛士
- 発行日: 2022-07-29 (紙書籍版発行日: 2022-07-29)
- 最終更新日: 2022-07-29
- バージョン: 1.0.0
- ページ数: 128ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス NextPublishing
対象読者
Swift,並行処理,非同期処理,並行,非同期,処理,iOS,アプリ,アプリ開発,同人誌,技術同人誌,技術書典に興味がある人
著者について
佐藤 剛士
iOSエンジニアとして株式会社メルペイに勤務。SwiftとiOSアプリ開発が得意で、よく技術系同人誌の即売会に参加し、SwiftやiOS関連の技術同人誌を頒布している。著書に「ハーフモーダルで理解するFluid Interface」「SwiftUI実践入門」(いずれも技術書典で頒布)や「1人でアプリを作る人を支えるSwiftUI開発レシピ」「SwiftUIで学ぶVisionフレームワーク入門」(いずれもインプレスR&D刊)がある。手軽に診断できる本格風水アプリ「玄空飛星風水」(Mr. リュウ監修)をリリース中。
目次
はじめに
- 本書の構成
- 対象読者
- 動作環境
- サンプルコード
- 表記関係について
第1章 async/await
- 1.1 クロージャーのコールバックによる非同期処理の問題点
- 1.2 async/awaitで解決する
- 1.3 プログラムの待機可能性とは?
- 1.4 async/awaitの文法
- 1.5 順列実行と並列実行
- 1.6 クロージャー形式のメソッドを非同期関数にラップする
- 1.7 withCheckedContinuation
- 1.8 withCheckedThrowingContinuation
- 1.9 resumeメソッドは必ず1回実行する
- 1.10 まとめ
第2章 Actor/データ競合を守る新しい型
- 2.1 シリアルキューでデータ競合を解決
- 2.2 Actorでデータ競合を守る
- 2.3 Actorの文法
- 2.4 nonisolatedでActor隔離を解除する
- 2.5 再入可能性と競合状態
- 2.6 MainActor
- 2.7 まとめ
第3章 AsyncSequence
- 3.1 iOS 15のAPIを利用する
- 3.2 カスタム定義
- 3.3 AsyncStream/既存コードに適応
- 3.4 まとめ
第4章 Task
- 4.1 Structured Concurrency
- 4.2 タスクツリー
- 4.3 タスクグループ
- 4.4 エラーが発生しないタスクグループ
- 4.5 エラーが発生するタスクグループ
- 4.6 協調的なキャンセル
- 4.7 async letバインディング
- 4.8 Unstructured Concurrency
- 4.9 下位階層にStructured Concurrencyがある場合
- 4.10 各タスクの特徴比較
- 4.11 まとめ
第5章 Sendable
- 5.1 Sendableプロトコル
- 5.2 @Sendable属性
- 5.3 Swift 6への準備
- 5.4 @preconcurrency
- 5.5 Xcode 13.4の変更
- 5.6 まとめ
第6章 既存のプロジェクトにSwift Concurrencyを導入
- 6.1 XcodeバージョンとSwift Concurrencyの対応状況
- 6.2 既存アプリ:GitHubリポジトリー検索アプリ
- 6.3 Swift Concurrencyを導入
- 6.4 iOS 15にむけて
- 6.5 まとめ
あとがき
- 著者紹介/佐藤剛士 @hatakenokakashi
- 感想、フィードバック
- 謝辞
- 参考文献
- 英訳対応表