Swift Digest
Blog | Swift.org Blog

Windows で動く Swift の登場

Introducing Swift on Windows

このダイジェストはClaude Opus 4.7 / 4.8によって生成されたものです(License)。原文はこちら

この記事の要点

何が発表されたのか

Swift を Windows に対応させるための取り組みが、コミュニティとの協力のもとで 1 年以上続けられてきました。その成果として、Windows 上で Swift コードをビルド・実行するために必要な開発コンポーネントを含む、ダウンロード可能な Swift ツールチェインのイメージが公開されました。

Swift の Windows への移植は、コンパイラを移植するだけにとどまりません。Windows 上でエコシステム全体が使えるようにすることを目指しています。具体的には、次の要素が含まれます。

これらのコアライブラリは、開発者が下層のシステムの細部を意識せずに強力なアプリケーションを書けるようにするためのものです。これらと Swift の柔軟な C 相互運用が揃うことで、Windows プラットフォーム上の既存のライブラリ資産を活かしながら、純粋に Swift だけで Windows アプリケーションを開発できます。

何に使えるのか

記事では、すべてを Swift で書いた電卓アプリのデモが紹介されています。アプリケーションのコードとシステムライブラリの間をシームレスに行き来しながら、Windows ネイティブの GUI アプリケーションを Swift だけで構築できることを示すものです。このデモは次の構成でビルドされていました。

  1. Windows 上の Swift ツールチェイン
  2. Visual Studio 2019 のインストール(CMake、Ninja、Windows SDK を提供)

発表時点ではデモは CMake でビルドされていましたが、Windows での Swift Package Manager 対応が進んでおり、まもなく CMake や Ninja なしで swift build だけでアプリをビルドできるようになる見込みとされていました。デバッグについても、lldb でアプリケーションをステップ実行できる様子が示されています。

クロスプラットフォームでの活用

早期採用者の一例として、Readdle がクロスプラットフォームアプリケーションを Swift で開発する取り組みを進めていました。同社はメールアプリ Spark の中核ロジックを、UI フレームワークから独立した「Core」モジュール群(純粋な Swift モジュール)として実装しており、プラットフォームごとに UI(macOS では AppKit、iOS では UIKit、Android ではネイティブ UI Toolkit)を差し替える設計をとっていました。この Core を Windows に移植することで、Swift の対応プラットフォームをもう 1 つ増やせたとされています。

記事で紹介された同社の知見には、次のようなものがあります。

同社のコメントでは、既存のアプリケーションのコードベースを macOS/iOS 以外に広げたいなら今すぐ(あるいは間もなく)Swift で実現できる、小さな Swift ライブラリを保守しているなら Windows 対応は今でも容易に追加できる、と述べられています。

導入・今後の位置づけ

Getting Started のセクションが Windows での Swift 利用に関する情報で更新されました。早期採用者が問題を見つけた場合は、当時の Swift Bug Tracker への報告が呼びかけられています。

Windows サポートの追加は旅の始まりであり、現状は言語として使える最初のマイルストーンを満たした段階だと位置づけられています。LLDB や Swift Package Manager のように、Windows でのサポートをさらに充実させる必要のある領域が残っていました。記事では、ライブラリの新規公開や既存ライブラリの移植、デバッガや SwiftPM のコアツール改善など、Windows 上の Swift を前進させるための数多くの貢献の機会が紹介されています。Swift フォーラムには Windows 開発を議論する新しいセクションも設けられました。

関連リンク