Xcodeの新機能

Mac、iPhone、iPad、Apple Watch、Apple TV向けのAppを構築するための統合開発環境であるXcodeで、利用可能な主な機能について紹介します。各ベータ版リリースを含む最新リリースバージョンにおけるアップデートに関する詳細は、「Xcodeリリースノート(英語)」を確認してください。

Xcode 12

Xcode 12には、Swift 5.3、およびiOS 14、iPadOS 14、tvOS 14、watchOS 7、macOS Big Sur向けのSDKが含まれています。

ユニバーサルApp

  • 単一のmacOSユニバーサルAppに、IntelベースのMacおよびApple Siliconを搭載したMac向けのネイティブバイナリが含まれます。
  • ツールバーから「Any Mac」(すべてのMac)を選択することにより、IntelベースのMacでもユニバーサルAppをビルドできます。
  • 「Standard Architectures」(標準的なアーキテクチャ)のビルド設定では、デフォルトで「Universal」が選択されます。Xcodeでは、必要に応じてプロジェクトをアップグレードできるように、オプションも提供しています。
  • Universal App Quick Start ProgramのDTK(デベロッパ向け移行キット)上で「My Mac(Rosetta)」を選択すると、ユニバーサルApp内のIntelバイナリを実行してデバッグすることができます。

注:Xcode 12.2ではmacOS Big SurとユニバーサルAppへの対応が追加されます。

macOS Big Sur向けの洗練されたユーザインターフェイス

  • ドキュメントタブを使用して、ログ、アセットカタログ、UIファイルを含むあらゆるタイプのドキュメントを開くことができ、ドキュメントは軽量なエディタタブ内で開かれます。
  • ツールバー、アイコン、サイドバーが、macOS Big Surの美しいアピアランスとマッチするデザインになりました。
  • ナビゲータのフォントサイズは、システム設定に基づいて表示することも、カスタムサイズをマニュアルで設定することもできます。
  • Organizerが刷新され、アニメーションやスクロール時の引っかかりなど、Appに関する新たな指標を確認できるようになりました。

SwiftとSwiftUI

  • SwiftUIのApp Lifecycleにより、iOS、iPadOS、macOS向けに、App全体をすべてSwiftUIで記述できるようになりました。
  • SwiftUI上で構築できるWidgetKitを使用すると、iOS、iPadOS、macOSで動作するウィジェットのコードを容易に共有できます。
  • SwiftUIのパフォーマンスが全般に渡って改善され、新しいLazyビューにより膨大なデータセットを効率的に対応できるようになりました。
  • マルチプラットフォームテンプレートにより、すべてのAppleプラットフォーム間で、各プラットフォームに合わせてカスタマイズしたSwiftUIコードを容易に共有できるようになりました。
  • SwiftUIビューを再利用可能なコンポーネントに変換し、Xcodeライブラリとコード補完で表示できます。
  • Swift Package Managerではリソースやローカリゼーションがサポートされているため、SwiftUIコンポーネントの共有に役立ちます。
  • Swiftの言語診断が改善され、特にSwiftUIコードにおけるコードミスを容易に特定できるようになりました。

Mac Catalyst

  • Macのイディオムでは、AppのユーザインターフェイスがMacの100%ネイティブのサイズとスケールで表示されるので、自由自在にカスタマイズできます。
  • HomeKitやAVCaptureなど、その他のフレームワークやコントロールを利用できます。
  • キーボードAPIとOS統合により、Appをキーボードで完全にコントロールすることが容易になりました。
  • Mac Catalystで構築されたAppには、macOS Big Surの新しいアピアランスや操作感が自動的に反映されます。

その他の改善点

  • App Clipターゲットで、即座にインストール可能なAppの特定の機能に特化した体験を作成することができます。
  • StoreKitのテストフレームワークとトランザクションマネージャにより、App内課金のテストとデバッグを手軽に行うことができます。

Xcode 11

Xcode 11には、Swift 5.1、およびiOS 13、tvOS 13、watchOS 6、macOS Catalina 10.15向けのSDKが含まれています。

このリリースには、Appをより多くのAppleプラットフォームに届けるための多数の機能が追加されています。SwiftUIは、新しい革新的なユーザインターフェイスフレームワークで、読みやすく自然に記述できるSwiftの宣言型シンタックスを利用できます。新しい優れたプレビューツールにより、SwiftUIコードを手動で入力したり、コードとデザインを常に同期させつつ、豊富な機能を備えたデザインツールでUIを修正したりすることができます。既存のiPad向けAppのプロジェクト設定で、「Mac」チェックボックスをクリックすれば、Mac向けAppの構築をすばやく開始できます。また、Xcode 11はSwiftパッケージに対応しているため、様々なAppの間でコードを共有したり、コミュニティで作成されたパッケージを使用したりすることもできます。

