Xcode 14がリリース
2022年9月12日、Appleの統合開発環境(IDE)の最新版となるXcode 14の提供が開始されました。Xcode 14では、iOS16やiPadOS 16に対応し、バイナリの軽量化と高速化が図られたほか、マルチプラットフォーム対応のためにSwiftやSwiftUIとの連携性が強化されました。
【参考】:Apple Developer Xcode 14 【参考】:Apple Developer ニュースとアップデート Xcode 14 (14A309)
そもそもXcodeとは
Xcodeとは、Appleの提供する統合開発環境(IDE)を表します。macOSやiOSなどのApple製品のアプリケーション開発に用いられます。グラフィカルツールを用いて統一されたユーザーインターフェース(SwiftUI)の設計を行うことができます。
Xcodeでは他の統合開発環境と同様に、プロジェクトを作成して開発を行います。画面上のツールバーと編集エリアを用いてコード作成を行います。
エディタのほか、コンパイラ、リンカなどのビルドシステムで構成されており、コードの実行やテスト・デバッグが一元化されます。再利用コードはSwiftのパッケージにまとめることができます。
Appleの開発言語であるSwiftとユーザーインターフェースのSwiftUIは、統合開発環境のXCodeで連携し、効率的に動作します。
【参考】:Apple Developer Xcode 【参考】:Apple Developer Xcode リソース 【参考】:Apple Developer Swift 【参考】:Apple Developer SwiftUI
Xcode 14の新機能の詳細
Xcode 14では、最新のAppleデバイス向けのソフトウェア開発キット(SDK)を収録しています。具体的には、iOS 16、iPadOS 16、tvOS 16、watchOS 9、macOS Monterey 12.3に対応します。iOS 11以降、tvOS 11以降、watchOS 4以降のAppleデバイスの開発では、オンデバイスデバッグに対応します。
以降では、いくつかのトピックスについて詳しく解説していきます。
マルチプラットフォームの対応強化
Xcode 14では、ターゲット向けに開発したソフトウェアに、特定のプラットフォーム用の依存関係やコード、リソース・ビルド設定を条件を付けて同梱することができます。これにより、1つのターゲット向けのソフトウェアで複数のプラットフォームをサポートすることができます。
このほか、watchOS アプリ用のデフォルトテンプレートも同梱され、watchOSアプリのデプロイが簡素化できます。
ドライバ開発環境の整備
Xcode 14では、最新のDriverKit 22が提供されます。DriverKit 22では、iPadOS 16以降向けに、DriverKitがサポートされます。iPadOS用のUSBやオーディオなどのドライバを、DriverKitを利用して開発することができます。
ビルドシステムの性能向上
ビルド時の性能向上のために並列処理を強化しました。具体的には、並列処理に関するビルド時のログを生成し、並列度の状況を可視化できます。バイナリの軽量化とビルドの並列化により、パフォーマンスが向上しています。
Swiftも、フロントエンドの呼び出しをオーケストレーションするコンポーネントドライバが、Xcodeのビルドシステムに統合されています。この変更で、ビルドシステムのタスクやスケジューリングに対してきめ細かい依存関係が設定できます。この改良により、並列コンパイルを効率的に実施できます。
コンパイラの機能実装
Apple Clangの実装強化に伴い、新規プロジェクトの作成時には、C++20の言語機能をデフォルトで使用します。C++20の仕様については、次の言語機能が実装されました。
・P0692R1:Access Checking on Specializations クラステンプレート特殊化に関するアクセスチェック 【参考】:ISO/IEC Access Checking on Specializations
・P0388R4:Permit conversions to arrays of unknown bound 境界が不明な配列へのコンバージョン許可 【参考】:ISO/IEC Permit conversions to arrays of unknown bound
C++23の言語機能であるC++2bからは、以下の機能が実装されました。
・P1938R3:if consteval コンパイル時の文脈にしたがう分岐 【参考】:Open Standard - if consteval
・P1401R5:Narrowing contextual conversions to bool コンテキスト変換の bool への絞り込み(縮小変換) 【参考】:Open Standard - Narrowing contextual conversions to bool
・P1949R7:C++ identifier syntax using Unicode Standard Annex 31 Unicode Standard Annex 31 を使用した C++ 識別子構文 【参考】:Open Standard - C++ Identifier Syntax using Unicode Standard Annex 31
・P2360R0:Extend init statement to allow alias declaration エイリアス宣言を可能にする init 文の拡張 【参考】:ISO/IEC P2360R0: Extend init-statement to allow alias-declaration
上記実装は、Clang 14.0で実装される機能です。ClangでのC++の対応状況は、以下のサイトでご確認ください。
【参考】:C++ Support in Clang 【参考】:Clang 14.0.0 Release Notes
Bitcodeを用いたビルドのサポート終了
Xcode 14 から、中間コードのBitcodeはwatchOSとtvOSのアプリケーションに必要がなくなり、アプリがApp Storeに提出される際にコードが取り除かれます。
そのため、Bitcodeは非推奨となり、プロジェクトが明示的にBitcodeを有効にすると警告メッセージが表示されます。Bitcodeのビルド機能は、将来のXcodeリリースで削除される予定です。
Xcodeの関連情報
Xcode 14の登場で、最新バージョンや今後のリリース、Xcode 13との違い、各バージョンの違いなどについてもご興味が沸いたのではと思います。ここでは、Xcodeに関する情報をまとめて紹介していきます。
【参考】:Xcode Documentation
Xcodeの最新バージョン
Xcodeの最新バージョンは、14.0.1です。macOS Monterey 12.5以降の開発環境で動作します。iOS 16、macOS 12.3、tvOS 16、watchOS 9、DriverKit 22用のSDKが同梱されます。
ベータ版として公開される14.1では、リリース準備中のiOS 16.1、macOS 13、tvOS 16.1、watchOS 9.1、DriverKit 22.1用のSDKが同梱されます。
Xcode 14.0.1と14.1ともに、Swift 4やSwift 4.2、Swift 5.7に対応し、Xcode 14に合わせて公開開始したSwift 5.7が収録されます。
【参考】:Apple Developer Xcodeの新機能
Xcode 14とXcode 13との違い
Xcodeは、年次でメジャーバージョンアップが行われています。前バージョンとなるXcode 13は、2021年9月20日にリリースされました。およそ1年経過しており、Xcode 14では最新のAppleデバイスへ対応します。
具体的には、iOSとiPadOSが15から16へ、macOSが11.3や12から12.3へ更新され、対応するソフトウェア開発キット(SDK)が収録されます。合わせてプログラミング言語のSwiftも、5.5から5.7へ更新されています。
Xcodeのサポート対応表
Xcodeを用いたアプリケーション開発ですが、以下のAppleデバイスの各バージョン向けに開発できます。ここでは、Xcode 14とベータ版が公開されているXcode 14.1についてまとめておきます。
Appleの公式サポートサイトには、Xcode 10.2.xから最新ベータの14.1まで、サポート対応表が掲載されています。合わせてご確認ください。
【参考】:Apple Developer Xcode サポート情報
・iOS Xcode 14.0.x :iOS 11~16 Xcode 14.1 :iOS 11~16.1
・iPadOS Xcode 14.0.x :iPadOS 13~16 Xcode 14.1 :iPadOS 13~16.1
・macOS Xcode 14.0.x :macOS 10.13~12.5 Xcode 14.1 :macOS 10.13~13
・tvOS Xcode 14.0.x :tvOS 11~16 Xcode 14.1 :tvOS 11~16.1
・watchOS Xcode 14.0.x :watchOS 4~9 Xcode 14.1 :watchOS 4~9.1
・DriverKit Xcode 14.0.x :DriverKit 19~22 Xcode 14.1 :DriverKit 19~22.1
Xcodeのダウンロード方法
Xcodeは、macOS Monterey 12.5以降で動作します。該当バージョンを搭載するMacを用いて、Mac App Storeやデベロッパーダウンロードサイトからインストールし、利用します。
【参考】:Apple Developer Download 【参考】:Mac App Storeプレビュー
Xcodeのバージョンアップでメリットを享受しましょう
これまでAppleは、新製品発表時に対応OSをリリースしています。Xcodeはバージョンアップを通じて、新製品デバイス向けのアプリ開発に利用できます。今後も、Appleのイベントやデベロッパー情報を確認し、更新情報を確認することをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから