Swift Digest
Blog | Swift.org Blog

Foundation パッケージのプレビュー版が利用可能に

Foundation Package Preview Now Available

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

この記事の要点

何が発表されたのか

Foundation の未来で示されていた構想が、実際のコードとして GitHub で利用できるようになりました。今回公開されたのは、Swift で書かれた統一実装としての Foundation のプレビュー版です。従来の C・Objective-C 実装に比べて、高速で安全、かつ新しい貢献者にとっても扱いやすいことを目指しています。

まだ完成版ではありませんが、統一された Swift 実装の最初の構成要素が揃っており、早期のテストと貢献を Swift コミュニティに広く呼びかける段階として公開されました。

何に使えるのか

プレビューパッケージでは、次の型が利用できます(今後さらに追加される予定です)。CalendarTimeZoneLocaleJSONEncoder を含む多くの型が、新しい Swift 実装になっています。また FormatStyleParseStrategy は、今回はじめてオープンソースとして公開されました。

Darwin 以外のプラットフォームでローカライズ機能をサポートするため、ICU の実装とデータを含む別パッケージ FoundationICU も用意されました。共通のバージョンの ICU を使うことで、日付・時刻・数値のフォーマット結果がプラットフォーム間でより一貫したものになります。

なお、このプレビューパッケージは開発中の Swift 5.9 ツールチェインに依存します。

パフォーマンス

Swift で書かれたことにより、従来の C・Objective-C 版に対して大きな利点が生まれています。

導入・今後の位置づけ

ガバナンスと提案プロセス

Foundation を新しい実装へ移行するには、実装そのものの改善だけでなく、Apple のプラットフォーム外でも使えるようにするためのプロセスの改善も必要です。そこで Foundation には、Swift 開発者の利益のためにコミュニティが新しい API を追加できる道が用意されました。

Foundation パッケージは独立したプロジェクトとして、初期のインキュベーション段階にあります。Swift プロジェクトのワークグループに着想を得て、コミュニティからの API 提案をレビューし、Swift プロジェクトや Apple プラットフォームでの開発と密に連携するためのワークグループ(Foundation Workgroup)が置かれます。将来的には、既存の swift-corelibs-foundation を段階的に終息させ、このプロジェクトで作られる新しい Foundation へ移行する方法も検討するとされています。

今後の見通し

ここから先は発表時点で示されていた構想であり、実現を約束するものではありません。

プロジェクトの最重要目標は品質とパフォーマンスです。2023 年前半は、中核 API の継続的な改良、ユニットテストとパフォーマンステストの拡充、可能な範囲での他プラットフォームへの展開が計画として挙げられました。あわせて、既存 API を補完する範囲に絞ったコミュニティからの API 提案を募り、2023 年中に少数の提案を実装とともに受け入れることで、提案プロセスそのものを洗練させる方針が示されました。

また、2023 年中の後半には、URLBundleFileManagerFileHandleProcessSortDescriptorSortComparator など、さらなる Foundation API の高品質な Swift 実装への移植を続ける予定とされていました。

Foundation はコミュニティからの貢献を歓迎しており、議論には Swift フォーラム、バグや機能要望の管理には GitHub Issues が使われます。

関連リンク