Appleは、「Mac」「iPad」「iPhone」「Apple Watch」「Apple TV」向けアプリの開発に広く用いられているプログラミング言語「Swift」のバージョン5.2をリリースした。
Appleによるオープンソースの「Swift 5.2」のほか、最新バージョンの統合開発環境(IDE)である「Xcode 11.4」も米国時間3月24日にリリースされた。Swift 5.2は、2019年9月にリリースされた「Swift 5.1」と同年3月にリリースされた「Swift 5」からさらに機能が向上している。
Xcode 11.4により、開発者は「macOS」アプリを「iOS」の同じアプリと一緒に「ユニバーサル購入」として配信できるようになる。開発者がこれを導入すれば、ユーザーはアプリ内購入でも、1回購入すれば、「macOS」「iOS」「iPadOS」「watchOS」「tvOS」を搭載したデバイスで利用できるようになる。
macOSがユニバーサル購入に対応したことで、「Mac Catalyst」を利用してアプリを開発する開発者が増えるかもしれない。Mac Catalystは、既存のiPadOS用アプリをベースにmacOS用アプリの開発を容易にできるようにするプラットフォームだ。Xcode 11.4で開発された新しいMac Catalystアプリでは、ユニバーサル購入がデフォルトで有効になっている。
SwiftコアチームのメンバーであるTed Kremenek氏によると、Swift 5.2はコンパイラーによる診断が「劇的に」改善されるとともに、エラーメッセージの質が向上し、エラー箇所をより正確に指し示せるようになるという。
また、コード補完の高速化や、デバッグ時の信頼性向上、「Swift Package Manager」による依存性まわりの処理の改善、「Language Server Protocol」(LSP)や「SwiftSyntax」といったツールの強化も図られている。
Kremenek氏によると、Swift 5.2のコード補完機能は大きなファイルで比較した場合、「Xcode 11.3.1」よりも1.2~1.6倍高速になっているという。
Swift 5.1では、分かりにくいエラーメッセージが表示される場合もあるという問題が指摘されていた。Swift 5.2のコンパイラーの新たな診断エンジンでは、この問題への対処がなされ、修正の必要があるコード片をより正確に指し示せるようになっている。
さらに、Swiftプロジェクトのデバッグ時に使用する、インクリメンタルビルドを行う「Xcode」の「Incremental」モードについてもさらなる高速化が約束されている。
Kremenek氏は、Swift 5.2のコンパイラー動作に対するパフォーマンス最適化によって、リリースビルドを構築する際に用いられる、Xcodeの「Whole Module」モードも高速化されるだろうと述べている。
また、Swift 5.2に搭載されているSwift Package Managerでは、パッケージの依存関係を解決する能力が向上している。これにより、バージョン間の依存関係のコンフリクトが発生する可能性を減らし、エラーメッセージの質を高めるとともに、パッケージ依存グラフが複雑な場合でもより優れたパフォーマンスを実現している。
さらに、SwiftとCベースの言語向けのLSP実装である「SourceKit-LSP」もアップデートされている。LSPはMicrosoftによって開発されたプロトコルだ。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。