Xcode 9の新機能

Xcode 9は、Appleプラットフォーム向けの優れたアプリケーションの作成に必要なあらゆる機能を備えており、大規模なファイルを扱う際も非常に高速で安定してスムーズに動作します。また、Xcode 9はコードをこれまで以上にスマートに認識し、エディタでコードの構造ごと選択したり編集したりできるだけでなく、別のものに変換することもできます。パワフルで新しいリファクタリングタスクをその場で実行することができ、Swift、Objective-C、さらにはユーザーインターフェイスファイルにおいてもシンボル名を遅延なく変更することができます。さらに、Swift 4の優れたソース互換性により、Xcode 9では同じコンパイラを使用して既存のSwift 3コードと最新のSwift 4コードを作成できるため、自分のペースで移行することができます。

まったく新しいエディタ

ソースコードエディタが全面的に再構築され、非常に高速になりました。ファイルのサイズにかかわらず常にスムーズな速度でスクロールすることができます。インターフェイスも改善され、行間隔、フォントスタイル、カーソルのタイプまでも指定できるようになっています。また、新しい「command + クリック」ジェスチャーによって、構造に基づいてコードのセクションを容易に視覚化して選択することができます。「Issue」は作成中のコードとスムーズに連携できるよう再設計されています。「Fix-it」はグループ化され、複数の変更をクリック一つで実行することができます。

Markdownファイルでは、見出し、ボールドとイタリックのテキスト、リンク、その他の書式設定が、入力とほぼ同時にエディタで表示されます。Jump BarもMarkdown構造を認識するので、README.mdや文書ファイルを迅速に移動することができます。

リファクタリングと変換

新しいエディタでは、新しく組み込まれたリファクタリングおよび変換エンジンにより、テキスト入力を超えた機能性がもたらされます。また、コードのシンボルやブロックを選択すると、「Extract」や「Rename」といったパワフルなオペレーションを実行することができます。その際Xcodeがエディタ内で直接コード構造をアップデートするため、作業中のコードに集中することができます。Xcode 9は以下の変換およびリファクタリングに対応しています。

  • 不足しているプロトコルの必要条件を追加する
  • 不足しているスタブ実装を生成する
  • 抽象メソッドで不足しているオーバーライドを追加する
  • ローカル変数に抽出する
  • メソッド/エクスプレッションを抽出する
  • スイッチステートメントのデフォルトを広げてすべての対象ケースを生成する
  • if/elseとswitchステートメントを変換する
  • NSLocalizedStringマクロで文字をラップする

これはほんの始まりにすぎません。Xcodeのローカル変換エンジンは、Clangコンパイラプロジェクトの一部として機能するオープンソースとなります。

ソースコントロールとGitHub

Xcode 9では、ソースコントロールやGitHubでの作業をより簡単に行うことができ、 より密接に統合されています。GitHubアカウントがXcodeに組み込まれたことで、個人的なGitHubリポジトリやスターを追加したリポジトリのすべてがクローンウィンドウに表示されるようになります。ウィンドウからクリック一つで、すべてのGitHubを検索してプロジェクトをcheck outすることができます。

新しいソースコントロールナビゲータはGitのサポートを受け、コミットタイムラインや、ブランチ、タグ、リモートのそれぞれを速やかに確認できるようになっています。エントリーについて詳しく調べて、影響したファイルすべてを確認したり、コミットをダブルクリックして変更内容をすべて確認したりすることもできます。ブランチの作成やマージといった一般的なオペレーションをナビゲータからすぐに実行することができます。

Swift 4

Appleが主催するSwift.orgオープンソースコミュニティーでの貢献によって、より高速なアプリケーションやより小さな実行可能ファイルを作成しつつSwiftビルドを迅速に構築することができるようになりました。新しいSwift 4コンパイラはSwift 3コードを認識できます。Xcode 9への移行は容易にすぐにでも実行できます。はじめにSwift 4への移行準備ができているアプリケーション要素を選んで移行し、残りのコードを後から移行するといったことも可能です。またSwift 4では、拡張された文字列タイプにも対応しています。

Swift 4についてさらに詳しく

ワイヤレス

MacにUSB接続することなく、ローカルネットワーク上の任意のiOSやtvOSデバイスを選択し、アプリケーションをインストール、実行、デバッグすることができます。新しいiOSデバイスを初めて使用する際、「Connect via Network(ネットワーク経由で接続)」チェックボックスをクリックするだけで、そのデバイスがネットワークを利用できるようになります。Instruments、Accessibility Inspector、Quicktime Player、Consoleなどの他のアプリケーションでのワイヤレス開発にも対応しています。

シミュレーションとテスト

Xcode 9のシミュレータでは大幅なアップグレードが施され、起動時間が短縮され新しいインターフェイスに刷新されています。またシミュレーションしているデバイスとまったく同じようにウィンドウが表示されるようになっています。デバイスで表示されるボタンは想定のとおり機能し、画面の端から行うジェスチャーでさえシミュレーションすることができます。Touch Barサポートが導入されたことで、タップするだけで回転などの簡単な操作を迅速に実行できるようになっています。

複数のシミュレータインスタンスを同時に実行することでテストを高速化することも、iCloudに対する同期などのタスクを複数のデバイスで円滑に進めるアプリケーションをテストすることも可能になっています。複数のインスタンスを実行している場合でもコマンドラインから簡単にシミュレータを起動できるため、自動化されたテストを効果的に行うことができます。また、Xcode ServerはすでにXcodeに組み込まれており、別途macOS Serverアプリケーションを必要としなくなったため、対象となるすべてのMacへのセットアップ作業をより簡単に行うことができるようになり、アプリケーションの継続的なビルドとテストがこれまでになく簡単になりました。

50 高速な検索

あらゆる面での高速化

ビルドプロセスの一環として最新のインデックスエンジンが実行されるため、作成中のコードはXcodeで自動的に認識されます。Open Quicklyなど、インデックスを使用するタスクが大幅に高速化されました。大規模なプロジェクトの検索が最大50倍も速く感じられます。ビルドシステムが新しくなったことで、コンパイラやリンカーなどのツールを組み合わせたタスクのオーバーヘッドが大幅に削減されます。