Swift 5.5 リリース

swift

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プログラミング

コメント

タイトルとURLをコピーしました