Xcode 10

Xcode 10には、すべてのAppleプラットフォーム向けに、優れたアプリケーションを作成するために必要なあらゆる機能が用意されています。新しいXcodeとInstrumentsはmacOS Mojaveのダークモードで、見栄えが素晴らしくなりました。また、ソースコードエディタを使えば、より簡単にコードの変換やリファクタリングをしたり、関連する行の横でソースコントロールの変更を確認したり、上流のコードとの相違について詳細をすぐに確認したりすることができます。カスタムの視覚化やデータ分析によって独自のInstrumentを構築することもできます。Swiftでは、ソフトウェアのコンパイル時間の短縮、より高速なアプリケーションのデリバリと、より小さなバイナリの生成が実現されました。一連のテストを従来より何倍も速く実行でき、チームでの開発がより一層シンプルかつ安全になるなど、数多くのメリットがあります。

ダークなインターフェイスで輝くコード

Xcodeのダークなインターフェイスが、書かれたコードを引き立たせ、ショーの主役のように輝かせます。インターフェイス全体が、アイコン、フォント、そしてJump Barの色の微妙なコントラストに至るまで、ダークモードのMacに合わせて調整されています。

Xcodeには、デベロッパが自分のアプリケーションをmacOSのダークモードに対応させるための強力なツールも用意されています。Interface Builderでは、デザインとプレビューをライトからダークへとすぐに切り替えることができます。アセットカタログでは、アセットを定義しカラーに名前を付けます。また、デバッグ中に、アプリケーションをダークモードに切り替えたり、ダークモードを解除したりすることができます。これはすべてXcode内のコントロールによって行うことができ、開発中のアプリケーションのみに適用されます。システム設定を変更する必要はありません。

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

プロフェッショナルなコーディング

Xcodeには、超高速のソースコードエディタが用意されています。テキストのスクロールは、巨大なソースファイルを編集している時でさえ驚くほどスムーズです。重要な部分を目立たせるためにコードを折りたたむ時や、Xcodeがエラーをハイライトし、Fix-it(修正)を提供する時など、あらゆる箇所でスムーズなアニメーションが用いられています。便利なMarkdownに対応しているため、見栄えのよいドキュメントを添えることもできます。

commandキーを押しながらクリックして、複数のシンボルや構造体全体を選択すれば、Swift、C、C++、Objective-Cコードの変換やリファクタリングを行うことができます。また、変換エンジンはswift.org(英語)のオープンソースであるため、活発なデベロッパコミュニティによる貢献の下、変換できるコードのリストは増え続けています。

コードが変更された箇所は、各行でハイライトされます。これには、自分自身が行った変更と、チームの他のメンバーによるソースリポジトリの上流でのコミットが含まれます。コードで新しく入力した行に競合がある場合は即座に通知され、赤いインジケータをクリックすることで、上流のコードとの相違点に関する詳細情報をすぐに確認できます。

チームで取り組む

ソースコントロールを利用すれば、チーム全体で協力してコードの開発を進めることができます。Xcodeでは、以下のような複数のコラボレーションプラットフォームを直接利用することができます。

  • GitHubおよびGitHub Enterprise
  • Bitbucket CloudおよびBitbucket Server
  • GitLab.comおよび自己ホスト型GitLab

チームでのコラボレーションは、クラウドや組織内に自身でホストしたサーバを使用して、かつてないほど簡単に行うことができるようになっています。ワークフローをより簡単かつ安全にするため、Xcodeではデベロッパ用に一意のSSHキーを生成することができ、またそれをサーバにアップロードすることができます。

任意のサービスにログインすると、Xcodeのクローンウインドウに、デベロッパ個人の保存済みリポジトリがすべて表示されます。このウインドウでは、接続しているサーバ上の他のリポジトリを検索したり、任意のリポジトリをワンクリックで簡単にチェックアウトすることができます。最新バージョンにする際、自分の行った変更をベースにすることもできます。

Xcodeのソースコントロールナビゲータを使用すると、各ブランチ、タグ、リモートをコミットのタイムラインと一緒に簡単に表示できます。エントリーについて詳しく調べて、影響したファイルすべてを確認したり、コミットをダブルクリックして変更内容をすべて確認したりすることもできます。ブランチの作成やマージといった一般的なオペレーションをナビゲータからすぐに実行することができます。

