【2022年】Xcode/Apple Platform/Swiftアップデートの歩き方

先にまとめ

前提

XcodeApple Platform、Swift 、そしてそれらのアップデートには相互に関係がある。
ここでのカテゴライズはオーバーラップがあるものとして捉えてもらいたい。

対象読者

  • Swift、Apple Platformアプリケーション開発の中上級者
  • WWDCで盛り上がるが、それ以外の期間のキャッチアップまで手が回っていない人

Xcode

基本的に、Apple Platfromアプリケーションを開発する上で、Xcodeのバージョンには大きな影響を受ける。
Xcodeに同梱されるSwift、各種SDKを使って、コンパイルするからだ。

Xcode Release Notes

developer.apple.com

全体を通して、まずは Xcode Release Notes に目を通すとよいだろう。
ここにはSwift、SDKXcode自体のアップデートについて記載される。
Xcode Betaについても更新があり、解決した問題、既知の問題、それに対するworkaroundも掲載されている。

Xcode Release Notesは初手としてはいい反面、各Frameworkのアップデートは省略されている。

Apple Platform

開発におけるXcodeの影響は支配的だが、とりわけApple Platformのアップデートとの関係は深い。

‪Technologies‬ Documentation API diff

developer.apple.com

API diff では、Xcodeのバージョン間で差分を確認できる。
普段の開発でもドキュメントを確認する場合に参照するので、扱いには慣れているだろう。
ただし、新しいFrameworkやメソッド (それ以外に古くから存在するものであろうと) No overview available も多いので注意されたい。

Tech Talks

developer.apple.com

特にWWDCの期間になるが、Tech Talks の動画も貴重な資料だ。
WWDC以外でも動画がアップロードされることもある。
しかし、日頃のアップデートを追うという意味では、ここに辿り着くことは少ない。
サポートするPlatformバージョンが追いついた時に、改めて見直すことはよくある。

Swift

次にSwift言語としてのアップデートを見る。
Swiftや多くのツール群は、Open Source Projectとして開発されていて、Apple Platformとは別サイクルでアップデートされている。
しかし、現実はXcodeのアップデート (= Apple Platformのリリース) に合わせて、Swiftのリリースも行われている。

apple/swift

github.com

Swift本体。
CHANGELOGに、バージョン毎のアップデートがまとまっていてわかりやすい。

apple/swift-package-manager

github.com

Swift Package Manager。
Swiftのリリースに合わせて、リリースされる。
CHANGELOGに、バージョン毎のアップデートがまとまっていてわかりやすい。

swift.org Blog

www.swift.org

Swiftのリリースに合わせてブログが公開され、リリースに含まれるプロポーザルについて紹介される。
e.g. https://www.swift.org/blog/swift-5-5-released/

それ以外にも、PackageのOpen Source化などが周知されることがある。
読みやすい内容になっているので、おすすめ。

swift-evolution

リリースに合わせたアップデートよりも、進化のキャッチアップ面が大きいが、以下も参照されたい。

apple/swift-evolution

github.com

Swift/Swift Package Manager/それ以外にもSwift に関わる進化について、リリース前からキャッチアップしていくためにはここから。
それだけでなく、swiftやswift-package-managerのCHANGELOGの理解を深めたい時に、立ち戻ってproposalを眺めることもよくある。
Acceptされるまでは大胆に変更されることも多々あるので、その点には注意されたい。

Swift Forums

forums.swift.org

apple/swift-evolutionに投稿されたproposalやそれの元となる議論が行われている。

ちなみにSwiftのリリースプロセスについても公開される。 (≒Apple Platformのリリース時期も予測できる)
e.g. Swift 5.6 Release Process - Announcements - Swift Forums