概要
Swift 6.3は、Cとの相互運用性やクロスプラットフォーム開発、組み込み環境への対応を強化。 公式Android SDKの提供により、Android開発にも本格対応。 パッケージ管理やテスト、ドキュメント生成機能も大幅に改善。 新しい属性や最適化制御でAPI設計の自由度向上。 Swiftコミュニティの貢献による進化。
Swift 6.3の主な新機能と改善点
- Cとの柔軟な相互運用性
- @c属性 により、Swift関数やenumをCコードに公開可能
- @c(MyLibrary_callFromC) でC側の宣言名をカスタマイズ
- @c @implementation の組み合わせで、Cヘッダーで宣言された関数のSwift実装が可能
- モジュールセレクタ
- 複数モジュールで同名APIが存在する場合、 ModuleA::getValue() のようにモジュールを明示指定
- Swift標準モジュール名で Task やString処理APIへアクセス可能
- ライブラリ最適化制御属性
- @specialize で汎用APIの特定型向け実装を事前生成
- @inline(always) でインライン展開を強制(コードサイズ増加に注意)
- @export(implementation) でABI安定ライブラリの関数実装を公開し最適化範囲を拡大
- 言語進化提案の詳細
- 最新の提案一覧は Swift Evolution dashboard 参照
パッケージ・ビルドツール改善
- Swift Buildのプレビュー統合
- 全プラットフォーム共通のビルドエンジンをSwift Package Managerに統合
- クロスプラットフォーム開発体験の一貫性向上
- Swift Package Managerの新機能
- swift-syntaxプリビルドバイナリ でマクロライブラリの共通実装を分離
- 継承ドキュメント制御 でコマンドプラグインのシンボルグラフ生成時のドキュメント継承有無を指定
- swift package show-traits コマンドでパッケージのサポート特性を可視化
- 詳細は SwiftPM 6.3 Release Notes 参照
テスト機能の強化
- Swift Testingの改善
- Issue.record のseverityパラメータで警告レベル指定
- Test.cancel() でテストやタスク階層の途中キャンセル
- 画像添付 (Apple/Windowsプラットフォーム対応)でテスト中に画像を添付可能
- 採用提案: ST-0012, ST-0013, ST-0014, ST-0015, ST-0016, ST-0017, ST-0020
DocCドキュメント生成の新機能
- Markdown出力
- --enable-experimental-markdown-output でMarkdown版ドキュメント生成
- ページごとの静的HTMLコンテンツ
- <noscript>タグ にタイトル・説明等を埋め込み、SEO・アクセシビリティ改善
- --transform-for-static-hosting --experimental-transform-for-static-hosting-with-content で有効化
- コードブロック注釈
- nocopy (コピー禁止)、 highlight (特定行ハイライト)、 showLineNumbers (行番号表示)、 wrap (行折返し)などを指定可能
- --enable-experimental-code-block-annotations で利用開始
プラットフォーム・環境対応
- 組み込みSwiftの強化
- C連携、デバッグサポート、リンケージモデルの進化
- 詳細は Embedded Swift Improvements coming in Swift 6.3 参照
- Android公式SDKのリリース
- Swift SDK for Android により、SwiftでAndroidネイティブ開発が可能
- 既存のKotlin/JavaアプリへのSwift統合もサポート(Swift Java, Swift Java JNI Core)
- 詳細は Getting Started with the Swift SDK for Android 参照
- Android Workgroupによる多大な貢献
コミュニティと今後
- Swift 6.3は Swiftコミュニティ の幅広い貢献による成果
- 今後の開発や議論は Swift Forums で参加可能
- Swift 6.3ツールチェーン のインストール方法は Install Swift ページ参照
著者紹介
- Holly Borla: Swift Core Team/Lang Steering Group所属、Apple Swiftチームのエンジニアリングマネージャー
- Joe Heck: Apple Open Source Program OfficeでSwift担当