デバッグツールのカスタマイズ

Instrumentsを使用すると、従来のprint()ステートメントを、OSLogのsignpostsおよび独自のカスタムInstrumentsに置き換えることができます。仮想的にオーバーヘッド無しに、コード全体の重要なポイントをマークし、Instruments内でアプリケーションを実行しながらsignpostsをトラッキングすることができます。マークしたログポイントは、CPU、メモリ、ネットワークなどの使用状況といったその他の分析イベントと一緒に表示されるため、コードの動作の有益な情報を得ることができます。

さらに、カスタマイズされた視覚化やデータ分析機能によって、独自のInstrumentを構築することもできます。Xcodeにはテンプレートが用意されているため、Appleが使用しているものと同じツールを使用してInstrumentsを構築することができます。こうして構築したInstrumentsは、チームの他のメンバーや公開フレームワークのユーザーがインストールできるよう、プロジェクトの一部として簡単に共有することが可能です。

また、Xcodeではエネルギーやクラッシュのログがユーザーから匿名で収集されます。これにより、最も重要な問題にフォーカスし、問題を起こしているコードを直接調べることができます。そのため、公開前にバグを見つけられなかった場合でも、問題点を迅速に特定して修正することができます。

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

Xcodeには堅牢なテストエンジンが組み込まれており、ユニットテスト、UIテスト、パフォーマンステストを複数の物理デバイス間で一度に実行できます。また、Macの処理能力を活かして、複数のデバイスシミュレータを並列実行することにより、テストの所要時間を大幅に短縮できます。

継続的インテグレーション環境では、様々なタイプのデバイスシミュレータを多数起動して、テストハーネス全体を最初から最後まで実行することができます。または、テストをできる限り速く完了させるため、単一のデバイスシミュレータのクローンを多数作成し、すべてのテストをそれらに分けて実行して、短時間のうちに完了させることもできます。

また、ネットワーク内の別のMacをXcode Serverのホスト専用にし、ビルドとテストを自動化することもできます。必要な機能はXcodeに組み込まれているため、専用の継続的インテグレーション設定で簡単に起動し稼働させることができます。追加のサーバソフトウェアは必要ありません。結果、アプリケーションの継続的なビルドとテストに要する時間がかつてないほど短縮されました。

ビルド時間の短縮

Xcode 10にはSwift 4.2が含まれているため、ソフトウェアのコンパイル時間の短縮、より高速なアプリケーションの開発、バイナリサイズの削減を実現しています。Swift 4.0と比較すると、最新のSwiftコンパイラでは大規模なアプリケーションを2倍以上速くビルドできます*。新しいXcodeの新しいビルドシステムと組み合わせることで、毎日の編集、ビルド、テストのワークフローが大幅に高速化されます。最新のマルチコアのMacハードウェア向けに最適化されたXcodeとSwiftは、超高速な開発プラットフォームとなるよう進化を続けています。

Playgroundでモデルをトレーニング

楽しく使用できる言語として開発されたSwiftでは、Playgroundファイルを使用してAPIを簡単に試すことができます。Xcode 10では、従来のREPLと似た方法で動作するよう、Playgroundが大幅に改善されています。同時に、ライブビューの応答性がさらに向上しており、デザインを迅速かつ楽しく行うことができます。新しいコードを追加すると、追加した行のみ再コンパイルされます。特定の行のみを再実行することもできれば、shiftキーを押しながらreturnキーを押して、直前に入力した行までのプログラムを実行することもできます。

新しいインクリメンタルモデルは、新しいCreate MLフレームワークを使用する際に最適です。実際に使用するアプリケーションのコードの隣で、モデルをPlayground内で直接トレーニングすることができます。アプリケーションに使用しているものと同じSwift言語を使用することで、機械学習コードのトレーニング、テスト、改良のワークフローを大幅に高速化することができます。準備ができたら、トレーニング済みの新しいモデルをアプリケーションにドラッグ&ドロップするだけです。

Create MLについてさらに詳しく(英語)