📃

[Swift] Concurrency (async/await) 周りのクラス図っぽいもの

2022/03/16に公開2

Class diagram of Swift's async/await

How to use it?

全体を俯瞰したい際や、学習の補完剤・チートシートなどにご活用ください。

高画質版:
https://gist.github.com/YusukeHosonuma/886516d49aac5c19b7d68bff60c9627e

draw.io で作成したものを Google Drive で共有していますので、必要に応じてご利用ください。
https://drive.google.com/file/d/1aTt61yaN77-6p1iLX9oC34xbQ9EQilNU/view?usp=sharing

Revisions

rev.1

  • Taskの説明コメントが誤っていたので修正。
  • グローバル関数(withCheckedContinuationなど)を追加。
  • Combine のPublisherとの関係を追加。
  • サンプルコードの一部を改善。
  • 全体のレイアウト・スタイルの見直し。

rev.0

初版。
https://twitter.com/tobi462/status/1498165760946229248?s=20&t=8vFRmzoRpgm7g0BGk_VeSA

Special Thanks!

日本語で素晴らしいスライド・記事を作成してくださったすべての方へ[1]、また難しい問題をすべて解決してくれた Swift 開発チームへ。
https://speakerdeck.com/shiz/hello-swift-concurrency-world
https://speakerdeck.com/koher/awaityaactordeiosapurikai-fa-gadoubian-waruka-before-and-afterfalseju-ti-li-dexue-bu
https://speakerdeck.com/satotakeshi/swift-concurrencyru-men
https://zenn.dev/akkyie/articles/swift-concurrency
https://zenn.dev/koher/articles/swift-concurrency-cheatsheet

脚注
  1. 順不同。主たる学習ソースとして利用させていただいた記事のみを列挙。 ↩︎

Discussion

IcemanIceman

SwiftUI.Viewについて、SwiftUI.View自体には@MainActorはついていませんが、そのvar body: Self.Viewのほうには@MainActorついてますね。swiftinterfaceを見ると確認できます。(/Applications/Xcode_13.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SwiftUI.framework/Modules/SwiftUI.swiftmodule/arm64-apple-ios.swiftinterface など。)

tobi462tobi462

ははぁ、なるほどです。
それは知らなかったので勉強になりました🙏