2 ポイント 投稿者 GN⁺ 2026-03-28 | 1件のコメント | WhatsAppで共有
  • 言語、標準ライブラリ、ビルドシステム、プラットフォームサポート全般を拡張し、開発者体験を改善
  • C相互運用性の強化Android公式SDKの追加組み込み環境の改善DocCドキュメントツールの拡張が主な変更点
  • Swift Package Managerは統合ビルドエンジン事前ビルド済みSwift Syntaxサポートを通じて、クロスプラットフォームビルドの一貫性を高める
  • Swift Testingは、警告レベルの問題記録、テストのキャンセル、画像添付などの新機能を追加し、テストの柔軟性を強化
  • Android SDKの公式リリースにより、Swiftのクロスプラットフォーム開発領域が拡大し、Kotlin/Javaアプリとの統合が可能に

Swift 6.3 の主なアップデート

  • Swift 6.3 は、言語、標準ライブラリ、ビルドシステム、プラットフォームサポート全般にわたって拡張された機能を提供
  • C相互運用性の強化Android公式SDKの追加組み込み環境の改善ドキュメントツール DocC の拡張が中核的な変化
  • 開発者体験の向上とクロスプラットフォーム開発の統合を目標とする

言語と標準ライブラリ

  • C相互運用性

    • 新しい @c 属性により、Swift関数やenumをCコードに公開可能
    • @c(MyLibrary_callFromC) 形式でユーザー定義のC宣言名を指定できる
    • @c@implementation を併用すると、SwiftでCヘッダーに宣言された関数を実装可能
    • この組み合わせでは、Swiftが既存のC宣言との一致を検証する
  • モジュール名セレクタ(Module Name Selectors)

    • 同じ名前のAPIを複数のモジュールから取り込む場合、ModuleA::getValue() 形式でモジュールを明示した呼び出しが可能
    • Swift::Task 構文により、並行性(concurrency)および文字列処理APIにアクセス可能
  • ライブラリAPIの性能制御

    • @specialize: ジェネリックAPIの特定の型に対する事前特殊化実装を提供
    • @inline(always): インライン化を強制し、呼び出し箇所で関数本体を展開
    • @export(implementation): ABI安定ライブラリで関数実装を公開し、追加の最適化を許可
    • 関連提案は Swift Evolution ダッシュボードで確認可能

パッケージとビルドの改善

  • Swift Package Manager にSwift Build 統合プレビューが含まれ、すべてのプラットフォームで一貫したビルド体験を提供
    • 統合ビルドエンジンを通じてクロスプラットフォーム開発の一貫性を強化
    • ユーザーは自分のパッケージで直接テストし、問題を報告できる
  • SwiftPM 6.3 の主な改善点
    • Prebuilt Swift Syntax サポート: マクロ専用ライブラリで事前ビルド済みの swift-syntax バイナリを使用可能
    • 柔軟なドキュメント継承制御: シンボルグラフを生成する命令型プラグインで継承ドキュメントを含めるかどうかを制御
    • パッケージ特性の探索機能: swift package show-traits コマンドでパッケージの対応特性を確認可能
    • 詳細は SwiftPM 6.3 リリースノートに含まれる

コアライブラリの更新

  • Swift Testing

    • 警告レベルの問題記録: Issue.record(..., severity: .warning) により、テスト失敗にせず警告のみを表示
    • テストキャンセル機能: try 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コンテンツ: `` 内に要約HTMLを挿入し、検索エンジン対応とアクセシビリティを向上
    • コードブロック注釈の拡張: nocopy, highlight, showLineNumbers, wrap などの新しいフォーマットオプションを追加
    • --enable-experimental-code-block-annotations オプションで有効化可能

プラットフォームと環境

  • Embedded Swift

    • C相互運用性の強化デバッグ改善リンケージモデル完成段階の前進など、多数の改善を含む
    • 詳細は “Embedded Swift Improvements coming in Swift 6.3” ブログで確認可能
  • Android

    • 公式 Swift SDK for Android を初めてリリース
    • Swift によるネイティブAndroidアプリ開発、SwiftパッケージのAndroidビルドをサポート
    • Swift Java および Swift Java JNI Core を通じて Kotlin/Java アプリと統合可能
    • Swift のクロスプラットフォーム開発拡張に向けた重要なマイルストーンと評価される
    • スタートガイドは “Getting Started with the Swift SDK for Android” 文書で提供

次のステップ

  • Swift 6.3 ツールチェーンは Install Swift ページからインストール可能
  • 開発者はすぐに新機能を試し、フィードバックを提供できる