SwiftUI

Xcode 11には、新しいSwiftフレームワークとそのデザインツールであるSwiftUIが含まれており、ユーザインターフェイスをまったく新しい方法で構築できます。Xcodeのデザインツールでは、ドラッグ&ドロップするだけでインターフェイスの構築や編集を行うことができ、マニュアルでも編集可能な同一のSwiftコードファイルを瞬時に編集することもできます。Xcodeは、実際のAppインターフェイスを常にリアルタイムで実行するので、デザインキャンバス上で動作を直接確認できます。また、接続したデバイスでAppをすばやくプレビューすることも可能です。

SwiftUIには以下が含まれます。

  • デザインツールで読み込むまたは書き込むコードは、マニュアルで編集するコードと同じものとなるため、信頼できる唯一のソースを維持できます。
  • 宣言型シンタックスにより、読みやすいSwiftコードとしてユーザインターフェイスが定義されます。
  • アニメーションは、表現したいアクションを記述したシンプルなコマンドで構築できます。
  • コントロールやモディファイアのライブラリが用意されているため、複雑なインターフェイスでも容易に設計して構築することができます。
  • 共通のUIコードをすべてのAppleプラットフォーム間で共有したり、各OSに独自の体験を追加したりできます。
  • プレビューでは、様々なデバイスタイプやアクセシビリティ設定における実際のレンダリングを確認できます。
  • インターフェイスの操作は、デザインキャンバスまたは接続したデバイス上でリアルタイムで行えます。
  • 編集内容をAppのライブビューにホットスワップできるため、変更内容を瞬時に確認および操作できます。

SwiftUIでは、iOS 13、watchOS 6、tvOS 13、またはmacOS Catalinaが必要です。SwiftUIデザインキャンバスを使用するには、Xcode 11macOS Catalinaで実行する必要があります。

iPad向けAppをMacへ

既存のiPad向けAppを数百万人ものMacユーザに簡単に届けることができます。Xcodeでチェックボックスを1つクリックするだけで、iPad向けAppを、完全に正常に動作するMac向けの完全なネイティブAppに変換することができます。

  • iPadプロジェクトでチェックボックスをクリックすると、macOS SDKでビルドされたネイティブのMac向けAppが追加されます。
  • 1つのコードベースをiPhone、iPad、MacバージョンのAppで使用できる一方、Appの一部をMac向けにカスタマイズすることもできます。
  • 既存の共有UIKitコードに新しいSwiftUIコードを追加できます。
  • Xcodeから直接Mac App Storeに送信することも、外部への配信向けに公証を受けることもできます。

SwiftとSwiftパッケージ

  • Swiftパッケージは、ビルド、デバッグ、SCMなどのXcodeワークフロー全体で利用可能です。
  • GitHub、Bitbucket、GitLab、独自のホストなどで公開されているSwiftパッケージを容易に使用できます。
  • Xcodeが、依存性分析に基づいてパッケージを自動的に取得および管理します。
  • 独自のパッケージを作成して、自分のAppの間でコードを共有したり、コミュニティに公開したりできます。

iOSダークモード

  • 開発中およびデバッグ中に、ライトモードとダークモードを瞬時に切り替えることができます。
  • アセットカタログにより、ダークモードおよびライトモード時の画像やカラーを簡単にコントロールできます。

エディタ

  • エディタミニマップでは、コードを俯瞰的に表示できるので、どのセクションにもすばやく移動できます。
  • 各エディタビューやタブでは、独自のプレビュー、アシスタント、その他の補助ビューを利用できます。
  • エディタペインを分割して、ワークスペースを思い通りにレイアウトすることができます。

Xcode 11のその他の改善点

  • スタンドアロンのwatchOS向けAppを構築する際のデバッグがより高速になりました。
  • シミュレータの起動がより速くなり、Metalコードを高速化するためにGPUが使用されるようになりました。
  • テストプランでは、テストハーネスをより自在にコントロールできるようになり、結果のバンドルを共有することが可能になりました。
  • テストプランの一環として、UIテストを使用してローカライズされたスクリーンショットを自動的に生成できます。
  • ソースコントロールで、stashおよびcherry pickの操作がサポートされるようになりました。
  • ネットワークの遅れや、発熱警告が発生といった現象のシミュレーションをしたデバイスを通じて、Appをデバッグできます。
  • Organizerの「Metrics」(指標)タブに、お客様のデバイスでAppがどの程度効率的に動作するかが表示されるようになりました。

