Swift 6 & 5.5 まとめ

swift

現在の Swift version は 5.4 ですが、以下のリリースが控えています。

5.5 は、2021年3月12日に、のアナウンスがされました。
Xcode 13 のリリースと同じ、2021年9月頃にリリースされると思われます。

6 は 2022年くらいにリリースされると予想されます。

swift-evolution – GitHub
https://github.com/apple/swift-evolution

次の記事に書かれているように、6 の変更点は言語の根底に関わる多数の修正が入る大型リリースとなるそうです。

Swift 6で実現する並列性サポート改善とメモリオーナシップ
https://www.infoq.com/jp/news/2020/03/swift-6-vision

そのため、6 のメジャーリリースの前に、出せるものから小出しに 5.x のマイナーfix としてリリースしていく考えが示されています。

Swift 5.5 の変更点まとめ

以下の CHANGELOG を見れば一発でわかりますね。

CHANGELOG – apple/swift github
https://github.com/apple/swift/blob/main/CHANGELOG.md

Swift 5.5

なんと 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

Swift 6

Swift 6 はどうなるんでしょうか?

Swift 6で来たる並行処理の大型アップデート近況 – Zenn
https://zenn.dev/koher/articles/swift6-concurrency

On the road to Swift 6 – Announcements – Swift Forums
https://forums.swift.org/t/on-the-road-to-swift-6/32862

Swift 5.4

5.4 で何が変わったのでしょうか?パッと以下を読みましたが、多数の細かいアップデートが沢山あるようです。

What’s new in Swift 5.4?
https://www.hackingwithswift.com/articles/228/whats-new-in-swift-5-4

Swift 5.4 Release Process
https://forums.swift.org/t/swift-5-4-release-process/41936

SwiftUIを学ぶのにおすすめの本

SwiftUI開発レシピ iOS 14 対応

SwiftUI iPhoneアプリ開発入門ノート[2020] iOS 14 対応

SwiftUI 徹底入門

SwiftUIではじめるiPhoneアプリプログラミング入門

iOS/macOS UIフレームワーク SwiftUIプログラミング

コメント

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