1件のコメント

 
GN⁺ 2026-03-28
Hacker Newsの意見
  • Swiftでこういう素晴らしいリリースが出るのを見るのはうれしい
    v3以降は使っていないが、2015〜17年ごろにはSwiftがPythonを置き換える可能性もあった
    シンプルで高速で、C/C++エコシステムとも相性が良かったからだ。IBMがサーバー側を後押ししていた時期には、本当に可能性があった
    しかしAppleはコミュニティを十分に引き込めず、結局SwiftはApple専用言語のままになってしまった。今では複雑さもC++並みに上がっている

    • 大学時代にフリーランスとして働きながら、SwiftでWebバックエンドを作っていた。Heroku buildpackでデプロイしていて、かなり楽しい時期だった
      Swiftは好きだが、Appleエコシステムの外ではまだ臨界点を超えられていない感じがする。結局去年TypeScriptに移行した
    • 最新のSwift 6.3を使っても、Appleプラットフォーム以外での開発は依然としてつらい
      何よりAppleというゲートキーパーをスタックに自発的に組み込みたいと思う人はほとんどいないだろう
    • GoogleもかつてTensorFlowをPythonからSwiftへ移そうとしていた
      TensorFlow Swiftプロジェクト
    • Python 3でさえPythonを置き換えるのには長い時間がかかった
    • Pythonは対話型インタープリタのおかげで反復開発やJupyter Notebookで強い
      CircuitPythonも組み込みプロトタイピングに有用だった。Swiftはこうした領域をうまく取れなかった
      しかもSwiftがLinuxに来たのは2016年、Windowsは2020年、FreeBSDはようやく2025年になってからだ
      2010年代半ばにはGo、Julia、Rust、TypeScript、Solidityなど新しい言語が次々に登場し、みんな一つか二つを学ぶ余裕しかなかった
  • Swiftがスタック全体をカバーする言語になってほしかったが、現実はそうではない
    Appleが機会を無駄にしたように感じる

    • 自分は実際にSwiftでスタック全体を扱っている
      たとえばClearSurgeryは、Linux上のリアルタイムコンポーネントまで含めてすべてSwiftで書かれている
  • 先週、xv6-riscvオペレーティングシステムをZig、Nim、LISP、Swiftに移植した
    Embedded Swiftの進歩のおかげで、生産性の高い言語だと感じた。メモリアクセスを包む抽象化もきれいだった
    ただしコンパイル速度があまりにも遅く、結局Nimに集中することになった

    • Nimという名前を聞くのは久しぶりだが、なぜそれを選んだのか気になる
    • それはMcCarthy LISPのことかと尋ねている
  • Swiftのコンパイル速度改善に触れられていないのが残念だ
    Rustより遅いコンパイルは開発体験を大きく損なう

    • 自分も最近Swiftプロジェクトをやってみたが、依存関係が多いほどコンパイルが遅すぎて驚いた
      Goの高速ビルドに慣れているなら、Swiftは本当に反復開発が苦痛だ。言語自体は素晴らしいが、フィードバックループがあまりにも遅い
  • Swift 6.3ではAndroid向け公式SDKが初めて含まれた

    • WindowsやLinux向けもあるのか気になる
      Windowsには5年前のブログ記事
      LinuxにはGNOME向けガイドがある
      昔のOpenSTEPのように、一度の開発で複数プラットフォームに配布できたらよいのだが
    • サーバー向けSwift以上に使われない気がする
  • noncopyable型の改善が今回のリリースで最も過小評価されている部分だ
    これでSwiftで固有の所有権をモデリングすることが、ずっと現実的になった

  • Swift 6.3の@c属性で、Swift関数をCコードに公開できるようになった
    それなのに、なぜこれがこんなに遅く追加されたのか疑問だ。C++相互運用を先に入れたのは奇妙な優先順位に思える

    • 実は以前からアンダースコア付き属性としてすでに存在していた
    • C++相互運用は、Appleにとって既存の低レベルコードベースを取り込むために重要だった
      一方でSwiftをCに公開するとFFIのスパゲッティが生まれ、enum・所有権・null処理などでABIバグが起きやすい
      特にクロージャが混ざると呼び出し規約がずれて、デバッグに一日つぶれることもある
    • ObjCへ公開する機能がすでにあったため、優先度が低かった
    • 以前から実験的には使えていて、それが今正式化されたということだ
  • 以前SwiftでCプログラム向けのdylibを作るときには@cdeclを使う必要があったが、これが正式サポートになってうれしい

  • マーケティング以外の実際の変更点はCHANGELOG
    Swift Evolution提案一覧で確認できる
    6.3は主に統合作業中心のリリースだった — stdlib、C/C++、swift-java相互運用、ビルドシステムなど
    SPMはXcodeの機能を徐々に取り込みつつあり、新しいswift-buildエンジンとprebuiltモジュールも実験中だ
    しかしSPMとXcodeの相互作用は依然として不安定で、内部の複雑さは増している
    言語自体の進歩は静かだが、ライフタイム制御や並行性の色付けなど深い構造作業が進んでいる
    複数のOS・デバイス・CI環境が絡み合っているため、Swift開発者は常に変化の中でバランスを取らなければならない状況にある

    • Swift 6.4ではswift-buildがデフォルトになる予定だ
      公式フォーラム投稿によると、
      すでにXcodeが内部的に使用しているが、性能問題が深刻だという
      関連議論もある。
      SPMとXcodeが同じエンジンを使えば改善するかもしれないが、大きな期待はしていない
  • 最新のSwiftバージョンでツールチェーンがどうなっているのか気になる。Swift LintとSwift Formatがサポートされているのか知りたい
    現代的な言語なら組み込みフォーマッタと推奨Lintルールがあるべきだ。言語だけでなくエコシステム全体が重要だ

    • 今では両方のツールが標準で含まれている。外部依存なしでswift formatswift format lintですぐ使える