Xcode 10.2.1

Xcode 10.2には、Swift 5、およびiOS 12.2、tvOS 12.2、watchOS 5.2、macOS Mojave 10.14.4向けのSDKが含まれています。

Swift 5

  • Appleプラットフォームの最新リリース版では、Swift 5のランタイムがOSの一部として含まれています。
  • App StoreでAppのSwiftランタイムが短縮されたことにより、最新のOSを搭載したデバイスへのダウンロードがより速くなりました。
  • SIMD Vector型が標準ライブラリに追加されました。
  • 文字列のリテラルのシンタックスが改善され、より読みやすく、記述しやすくなりました。
  • 新しいResult列挙型により、非同期操作間でのエラーへの対処が容易になりました。

Xcodeのその他の機能強化

  • デバッガコンソールに、フレーム変数コマンドの新しいエイリアスである「v」が追加され、「p」や「po」よりも高速になりました。
  • プレイグラウンドに、安定性に関する様々な改善が施されたほか、メモリの安全性チェックが追加されました。

Xcode 10.2.1では、大規模なSwiftプロジェクトのビルド時間に関する問題が修正されました。その他のバグの修正も含まれます。

Xcode 10.1

Xcode 10.1には、Swift 4.2.1、およびiOS 12.1、watchOS 5.1、tvOS 12.1、macOS Mojave向けのSDKが含まれています。

Xcode 10

Xcode 10はmacOS Mojaveのダークモードで美しく表示されます。macOS向けAppにこの新しいアピアランスを容易に取り入れることもできます。Xcode 10ベータ版には、Swift 4.2、およびiOS 12、watchOS 5、tvOS 12、macOS Mojave向けのSDKベータ版が含まれています。

ダークモードのインターフェイスとMac向けAppのサポート

  • XcodeとInstrumentsの全体で、まったく新しい暗い色調による表示が採用されました。
  • アセットカタログでは、カスタムカラーと画像アセット用にダークモードとライトモードが追加されました。
  • Interface Builderでは、プレビュー時にインターフェイスのダークモードとライトモードを切り替えることができます。
  • ダークとライトのそれぞれのバリエーションのMac向けAppは、OSの設定を変更せずにデバッグすることができます。

ソース管理

  • ローカルリポジトリまたは上流の共有サーバ上での変更が、エディタ内で直接ハイライトされるようになりました。以下のことを一目で確認できます。
  • コードに加えた変更。
  • 共有リポジトリにまだプッシュされていない変更。
  • 他のデベロッパが加えた上流での変更。
  • コミットする前に対応すべきコンフリクト。
  • Atlassian Bitbucketが提供するクラウドホスト型とセルフホスト型のGitサーバ製品のサポート、および既存のGitHubサポートと合わせて提供されるGitLabのサポートも加わりました。
  • Xcodeは、リポジトリから最新バージョンのコードを取り出す際に、行った変更をリベースすることができます。
  • 必要に応じてSSHキーが生成され、サービスプロバイダにアップロードされます。

エディタの機能強化

  • コードエディタ内で複数のカーソルを配置し、一度に多数の変更を行うことができるようになりました。
  • コード折りたたみリボンにより、角カッコに囲まれているコードブロックをすべて非表示にできます。
  • オーバースクロールにより、コードの最終行を画面の中央に容易に配置することができます。

機械学習向けに構築されたプレイグラウンド

  • REPLに類似した新しいモデルが、既存のプレイグラウンドコードを瞬時に再実行します。
  • 特定の行までコードを実行したり、shiftキーを押しながらreturnキーを押して、直前に追加したコードを実行したりできます。
  • Create MLフレームワークをインポートし、新しいモデルをインタラクティブにトレーニングした後、そのモデルのテスト向けにコードを記述し、プレイグラウンド内で直接テストすることができます。完了後は、モデルをAppにドラッグできます。

テストとデバッグ

  • 新しいデバイスからのデバッグシンボルのダウンロードが、以前に比べて5倍速くなりました。
  • Xcodeは、マルチコアMacの性能を活用して、同一のシミュレータで構成されるグループを多数作成するほか、複数のテストを並行して実行するので、テストスイートの実行が何倍も速くなります。
  • テストは、ランダムに実行することも、決まった順序で実行することもできます。
  • Instrumentsで、コードに追加したOSLog signpostが自動的に表示されます。
  • 独自のカスタムInstrumentsパッケージを構築および共有して、自分のコードに特化したデータの視覚化や分析を行うことができます。
  • メモリデバッガのレイアウトがコンパクトになり、メモリグラフの検証が容易になりました。
  • Metalシェーダデバッガでは、Vertex、Fragment、Compute、Tileのシェーダコードの実行を容易に検証できます。
  • Metal依存性ビューワでは、MetalベースのAppによるリソースの使用状況を示す詳しいグラフが表示されるようになりました。

