本記事について
この記事自体は、有用な情報を書いていないです!笑
私自身Swift6の対応をしよう思った時に、何から始めれば良いかわからないところがあって、今回この記事を書きました。
なので、基本的には自分用のまとめ記事なのですが、Swift6対応をこれからしていく人にも役に立てればなと思います。
※Swift6対応と書いてますが、メインはStrict Concurrency対応です。
本題
WWDC2024「Swift 6へのアプリの移行」
https://developer.apple.com/jp/videos/play/wwdc2024/10169/
まずはなんといっても公式動画。
ここでSwift6の特徴だったり、移行に関するやり方の紹介が出ています。
また、移行時の警告に対する対応の一例なんかもあります。
移行のためのマイグレーションガイド(日本語訳)
https://swift-migration-guide.jp/documentation/migrationguide/
WWDCの内容から、さらに深い情報が載っている印象です。
WWDCの内容をもう少しわかりやすく知りたい方などは、下記のSwift6の解説の動画を参照した方がいいと思います。
このマイグレーションガイド自体は、元々英語の記事でしたが、日本語訳のバージョンも作っていただいているので、非常に助かってます。
- 個人的に特に参考になる項目
-
頻出のコンパイルエラー
- 実際にSwift6に対応していくにあたってどう対応すれば良いかを考えるのに役立ちます
-
移行戦略
- Swift6対応のコツとして、upcoming featureフラグを活用するのがおすすめです。これ以外のfeatureフラグについては、この1個下の項目を参照いただくといいかもしれません
-
頻出のコンパイルエラー
Swift 6 に備える - 今後の機能(Upcoming Feature)の段階的適用 編
Swift5からSwift6にする際、さまざまなビルドエラーが発生するので、
そのエラーを細分化して、対応しやすくするためにupcoming featureフラグを活用するのがおすすめです。
それに関する情報がここにあります。
Swift.org Documentation - attributes
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/attributes
Sendable、preconcurrency、unchecked(Sendable)など
今回のSwift6対応に関するattributesのリファレンスがあるので、ここも確認すると理解が進みます。
iOSDC Japan 2024: 座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
https://www.youtube.com/watch?v=IQtWiJMcFv0
Swiftの有識者たちが、今回のSwift6の対応の一環であるStrict Concurrencyについて座談会を行う動画です。
個人的にこのStrict Concurrencyに関する対応を行うことで、よくわからないクラッシュが減ったという情報が、今回このSwift6に対応するモチベに繋がったので、非常に有用な情報でした。
Xcode 16 & Swift 6 キャッチアップ: Swift Concurrencyの基礎と最重要ポイントを総復習
https://www.youtube.com/watch?v=jJgEtjx8KHY
上記座談会の参加者であるkoherさんがSwift Concurrencyに関する全般的な知識を、わかりやすく解説してくれています。
事例別!Strict Concurrency対応方法
https://zenn.dev/matsuji/articles/99fd796f8e405a
上記座談会の参加者であるmatsujiさんの記事。
警告に対して、どう言う原因で、どう対処すれば良いのかというのをわかりやすく解説されています。
各企業さんのテックブログ
実際のコードに対して、どういう対策をとったなど参考になります。
STORES レジにおけるSwift6移行対応
STORESさん
https://product.st.inc/entry/2024/12/23/182125
Swift 6に向けた準備:Strict Concurrency CheckingをTargeted設定にした際に発生した問題と解決方法
ZOZOさん
https://techblog.zozo.com/entry/swift6-strict-concurrency-checking
iOSアプリのSWIFT_STRICT_CONCURRENCYをcompleteにした
Gunosyさん
https://tech.gunosy.io/entry/swift_strict_concurreycy
その他参考記事
エラーログとそれに対する対応
実際対応すると訳分からんエラーログが出てくるので、それの対応を書いてある具体的なありがたい記事です。
https://qiita.com/satoru_pripara/items/df491bfd412f510927f8
まとめ
いつもみなさんの記事や動画に助けられて生活しています。感謝