Xcode 6 の新機能
Xcode 6.0
Xcode 6 は Swift 、プレイグラウンド と呼ばれるインタラクティブな作業領域を持つ革新的なプログラミング言語を含んでいます。開発者は、直接操作することができ、Swift のコードをライブで実験でき、プレイグラウンドでベジェパスのコードを入力し、コードの横に直接パスが描かれるのを見られます。プレイグラウンド内の完全に新しいコードは、その後、簡単にメイン・プロジェクトにそのコードを推進できます。
Xcode 6 は新しいライブ可視化機能で設定した Xcode の機能を拡張します。たとえば、ビュー・デバッグは実行中のアプリを一時停止し、それがどうインターフェースを描画するかを理解することを簡単にし、3D 視覚化にすべての UI レイヤーを爆発させます。Interface Builder 内のライブレンダリングは、手書きの UI コードをデザインと同時に表示し、ビューのコードと、IB のレンダリングの変更を即座に編集できるようにします。プレビュー・アシスタントはマウスをクリックするだけで、異なる言語でアプリを示す事ができるようになりました。
Xcode 6 は、OS X のバージョン 10.9.3 以降、または 10.10 が稼働している Mac が必要です。これは、OS X バージョン 10.9 と 10.10、そして iOS 8 の SDK を含んでいます。
Xcode 6 は、以下に挙げる強調すべき機能を備えています。
Swift 言語
Swift は、iOS の開発のための高度なオブジェクト指向プログラミング言語です。Swift は、近代的で、強力な、表現力に富んだ、そして使いやすいです。
- 速い。Swift は、コンパイルして、高性能アプリを作るための、LLVM の高度なコード解析と最適化がなされています。
- 完全なプラットフォーム。Swift ですべてのココアタッチのフレームワークにアクセスできます。
- デザインによって安全。バグ、クラッシュ、およびセキュリティホールの巨大なカテゴリを排除します。
- 近代的。書き込み、デバッグ、および書き込みと読むのがしやすい構文、維持すべきコードは少なく、ヘッダの維持は必要ありません。
- 対話的。Swift を対話的に使い、アイデアを試して、結果をすぐに確認しましょう。
- 統一された。Swift は、C および Objective-C の言語の両方のための完全な代替品です。これは、完全なオブジェクト指向の機能を提供し、型、フロー制御、および演算子のような低レベル言語プリミティブを含みます。
Swift は、型の安全性と型推論を同時に成り立たせ、ポインタへの直接のアクセスを制限し、ARC を使用し自動メモリ管理し、簡単に Swift を使用し、安全で安定したソフトウェアを作成できるようにしました。他の言語の安全に関連した機能は変数の強制的な初期化が含まれ、オーバーフローを防ぐために自動範囲チェック、デフォルトでのブレーク条件文、デフォルトでメモリーへの直接ポインタの禁止を含んでいます。
Swift は optionals、ジェネリック、クロージャー、タプル、および他の近代的な言語機能を含んでいます。Objective-C にインスピレーションを受け、改善し、Swift のコードは読んだり書いたりが自然な感じです。
Swift 言語について、その使用を開始するための完全な情報については、Swift プログラミング言語(Swift 2) を参照してください。
Swift の Xcode 6 の特長
- プレイグラウンド。プレイグラウンドは、Swift コードを生産的かつ簡単に書けるようにします。コードの1行を入力すると、結果がすぐに表示されます。コードが何度も走るとー例えば、ループを通してータイムライン・インスタンス上でそれが進行するのを見えるようにそのコード行を追加できます。グラフの表示変数は、ビューを描画する各ステップを検査し、またはアニメーション化された SpriteKit シーンを見られます。プレイグラウンドでコードを完成したら、単にプロジェクトにそのコードを移動します。プレイグラウンドのためのいくつかの用途は次のとおりです。
- プレイグラウンドで学ぶ。インタラクティブな環境での個別指導から学ぶプレイグラウンドで文書を選び、開きます。リッチフォーマットの文書やインタラクティブなプレイグラウンドの組み合わせは、完全に API を探検できるようになり、サンプルコードを試し、変更することができます。
- LLDB の read-eval-print loop(REPL)。Xcode でのデバッグコンソールは、今ビルドされたばかりの read-eval-print loop(REPL) と呼ばれる Swift 言語のインタラクティブなバージョンを含んでいます。Swift の構文を使い、実行中のアプリを評価し、対話し、または新しいコードを書いて、スクリプトのような環境でそれがどう働くか見ます。REPL は Xcode のコンソール内から、または、実行中のプロセスに参加した場合、ターミナル内から LLDB を使用することにより利用可能です。
- 言語ごとの文書。Xcode の文書ビューアは、あなたの選択 - Objective-C か、Swiftか、またはその両方の言語でのクイックヘルプや参考文書を示しています。
- 合成されたヘッダ。使用している API がどのように書かれているかを確認する必要がある場合、Xcode は期待する言語でそれを示します。もともと Objective-C で書かれた API の場合、Xcode は著者のコメントを完全に、Swift の構文で本来のヘッダファイルのバージョンを表示します。
新しいアルゴリズムの設計をし、方法の全てのステップの結果を見る
新しい API を試したり、新しい Swift の構文を試す
新しいテストを作成し、テストスイートにそれらを推進する前に、それらが動くことを検証する
Xcode 6 IDE で追加の機能拡張
既存のプロジェクトに多くのライブの視覚化をもたらし、以下の機能が強化され Swift に互換性があります。
テスト
- パフォーマンス測定。強化された XCTest フレームワークは、アプリの各部分の性能を定量化する機能をサポートするようになりました。Xcode パフォーマンステストを実行し、あなたがベースライン・パフォーマンス・メトリックを定義することができます。後続する各テストは、パフォーマンスを比較して経時変化を表示し、コードの過ちが引き起こす可能性のある突然の逆行を警告し、問題の領域を強調します。
- 非同期コードのテスト。XCTestは 非同期的に実行するテストコードの API を提供するようになりました。これで、ネットワーク運用し、ファイルの IO、簡単でシンプルな方法で非同期呼び出しを使用しての他のシステムの相互作用のためのテストを作成することができます。
詳細については、Xcode とのテスト を参照してください。
Interface Builder
- ライブレンダリング。Interface Builder は、あなたのアプリが実行されたとき、それらが見えるとおりに、設計する時にカスタムオブジェクトを表示します。カスタムビューのコードを更新すると、Interface Builder の設計キャンバスはソースエディタで入力した新しい外観の更新を自動的に行うので、ビルドして実行する必要はありません。自動的にプロパティを表示するために Interface Builder のインスペクタを使用できます。Interface Builder のキャンバスー例えば、その場でサンプルデータをロードすることができ、カスタム・コントロールの動作をカスタマイズできるようにする新しい API を活用して下さい。
- サイズクラス。iOS 8 のサイズクラスは、iPhone と iPad 両方のためにカスタマイズされたレイアウトで一つのユニバーサルなストーリーボードを設計することができます。サイズクラスを使用すると、一度に共通のビューと制約を定義することができ、サポートされている各フォームファクタ用のバリエーションを追加できます。iOS シミュレータとアセット・カタログは共に、サイズクラスを完全にサポートしています。
- カスタム iOS のフォント。Interface Builder は、完成したアプリがどのように見えるかを、正しい寸法で、より正確にプレビューをし、設計の間埋め込まれたカスタムフォントをレンダリングします。
ライブレンダリングの詳細については、Interface Builder でレンダリングするカスタムビューの作成 を参照してください。
サイズクラスの詳細については、サイズクラス・デザインのヘルプ を参照してください。
デバッガ
- ビューのデバッグ。ビューデバッガを使用すると、コードの行をデバッグするように簡単にアプリの外観をデバッグすることができます。一つのボタンのクリックは、実行中のアプリを一時停止し、ビューのスタックの各レイヤーを分離する 3D レンダリングの一時停止した UI を、"爆発"します。ビューデバッガを使用すると、画像がクリップされ目に見えない理由がすぐに明らかになり、またグラフィック要素の順序が明確になります。任意のビューを選択することで、アシスタントエディターのソースビューで、関連するコードにジャンプして詳細情報を調べることができます。ビューデバッガはまた、コンフリクトが問題を引き起こす場所を簡単に見る事ができるようになり、自動レイアウトの制約を表示します。
- 強化されたキューのデバッグ。デバッグ・ナビゲーターは、最近実行されたブロックだけでなく、待ち行列に入れたブロックを記録し表示します。待ち行列に入れたブロックがどこにあるか見るために使用することができますし、実行するように設定されているのが何かの詳細を検討できます。
- デバッグゲージ。デバッグ中にデバッグゲージは、リソースの使用状況に関する一目でわかる情報を提供します。それらは、特にポータブル Mac コンピュータやデバイス上でバッテリーを余分に食っている所や貧弱なユーザーエクスペリエンスを作成している、場所に関連して、以前は未知の問題に注意を呼び起こさせます。
I/O ゲージ。二つの新しいデバッグゲージ、アプリの実行中にネットワークの働きとファイルの働きが、視覚的に入力/出力の働きのピークを強調表示します。
iCloud のゲージ。iCloud のデバッグゲージはアプリ固有の容器の外側にあるファイルへのアクセスを提供する新しい Cloud 内の文書や CloudKit 機能のサポートを含んでいます。
SpriteKit と SceneKit
- グラフィクスとゲーム開発。SpriteKit のサポートは新しい SpriteKit レベルデザイナーで大幅に強化され、デバッグ時の SpriteKit 変数の表示を改善しました。
- iOS のサポート。 SpriteKit と SceneKit は一緒に、また iOS 上で動作するように拡張されました。Xcode の中から SpriteKit ゲームのシーンを作成して下さい。あなたのキャラクター、背景、およびあなたのゲームの残りの部分が集まっているか定義するためにのはこれまで以上に簡単ですーiOS と OS X 両方用の偉大なゲームを作成するときに、コードを共有するのはかつてないほど容易になりました。
拡張機能とフレームワーク
- 拡張機能のサポート。OS での他のアプリへのアプリの機能を拡張するために、全ての iOS または Mac アプリに拡張ターゲットを追加しましょう。Xcode は、それが安全で、組み込み OS コンテキストで実行されるように拡張機能を起動時にデバッグし、接続します。
- iOS 用のフレームワーク。iOS の開発者は動的なフレームワークを作成することができるようになりました。フレームワークは、コードの集合であり、複数のプロジェクトにわたる変数である機能をカプセル化するためリソースです。フレームワークは、メインアプリケーションと、バンドルされている拡張機能の両方で使用可能なロジックを共有し、拡張機能で完璧に動作します。
詳細については、アプリ拡張機能プログラミングガイド を参照してください。
iOS シミュレータ
- 構成。新しい iOS シミュレータの構成で、一緒にグループ化されたデータと構成設定を保持できます。 独自のデータと、アプリの一つのバージョンの構成、およびアプリの異なるバージョンの別の構成を実行します。
iOS シミュレータの詳細については、iOS シミュレータユーザーガイド を参照してください。
ローカライズ
- XLIFF のインポートとエクスポート。Xcode はローカライズ文字列をローカライズ化のため業界標準の XLIFF 形式を送り出すために、パッケージ化することができます。ローカライズ化が完了すると、プロジェクトに新しい言語を返して統合するのは簡単です。
- Implicit.strings のファイル。Xcode は自動的に基本言語 .strings ファイルをあなたのソースコードから直接ファイルを生成しますー今あなたは、もはやその手で .strings ファイルを、管理する必要はありません。
- Interface Builder でプレビュー。Interface Builder で設計時にインタフェースが他の言語でどのように表示されるかを、プレビューアシスタントは表示できます。インターフェースが、長いか短いかどちらかの言語にどのように応答するかを見ることができます。
- ロケールで実行。他の国の顧客に見えるように Xcode は、デバイス上で直接実行するか、iOS シミュレータ上でアプリを実行することができます。
Xcode 6 のローカライズ化の詳細については、国際化とローカライズ化ガイド を参照してください。
コンパイラ
- プロファイルガイド付きの最適化。プロファイルガイド付き最適化(PGO)は LLVM 最適化と、パフォーマンステストで動作するプロファイルは、アプリの中で最も積極的に使用される部分をプロファイルします。また、パフォーマンスのプロファイルを生成するために、手動でアプリを行使することもできます。PGO は、アプリをプロファイルでさらに最適化し、最適化が最も必要な領域を標的にし、オプションが単独で達成できる最適化の設定を超えたパフォーマンスを向上させます。
- ユーザー定義のモジュール。開発者は自分独自の Objective-C のコードのためのモジュールを定義することができるようになり、彼らのすべてのプロジェクト間でフレームワークを共有することよりも、以前よりそれが容易になりました。ユーザー定義のモジュールを Swift のモジュール自動生成化を組み合わせることにより、二つの言語がシームレスに連携して動作します。
プロファイルガイド付きの最適化に関する詳細については、Xcode のプロファイルガイドの最適化 を参照してください。
インストルメント
- 新しいユーザーインターフェイス。新しいインストルメントのユーザーインターフェイスは、簡単にパフォーマンス・チューニング・セッションを設定する事ができ、制御を向上させます。新しいテンプレートセレクタは、お使いのデバイスとターゲットだけでなく、あなたのプロファイリング・セッションの開始点を選択することができます。トラック・ビューは、直接クリック·アンド·ドラッグでき、タイム・フィルタの範囲を設定できます。ツールバーは、手元の作業に集中できるように、より少ないスペースしか占有しません。
- プロフファイルテスト。機能テストではメモリリークの解析やそれが退行している理由を確認するためパーフォーマンス・テストをタイム・プロファイリングするためのタイム・プロファイリングでは、偉大な、テストスイートを選択してください。
- 新しいカウンタのインストルメント。カウンターやイベントのインストルメントは、より強力なインストルメントに組み合わせて、設定が容易になってきました。それは、個々の CPU のイベントを追跡したり、イベントを集めたり、比などを測定するための式を指定することができます。64 ビット·デバイス上の iOS 開発者はアプリを微調整するためにカウンタを使用することができます。
- Swift と拡張機能のサポート。もちろん、Swift はサポートしています。スタックの追跡で Swift の符号が見えるだろうし、アロケーションでは Swift の型が見えるでしょう。また、アプリの拡張機能をプロファイルするインストルメントを使用できます。
インストルメントは今や、より Xcode のように見え、動作します。記録されたデータのトラックは、より多くのスペースが与えられ、データが収集されて閲覧の方法の設定は統一インスペクター領域で管理されています。
シミュレータ構成のサポート。シミュレータ構成は、起動したり、シミュレータでのプロセスにアタッチすることが容易になり、インスツルメントでデバイスと同様に扱われます。
Xcode サーバー
- トリガ。トリガーは、Xcode のスキームを実行した前または後にカスタムスクリプトを起動するために、サーバー側のルールを設定することで、より複雑な統合シナリオを作成できます。
- パフォーマンス・テストの統合。Xcode サーバーは、チームが Mac コンピュータおよび継続的なパフォーマンス・テストのために iOS デバイスのグループを共有できるようにすることを簡単にし、新しい Xcode のパフォーマンス・テスト機能をサポートしています。
- デルタ追跡。問題は、今や統合ごとにつき追跡され、いつ問題が現れ、いつ誰によって修正されたか、見ることができます。
- より優れた制御。Xcode サーバーの構成オプションは、開発チームにボットの実行にもより優れた制御ができるようになります。統合間隔の新しい設定、ボットのグループ化、および iOS シミュレータ構成は、これまで以上に Xcode のボットをより強力にします。新しいレポートの UI はボット·レベルの統計情報を含み、たとえば、成功した統合や、コミットとテスト追加の追跡、などなどを含みます。
Xcode サーバーの詳細については、Xcode サーバーと継続的統合ガイド を参照してください。
HomeKit アクセサリ・シミュレータ
- HomeKit 機能。新しい HomeKit フレームワークは、アプリとの通信や、ユーザーのホームに接続されたアクセサリを制御することができます。iOS アプリで HomeKit を使用するには、プロジェクト・エディタ機能パネルで HomeKit スイッチを設定して下さい。Xcode > 開発ツールを開く> HomeKit アクセサリシミュレータを選択してシミュレータの使用を開始してください。
HomeKit の詳細については、HomeKit フレームワークリファレンス を参照してください。
Xcode 6.0.1
Xcode 6.0.1 は、報告された開発者の問題と Apple 認定テスト用のメンテナンスリリースです。
Xcode 6.1
Xcode 6.1 は、Swift での OS X 用の開発を追加し、バグ修正と他の新機能を含んでいます。
OS X ヨセミテの SDK のサポート
- Xcode 6.1 は、OS X バージョン 10.9、OS X バージョン 10.10、そして iOS 8 用の SDK での開発サポートを含んでいます。
Swift
- Swift は OS X バージョン 10.10 のための SDK を使用して OS X の開発をするためのすべての Cocoa フレームワークにアクセスすることができます。
- Swift 開発ターゲットは、OS X マーベリックスと OS X ヨセミテ両方で展開できます。
Interface Builder
- OS X 用のストーリーボード。OS X のためにストーリーボードは Xcode 6 で来たり、AppKit の中で、新しいビューコントローラの API を利用できます。ストーリーボードは、簡単に複数のビューを一緒に配線し、コードを記述せずにセグエアニメーションを定義できます。OS X 用のストーリーボードは、アプリが、ユーザーが期待するように動作するように Mac の標準に従うインタフェースを奨励します。
ストーリーボードの詳細については、ストーリーボードのヘルプ を参照してください。
Xcode 6.1.1
Xcode 6.1.1 はバグ修正とパフォーマンスの向上を含んでいます。
Xcode6.2
Xcode 6.2 は、iOS 8.2 のサポートを追加しています。これは、Apple ウォッチアプリを開発するための新しい WatchKit フレームワークを含んでいます。
WatchKit のためのツールのサポートは以下の物を含んでいます。
- Apple ウォッチインターフェース、視線、および通知をビルドするための設計ツール
- デバッグとプロファイリングのサポート
- アプリのテスト、視線、および通知のための iOS シミュレータにおける Apple Watch のサポート
Xcode 6.3
Xcode 6.3 は、iOS 8.3、Swift の更新、および他の多くの新機能のサポートを追加します。
Swift 1.2
- Swift 1.2 は Swift 1.1 と比較して、実質的に速いパフォーマンスのコードを生成します。
- Xcode は今や Swift のターゲットの増分ビルドを非常に効果的に行います:一つのファイルの変更は、もはやターゲット内のすべてのソース·ファイルのビルドを呼び起こしません。
- Xcode 6.3 の新しい Swifrt 移行ツールでは、Swift 1.1 のコードを Swift 1.2 に移行するのが容易になります。
Swift と Swift 標準ライブラリにこれらおよびその他の注目すべき改善点の詳細は、Xcode の公開ノート を参照して下さい。
Xcode で、[Edit(編集)] > [Convert(変換)] > [To Latest Swift Syntax(最新の Swift 構文に移行)] を選択し、移行ツールを呼び出します。
App Store と テストフライト・ユーザーの為のクラッシュオーガナイザー
- 新機能は、App Store のユーザーとテストフライト・ユーザーが選択するのに役立ち、アプリのクラッシュログデータを収集し、分析します。
選択した App Store のユーザーと TestFlight ユーザーから集められたクラッシュレポートは、クラッシュオーガナイザで表示することができます。詳細は Xcode のドキュメントの Xcode の公開ノート および クラッシュオーガナイザーヘルプ でご利用いただけます。
Xcode プレイグラウンドの機能強化
- ドキュメントのオーサリングは改善され、インラインマークアップされたコメント、インラインプレイグラウンドの結果、プレイグラウンドに埋め込まれたリソースを表示し編集する機能、プレイグラウンドに補助ソースファイルを統合する能力を改善しました。これらの機能は、プレイグラウンドの豊富な新しい体験を生み出すことができます。
詳細は、Xcode のドキュメント内の Xcode の公開ノート、プレイグラウンドリファレンス、および プレイグラウンドヘルプ を参照してください。
フォースタッチのサポート
- Xcode は、それを含む Mac のフォースタッチのトラックパッドのジェスチャーを使用し、NSButton と NSSegmentedControl の Interface Builder のエディタで OS X 上でフォースタッチトラックパッド機能の設定をサポートしています。
注意: Interface Builder でフォースタッチを採用するには、OS X ヨセミテのバージョン 10.10.3 上の Xcode を実行している必要があります。
Objective-C の機能強化
- Objective-C のコードでは、今や、Swift と Objective-C の間の相互運用性を向上させる、ヘッダファイル内のポインタの null の可能性を直接表現することができるようになりました。
変更および機能拡張の詳細については、Xcode の公開ノート を参照してください。
デバッガの機能強化
- LLDB は、C を基本にした言語でのモジュールのサポートを向上させるだけでなく、Swift のデバッグ支援の全体的な改善を提供するように強化されました。
LLDB の Objective-C の式パーサーは、今やモジュールをインポートし、モジュールで定義された関数やメソッドのプロトタイプに依存する後続の表現を可能にします。インポートされたモジュールのさらなる利点は、より良いエラーメッセージ、潜在的に誤った推論された引数の型を排除する、などがあります。
機能強化の詳細については、Xcode の公開ノート を参照してください。
アップル LLVM コンパイラバージョン 6.1
- LLVM バージョン 6.1 は、C++14 のサポート、強化された警告診断、そして新しい最適化を含んでいます。
この更新されたコンパイラは、C++14 言語標準を完全にサポートし、強化された警告診断の広い範囲、および新たな最適化を含んでいます。arm64 アーキテクチャのサポートは著しく良好な ARM の実装に合わせて改訂されました。最も目に見える影響は、いくつかのベクトル組み込み関数が、より密接に ARM の仕様に適合するように変更されたことです。
ARM64 組み込み関数の変更
- arm64 の vfma/vfms レーン組み込み関数の引数の順序が変更されました。
デフォルトでは、コンパイラは組み込み関数のいずれかの使用についても警告しますが、以前の動作を保持します。リスクを低減するためには、新しい順序への移行は段階的に完成されます。
Xcode 6.3.1
Xcode 6.3.1 はバグ修正とパフォーマンスの向上のメンテナンス・アップデートです。
Xcode 6.3.2
Xcode 6.3.2 はバグ修正とパフォーマンスの向上のメンテナンス・アップデートです。
- Swift のプロジェクトは今や Xcode 6.3.1 でのスピードの低下を修正し、すぐにコンパイルします。
Xcod 6.4
Xcode 6.4 は、バグ修正とパフォーマンスの向上とともに、iOS 8.4 での開発をサポートしています。
Xcode 6.4 リリースに関する詳細については、Xcode リリースノート を参照してください。
前の章 次の章