ビルドのパフォーマンス

  • 新しいビルドシステムがデフォルトで有効となり、パフォーマンスが全般的に改善されました。
  • Swiftコンパイラでの個々のファイルのビルドスピードが大幅に上がりました。
  • インクリメンタルビルド設定を使用することで、大規模なSwiftプロジェクトでもデバッグが格段に高速になりました。

Xcode 9.3

Xcode 9.3には、Swift 4.1、およびiOS 11.3、watchOS 4.3、tvOS 11.3、macOS High Sierra 10.13.4向けのSDKが含まれています。

  • 「Organizer」ウインドウの新しい「Energy」タブには、Appがバッテリーを消費しすぎている場合に生成されるログが表示されます。
  • Swiftのビルドタスクやその他のコマンドが、より頻繁に並行して実行されることで、ビルドのパフォーマンスが改善されました。
  • Swiftコンパイラに新しいコードサイズの最適化機能が追加され、これは-Osizeビルド設定で有効になりました。
  • commandキーを押しながらシンボルをクリックすることで、呼び出し元にすばやくアクセスできます。
  • アセットカタログで、ARKit Appにより現実世界で検出可能なAR参照画像ファイルがサポートされるようになりました。
  • 新しいxccovコマンドラインツールにより、コードカバレッジレポートを検証できます。
  • 極端に大きなファイルを作業する際のソースエディタのパフォーマンスが改善されました。

Xcode 9.2

Xcode 9.2には、Swift 4、およびiOS 11.2、watchOS 4.2、tvOS 11.2、macOS High Sierra 10.13向けのSDKが含まれています。

  • 最新プラットフォームのSDKがアップデートされました。

Xcode 9.1

Xcode 9.1には、Swift 4、およびiOS 11、watchOS 4、tvOS 11、macOS High Sierra 10.13向けのSDKが含まれています。

  • OpenGL ESおよびマップのパフォーマンスに影響を与えていたシミュレータの問題が修正されました。
  • iPhone X向けのサポートが改善されました。

Xcode 9.0.1

Xcode 9.0.1には、Swift 4、およびiOS 11、watchOS 4、tvOS 11、macOS High Sierra 10.13向けのSDKが含まれています。

  • iPhone X向けにシミュレータが改善されました。
  • Test Navigatorが利用可能なテストと同期されないことがある問題が修正されました。

Xcode 9.0

Xcode 9には、Swift 4、およびiOS 11、watchOS 4、tvOS 11、macOS High Sierra 10.13向けのSDKが含まれています。

  • リファクタリングにより、Swift、Objective-C、C、C++コードの構造を容易に修正できます。
  • コードエディタは非常に高速かつレスポンシブになり、Markdownシンタックスのネイティブサポートが追加されています。
  • Fix-itを使用すると、シングルクリックでコードに複数の改善を適用できるだけでなく、必須のプロトコルメソッドを追加することもできます。
  • 新しいソースコントロールナビゲータと、統合されたGitHubアカウントにより、チーム内でコードを容易に管理できます。
  • iOS向けAppおよびtvOS向けAppのデバイスへのインストールやデバッグをネットワーク上でワイヤレスで行えます。
  • シミュレータの見た目や動作が実際のデバイスにより近付き、複数のデバイスのシミュレーションを同時に実行できるようになりました。
  • iOSプレイグラウンドテンプレートにより、XcodeおよびiPadのSwift Playgroundsの両方で動作するドキュメントを作成できます。
  • Find navigator(検索ナビゲータ)は非常に高速で、結果が瞬時に表示されます。
  • Project navigator(プロジェクトナビゲータ)によって、ファイルやグループがFinderおよびソースコントロールと自動的に同期されます。
  • Xcode ServerではmacOS Serverが不要となり、Xcodeの環境設定で完全に設定できるようになりました。
  • 次世代のビルドシステムにより、多数のプロジェクトをビルドする際の信頼性とパフォーマンスが向上しました(有効にするかどうかは任意)。
  • Swift 4コンパイラは、一度に1つのモジュールといった段階的な移行を行うようにSwift 3コードをビルドすることもできます。
  • 最新のSDKには、機械学習のためのCore MLフレームワークおよび拡張現実のためのARKitが含まれています。