Xcode 7 の新機能
- Xcode 7.0 は、OS X バージョン 10.11、iOS 9、watchOS 2、およびその他の機能強化のための SDK を含んでいます。
- Xcode 7.0.1 は、アプリの軽量化をサポートするための改良を含むメンテナンスリリースです。
- Xcode 7.1 は、新しい iOS デバイスと新しい Apple TV を含む新しいハードウェア上で開発するためのサポートを追加しました。
Xcode 7.0
Xcode 7 では、Xcode 開発ツールは、開発、テスト、デバッグ、および展開をよりシームレスかつ効率的にサポートするための新機能のホストと、iOS 9 と OS X エルキャピタンに加えて、新しい watchOS 2 プラットフォームをサポートするために拡張しています。Xcode 7 を使用すると、あなたはそれが、ユーザーのデバイスにダウンロードしているアプリや製品をテストカバレッジの報告しながら、あなたのアプリの UI をテストし、または確実に起こる直前にメモリ破損を検出することを可能にする、前は不可能だったものを、達成することを可能にし、繊細な足跡と、あまりにも不必要に多くの貴重な資源を消費しません。
Xcode 7 は、それぞれの Apple デバイスのユニークなプラットフォームに合わせて調整されたプロアクトを作成することができます。それはユーザーが MacBook Air、iPhone、または iPad の広い構成を利用して彼らの Apple Watch、またはサイズクラスからまさにアップ・トゥー・デイトである事を助け、実装するかどうか、Xcode はツールを提供して、あなたのアイデアをすぐに完全にターゲットに合った物を現実に翻訳します。
Xcode 7 は、OS X バージョン 10.10.4 以降を実行中の Mac が必要です。それは watchOS2.0、iOS 9、および OS X バージョン 10.11 のための SDK を含んでいます。
Xcode 7 は、以下のハイライト機能を含んでいます。
無料でデバイス開発
今すぐ誰でも、デバイス上で無料で自分のアプリを実行し、テストできます。 あなたが実行して、任意の手数料なしでのMac、iPhone、アプリ、iPod touchの、またはAppleウォッチであなた自身の作品をデバッグし、何のプログラムは参加しないようにすることができます。全く手数料なしで、何もプログラムに参加しないで Mac、iPhone、iPad、iPod touch、または Apple Watch であなた自身の作品を実行して、デバッグできます。しなければならないことは、Xcode にあなたの無料の Apple ID を入力する事だけです。すでに App Store や iTunes で使用したのと同じ Apple ID を使用できます。あなたのアプリが完成したら、アップルの開発者プログラムでは、App Store でそれを発表することができます。
インストールやデバイス上で実行されている詳細については デバイス上のアプリの起動 を参照してください。
Swift 言語
Swift 2.0 は、現代の、強力な、表現力に富み、そして使いやすいです。これは、Swift 1.2 を拡張します:
- エラー処理。 今や、Swift で、throw、catch、エラー管理ルーチンを作成することができます。あなたは、"ファイルが見つかりません" またはネットワークのタイムアウトなどのような回復可能なエラーを表面化し対処することができます。Swift 2.0 エラー処理は NSError と透過的に相互運用できます。
- 利用可能性。 利用可能性の機能は OS で使用可能になってから利用できるメソッドをマークし、コンパイル時間を利用できないメソッドを利用する事から防ぎ、チェックする時間を、提供することができます。あなたはまだ、古い OS のバージョンに戻る展開をしながら、新しい API を採用することができます。デプロイメント・ターゲット上で利用可能であることが保証されていない API を使用しているときにコンパイル時にエラーは提供されます。
- テスト容易性。 テスト容易性については、今や、あなたの internal ルーチンのすべてを public にするすることなく、Swift 2.0 フレームワークやアプリのテストを書くことができます。他のフレームワークや、アプリのターゲットによっては利用可能ではないが、すべての public および internal ルーチンを作るためにあなたのテスト・ソースコードに XCTest ターゲットで使用可能な、@testable import {ModuleName} を使用してください。
- プロトコル拡張。 あなたは今や、より多くのコードを再利用することができ、特定のプロトコルに準拠する全てのクラスに、メソッドとプロパティを追加することができます。例えば、標準ライブラリには、標準ライブラリ (マップ、フィルタ、およびソートなどのような) の汎用のアルゴリズムのすべてのグローバル関数を使用しなければならない代わりに、汎用のアルゴリズムは、今やコレクション型のすべてのメソッドとして使用できます。
Xcode 7 の Swift 1.2 から 2.0 の移行ツール は、あなたが効率的に Swift 2.0 を利用するために、既存の Swift のソースコードを更新できます。
Swift 移行ツールはプロジェクトとプレイグラウンドの両方で動作します。
Swift プログラミング言語の詳細についてと、更新した Swift 機能へのポインタの変更履歴の章をチェックするには、Swift プログラミング言語 (Swift 2.1) を参照してください。
Objective-C 言語
Objective-C は、Swift と一緒に、より簡単かつ効率的に作業することを可能にするために更新されました。新しい Objective-C 言語の機能は次のとおりです。
- ジェネリック(汎用)。 NSArray、NSSet、と NSDictionary のようにコレクションクラスの型情報を指定できます。型情報は、Objective-C のブリッジからの Swift のアクセスを改善し、書かなければならないコードを簡素化します。
- null 値を許可する注釈。 値が nil か nil でないことを期待するときに、Swift コードから Objective-C のフレームワークやモジュールの使用をスムースにし、Objective-C のソースに指定できます。
- kindOf。 __kindof 型はコンパイラに "X の何らかの型" を表現し、特定のクラスまたはそのサブクラスに型を制限するために、汎用のパラメータの範囲内で使用できるオブジェクトを宣言します。__kindof を使用すると、単に id を使用するより明示的で、明示的なクラスよりも柔軟性があります。
これらの新しい言語機能は、Objective-C / Swift の相互作用を助けます。それらはあなたのコードを実行する前に Xcode は、開発サイクルの早い段階で問題を通知するための手段を提供するコードではなく、マニュアルであなたの期待、コンパイラについて多くの情報を表します。
詳細な Objective-C 言語の機能の詳細、およびそれらがどのように Swift との対話するかについては Cocoa と Objective-C でSwift を使用 する (Swift 2) を参照してください。
プレイグラウンド
プレイグラウンドは、Xcode 6 で Swift と共に導入以来、Swift コードを探索し、試作するのに最適な方法を証明しています。Swift 2.0 を使用すると、API を使用するか、コンセプトを実証する方法を説明するためにプレイグラウンドを使用できます。
- プレイグラウンドのオーサリング。 リッチテキストのコメントは、あなたの Swift コードで何が起こっているのか説明します。それらはプレイグラウンドのユーザーへの概観をより小さく、より簡単に消費可能な部分に表示され、それらの外観を制御し、視覚的にコードから区別されるようにする単純な値下げしたような構文を提供します。プレイグラウンドのリッチテキスト・コメントの詳細については、プレイグラウンド・リファレンス を参照し、プレイグラウンドマークアップ形式のリファレンス を見てください。
- インラインの結果。 直接結果を生成したコードのタイムラインの領域からあなたのコードの結果の表示を移動できます。これはあなたの視聴者にコードの行の結果を明確にします。インラインの結果はまた、タイムラインの表示よりもさらに設定可能です。
- リソース。 リソースバンドルを使用すると、プロジェクトナビゲータを使用して、プレイグラウンドに簡単にイメージ、サウンド、およびその他のデータを追加できます。
- 補助ソース。 補助ソースは、プレイグラウンドのメッセージをより明確に保つことができ、プレイグラウンドの外のコードをサポートして移動させます。さらに、補助ソースはコンパイルされ、より迅速に実行します。
- プレイグラウンドページ。 新しい Xcode 7 は、ページで一緒に関連する概念をバンドルできます。単一のプレイグラウンドは、一緒に物語を通じてすることができた、複数の、ターゲットされたページを含められます。
プレイグラウンドの機能の使用方法の詳細については、プレイグラウンドのヘルプ を参照してください。
アプリの軽量化
Xcode 7 を使用すると、デバイスのさまざまな構成で実行する3つの多様なプラットフォーム向けのアプリを開発します。
デバイスは広く異なる容量および表示機能を持つことができます。iTunes の App Store を使用して Xcode 7 でサポートされる、新しい機能を使用して、不要なリソースを含めずに予定の機能を供給し、各プラットフォームのデバイスに最適化されたアプリを提供できます。
- ビットコード。 App Store に提出するためにアーカイブすると、Xcode は中間表現にアプリをコンパイルします。App Store は、その後必要に応じて 64 ビットまたは 32 ビットの実行可能ファイルにビットコードをコンパイルします。
- スライス。 アセット・カタログに組み込まれたアートワークは、あなたのアプリを自分のデバイスにユーザーが購入およびダウンロードする時のインストールの対象とされているデバイスの適合性を示すためタグを付けられます。Xcode は、App Store が自動的にスライス操作を実行できるように資産カタログには組織し、タグ付けをサポートしています。エンドユーザーは自分のデバイスに必要なだけのリソースを取得します。
- オンデマンドリソース。 最初のダウンロードとインストール後のみに一部のコンテンツを必要とするアプリでは、iTunes の App Store のリポジトリ上のアプリの追加コンテンツをホストすできます。これらの資産がダウンロードされるときには、それらの適切なカテゴリと制御のために、これらのリソースにタグを付けます。Xcode は非同期ダウンロードとインストールを使用して、必要な場合には、リソースを取得するための情報を使用してアプリをビルドします。詳細については、オンデマンド・リソース・ガイド を参照してください。
詳細については、アプリケの配布・ガイド 内の アプリ軽量化 (iOS、watchOS) を参照してください。
デバッグ
Xcode 7 は、新しいデバッグとあなたの顧客のためのより良いアプリを作る手助けのターゲットプロファイリング機能を含んでいます。
- iOS 用エネルギーゲージ。 Xcode 7 は、エネルギーゲージを使用して、iOS アプリのエネルギー使用量の洞察をもたらします。iOS 9 は、エネルギーレポートで表面化しているプロセスごとにエネルギーを追跡する能力を調べています。これは、あなたのアプリが、いかにバッテリーの寿命に影響を及ぼしているかについての洞察を得るための素晴らしい方法です。安定したプロファイルを期待しているときに、あなたのアプリが、消費電力のちょうどアイドル状態または異常なスパイクでありながら、高エネルギー使用量のような、予期しない動作を見るかもしれません。iOS アプリの電力を管理する方法の詳細については、iOS のアプリのエネルギー効率ガイド をご覧ください。
- アドレス健全化ツール。 Xcode 7 は、アドレス健全化ツールを使用して、メモリ破損をキャッチし、デバッグするように設計されたインストルメントを使用してアプリをビルドできます。
デバッグゲージとそのレポートは、実行中のアプリへの迅速な洞察を提供します。より詳細な分析を必要な状況が発生した場合、各ゲージのレポートは、実行中のアプリを起動してインストルメントに渡すための手段を含みます。 Xcode 7 では、インストルメントはトラックビューを再設計し、UI は、自然になり、相互作用するのは簡単です。"ピンチ・ツー・ズーム" のようなジェスチャーは、滑らかで、有益なデータをナビゲートします。最新のインストルメントの詳細については、インストルメント・ユーザーガイド をご覧下さい。
Objective-C と C コードは、スタックとヒープ・バッファのオーバーランと、使用後フリーの問題などのメモリ破損の問題の影響を受けやすいです。これらのメモリ違反が発生した場合、あなたのアプリは、予期せずクラッシュしたり、異常な動作を示ことがあります。メモリ破損の問題は、クラッシュし、奇妙な行動は再現するのが難しいので、追跡するのは困難であり、原因は、問題の原点から遠いことがあります。
ビルドスキームでアドレス健全化を有効にしてください。有効にすると、追加されたインスツルメントは、発生したその場所で問題を検査することを可能にし、すぐにメモリ違反をキャッチするようにアプリに組み込みます。他の診断情報は、不良アドレス、特定し、問題を迅速に解決できるようにするヒープと割り当て/割り当て解除情報の有効なオブジェクト間の関係のように、同様に提供されます。
アドレス健全化は、効率的で、十分に高速な対話型アプリケーションと同様に通常に使用されます。これは、シミュレータ内にあり、iOS デバイス上で、OS X でサポートされています。
テスト
Xcode 7 は、既存の XCTest フレームワークの主な新機能として、UI テストを導入しています。 UI テストは、Xcode のテスト機能に精通した開発者には簡単に採用することができ、XCTest で既存の API や概念の拡張機能として実装されています。
- UI の記録。 あなたのアプリとの相互作用を記録することによって、あなたの最初の UI テストのメソッドを作成します。あなたのアプリと対話するように、Xcode は、アプリの UI の要素を見つけるために、そのプロパティにアクセスするために、およびそれらにイベントを送信するために、テストメソッドにソースコードを放出します。
- 正確さとパフォーマンス。 XCTest は今や要素のプロパティにアクセスするための、およびイベントを合成するために、アプリの UI に要素を配置するための豊富な機能セットを提供します。XCTest の UI テストのサポートは真でなければならない条件をアサートするための経時的、及び異なるデバイス間で、アプリのパフォーマンスを監視するためにベースラインを使用して既存の機能と統合されています。
- コードの適用範囲。 あなたのスキームのコードの適用範囲を有効にすることによって、あなたのテストスイートの完全性を可視化します。テストレポートのコードの適用範囲ペインには、ファイル、関数、および行使されたコードの行が、またより重要な行使されなかったものを示します。ソースコードエディタはまた、インラインでコードの適用範囲の情報を表示し、テストが施行された行や行の一部を一目で確認できます。
- Xcode サーバー。 Xcode テスト機能は、一貫性と、正確さと性能の両方をより良く評価することができる手渡し環境では、繰り返し、複数のデバイス上でテストの実行が可能な、Xcode サーバーで完全に統合できるように設計されています。開発プロセス全体を通じてプロジェクトのテストを繰り返し、トレンドや回帰を示すフォーマットを、新しい Xcode Server はレポートします。
Xcode のテスト機能を使用して、あなたのアプリのテストをする詳細については、Xcod でのテスト を参照してください。
クラッシュログ
Xcode はすべてのデバッガの便利さや手元のソースコードで、ユーザーが提出したクラッシュデータを分析し、使用する方法を提供します。
さて、Xcode 7 では、この機能は watchOS と iOS に加えて、OS X のアプリからのクラッシュデータを含むように拡張されています。
- テストフライト。 実世界のフィードバックを得るための能力を与えて、顧客に出荷する前に、選択されたテスターにベータテストのためアプリを配布します。ユーザーはまた、それらを収集し、記号化されている App Storeで、クラッシュに関するレポートを共有することを選択できます。
- クラッシュ・レポート Xcode 7 のオーガナイザー・ウィンドウで、送信したアプリで起こったクラッシュのログのリストを表示するには、[クラッシュ(Crash)]タブをクリックします。クラッシュ・レポート内の各エントリは、このクラッシュが報告され、発生したのはどこのコードか、頻度を示します。デバッグ・ナビゲーターに転送して、問題を検査し、直すことができる場所である Xcode でソースコードに直接移動するために、使用することができるクラッシュしたアプリの履歴のバックトレースを提示するクラッシュ・レポートの項目をクリックして下さい。
詳細については、アプリの配布ガイド の クラッシュレポートの分析 を参照してください。
Xcode 7.0.1
Xcode 7.0.1 は、報告された開発者の問題への対応のメンテナンスリリースです。これは、アプリの軽量化をサポートするための改良を含んでいます。
Xcode 7.1
Xcode 7.1 は、新しい iOS デバイスと新しい Apple TV のサポートを追加しました。Xcode は tvOS のためのストーリーボード、ユニットと UI テスト、プレイグラウンド、そしてクラッシュログ機能をサポートしています。
Interface Builder
- ストーリーボードは今や、Peek や Pop などの 3D タッチジェスチャーをサポートするようになりました。
デバッグ
- Swift エラーブレークポイントが、Xcode のデバッガで作成できます。
エラーが throw されると Swift のエラーが、定義された Swift のエラーブレークポイントをアクティブにします。それらは指定された Swift のエラー型だけのために活性化されるように、Swift のエラーブレークポイントを編集できます。
Xcode 7.1 のリリースに関する詳細については、Xcode リリースノート を参照してください。