この記事の要点
- 「What’s new in Swift」は、Swiftプロジェクトとエコシステムの動きを定期的にまとめて紹介する新しいダイジェスト連載で、この記事はその初回(2025年10月号)です。ゲスト寄稿者による Server-Side Swift カンファレンスのレポート、主要パッケージのリリース、最新の Swift Evolution Proposal を取り上げています。
- サーバーサイド分野の話題が中心で、可観測性(observability)のための swift-otel 1.0 や設定読み込みのための swift-configuration など、実運用に直結するパッケージの進展が紹介されています。
- 言語面では、Swiftの関数や
enumを C へ公開する@c属性(SE-0495)と、インライン化を強制する@inline(always)属性(SE-0496)が承認され、関数定義の可視性を制御する SE-0497 がレビュー中であることが報告されています。
この号は公式の定期ダイジェストなので、ここでは Swift 利用者が押さえておくとよい注目トピックを選んで整理します。網羅的な一覧は元記事を参照してください。
注目トピック
Server-Side Swift カンファレンス
2025年10月初頭にロンドンで開催された Server-Side Swift カンファレンスの講演が公開され始めています。ゲスト寄稿者の Joe Heck 氏は、Ben Cohen 氏によるキーノート(言語性能と、高い実行性能を引き出すための言語の進化のバランス)と、Observability in Server-Side Swift の講演を挙げています。
そのほか、生成AIをサーバーサイドのSwiftコードから利用する Unlock Generative AI for Swift Server-Side Development や、ネットワークバッファへの効率的なアクセスに Swift 6.2 の Span と並行処理を活用する Building Networking Libraries with Span and Concurrency なども公開されています(Server-Side Swift 講演プレイリスト)。
コミュニティ・プロジェクトとパッケージの進展
サーバーサイドや開発環境まわりのプロジェクトに大きな動きがありました。
- Swift SDK for Android: Android Workgroup が Android 対応 SDK のプレビューリリースを発表し、Forums にも Android 向けカテゴリが新設されました。
- Swift Build and Packaging Workgroup: Swift コードのビルドとパッケージングのためのツールに注力する新しいワークグループが、ecosystem steering group の下に設置されました。
- VS Code の Swift 拡張機能: v2.12.0 がリリースされ、swiftly 連携や初回ユーザー向けのウォークスルーが追加されました。
- Swift Package Manager のドキュメント: API リファレンスを含め、docs.swift.org 上で刷新・公開されました。
パッケージエコシステムでは、可観測性・設定・性能計測まわりの更新が目立ちます。
- swift-otel 1.0.1: ログ・メトリクス・トレースを OpenTelemetry 標準でエクスポートするライブラリ。
- swift-configuration 0.2.0: swift-log / swift-metrics と同じパターンで、JSON・YAML・環境変数など複数のローダから設定を読み込む新しいパッケージ。
- swift-profile-recorder 0.3.8: コードが何に時間を費やしているかを捕捉するインプロセスのプロファイラ。
- swift-collections 1.3:
Span/InlineArray/ non-copyable 型といったSwiftの性能機能を活用する高性能コレクションUniqueArrayが追加されました。 - swiftly 1.1.0: VS Code でのSwift開発を支援する統合が深化しました。
Swift Evolution の動き
C 相互運用と最適化コントロールに関する Proposal が動いています。いずれも Swift Digest にダイジェストがあります。
- SE-0495 C compatible functions and enums(承認済み): Swiftの関数や
enumを C から呼び出し・表現できるようにする@c属性を導入します。実験的だった@_cdeclを正式化・拡張するものです。 - SE-0496
@inline(always)属性(承認済み): コンパイラがサイズを理由にインライン化を見送る場合でも、特定の関数についてインライン化を強制できる@inline(always)属性を導入します。 - SE-0497 Controlling function definition visibility in clients(レビュー中): 関数が呼び出し可能なシンボルを生成するか、また最適化のために定義を利用側へ公開するかを明示的に制御できるようにします。
@inlinableによる既存の挙動をより細かく制御するものです。