Swift 5.5 が 2021年9月20日にリリースされました。
Swift 5.5 の変更点まとめ
以下の CHANGELOG を見れば一発でわかりますね。
CHANGELOG – apple/swift github
https://github.com/apple/swift/blob/main/CHANGELOG.md
なんと 5.5 で待望の async/await が導入されるようです!
Asynchronous programming is now natively supported using async/await. Asynchronous functions can be defined using async:
以下のリンクが相当詳しいです。
Swift Concurrency まとめ – 2021年6月20日
https://zenn.dev/akkyie/articles/swift-concurrency
async/awaitとアクタをサポートするSwift 5.5 – 2021年7月15日
https://www.infoq.com/jp/news/2021/07/swift-async-await-actors
WWDC 2021のSwiftの並行処理関連のセッション一覧
https://qiita.com/koher/items/8b162940991a8bbff5f2
Swift5.5から使用可能になるAsync/awaitにいて要点を抜粋してみた
https://qiita.com/ryouta33/items/f3f1d0a8222f9dd9408b
What’s new in Swift 5.5?
https://www.hackingwithswift.com/articles/233/whats-new-in-swift-5-5
Swift 5.5の非同期処理について
https://zenn.dev/yimajo/scraps/b8e72a3f4e6e5e
async/await は javascript にもあるから、お馴染みですね。
完全に同じではないですが、似たような実装になると言われています。
詳しくは次のリンク参照。
先取り! Swift 6 の async/await
https://speakerdeck.com/koher/await
わたくし、ファミコンのドラクエ3をエミュレーションではなく、SpriteKit で iOS に移植しているのですが、アニメーションの処理でクロージャによるネストが深くなってきて、コードが読みにくくなって死にそうです笑
ドラクエ3 を iOS に移植してみる
https://nomad.office-aship.info/dq3-ios
現状でも、Promise, async を独自実装したライブラリがあるらしいのですが、
下手に入れるより、6 が来るまで耐え忍ぼうかと思います。
上記の資料にすごいわかりやすい例が書いてあります
Swift の非同期処理(これまで)
func download(from url: URL, completion: @escaping (Data) -> Void) download(from: url) { data in // ここで非同期に受け取った data を使う }
Swift の非同期処理(これから)
func download(from url: URL) async -> Data let data = await download(from: url) // ここで非同期に受け取った data を使う
Swift Concurrency Roadmap – Swift Forums
https://forums.swift.org/t/swift-concurrency-roadmap/41611
SwiftUIを学ぶのにおすすめの本
一冊でマスター!Swift Concurrency入門 – 2022/7/29
SwiftUI開発レシピ iOS 14 対応
SwiftUI iPhoneアプリ開発入門ノート[2020] iOS 14 対応
SwiftUI 徹底入門
SwiftUIではじめるiPhoneアプリプログラミング入門
iOS/macOS UIフレームワーク SwiftUIプログラミング
コメント