iOS開発者向けのXcode 4.2の革新

iOS5のリリースと同時に、開発者は自由に更新されたXcode 4.2を受け取りました。このXcode 4.2では、いくつかの新しい「機能」が発見されると予想されていました。 catの下で、Xcode 4.2で導入された主な革新を簡単に確認します。



自動参照カウント(ARC)


現在、既製のテンプレートからほとんどの新しいアプリケーションを作成するときに、ARCを使用するかどうかを選択できます。 ARCを使用することを選択した人にとって、望んでいない人にとってはすべてが以前のままであり、コードを書くという点で人生はやや楽になります(ARCがオンになっているときに古いコードのバグを見つけるという点でより困難になります)



要するに、ARCはObjective-Cオブジェクトのメモリ管理を自動化するため、retain、new、release、autoreleaseを記述する必要がなくなりました。 さらに、この機能が有効になっているプロジェクトでは、コード内の指定されたキーワード(および未指定ですが、メモリ管理に以前に使用されたもの)が存在するとコンパイルエラーが発生します。



プロジェクトをARCに自動的に転送するには、[Xcode]> [設定]> [全般]で[エラー後にビルドを続行]オプションを有効にし、[編集]> [リファクタリング]> [Objective-C ARCに変換]を選択する必要があります。 この場合、プロジェクトのターゲットは、LLVMでプロジェクトをビルドするために使用されるコンパイラを自動的に変更します(それについては少し後で)。



Habréにはすでに自動参照カウントの使用に関するかなり詳細なメモがあるので、そこでイノベーションの詳細に関心のあるすべての人を大胆に送ります。



このトピックでは、ARCリリースノートへの移行ドキュメントも役立つ場合があります。

さらに、同じトピックに関するWWDC 2011のすばらしいビデオがあります



デフォルトのコンパイラ


すでに述べたLLVM 3.0は 、Xcode 4.2のデフォルトコンパイラになりました。 Appleは、Xcode 4.0のGCCおよびXcode 4.1のLLVM-GCCと比較して、LLVMはコードをより速く、より良く、より強く生成および最適化すると主張しています。

さらに、前述のように、LLVMはObjective-CでのARCの使用をサポートしています。



絵コンテ


この用語は、ストーリーボードとして慎重に翻訳されており、実際には革新の本質を反映しています。 これで、新しく作成されたアプリケーションについて、各画面を個別に描画したり(一部の書籍-ビュー)、画面間の遷移を設定したり、画面間の遷移を引き起こすコントロールを設定したりできます。 これを行うには、新しいプロジェクトを作成するときに、[ストーリーボードを使用]チェックボックスをオンにするだけで十分です。



プロジェクトを作成すると、最初の「シーン」に似たビューコントローラーが表示されます(シーンという用語は、AppleがiPhoneアプリケーションの個別の特定の画面を理解することを意味します)。 アプリケーションの最初の開始画面。 アプリケーションに新しいビューを追加するには、オブジェクトライブラリからControllers&Objectsサブセクションを選択し、目的のコントローラーを選択してワークスペースにドラッグします。



更新4.2では、ノートブックページをスクロールする形式のビューコントローラーのシーケンスであるページビューコントローラーや、GLKitビューを制御するGLKitビューコントローラーなどの新しいビューコントローラーが登場しました。



iPhoneでは、各View Controllerがアプリケーション(シーン)の特定の1つの画面を表示しますが、iPadでは、そのような「シーン」を複数同時に画面に表示できます。



インターフェイス要素から他のView Controllerへの遷移を設定するには、Controlをドラッグしてホールドすることにより、これらの同じコントロールをView Controllerのヘッダーに関連付ける必要があります。 同時に、あるシーンから別のシーンへの移行を表す矢印がビューコントローラー間に表示されます。 シーン間の遷移アニメーションの外観を設定できます。



このイノベーションは非常に興味深いので、このイノベーションの本質をより詳細に明らかにする別のメモを書くことになっています。



ジオロケーションエミュレーション


Simulationのエミュレーションまたはシミュレーション(たとえば、オーガズム)への正しい変換についての議論はさておき、Xcode 4.2では、開発者の実際の地理的位置とは異なる、エミュレートされたデバイスの地理的位置をシミュレーターでエミュレートすることが可能でした。 Xcode 4.0および4.1では、この可能性は観察されませんでした。



ロケーションを設定するには、エミュレートされたデバイスのスキームを編集するためのオプションを選択するメニューで、実行タブMyLocationSimulationAppを開く必要があります... その後、ドロップダウンメニューからエミュレートされた場所(モスクワ、ロシアを含むサポートされている)を選択できます。



アプリケーションデータ管理


Xcode 4.2では、デバッグまたは単体テスト中に、シミュレータまたは実際のデバイスでアプリケーションデータファイルを保存および復元できるようになりました。 私はまだこの能力を使用することができませんでしたので、残念ながら私はこれ以上何も言うことができません。



Xcodeディストリビューションの選択的ダウンロード


バージョン4.2(自分を含む)にアップグレードする開発者は、この革新をほとんど感じないでしょうが、Xcode 4.2をゼロからインストールする人は、Xcodeインストーラーがデフォルトで読み込まれないことを理解するでしょう。古いバージョンのデバイスシミュレーターなどの優れたコンポーネント。 この場合、不足しているコンポーネントは常に個別にダウンロードできます。



OpenGL ESアプリケーションの改善されたデバッグ


私は自分自身をOpenGL ESアプリケーションの専門家とは見なしていないため、このイノベーションについてはコメントしません。 私が理解しているように、テクスチャやシェーダーの状態など、任意の時点でOpenGL ESを使用してアプリケーションの状態を調査する方が便利です。 この(そしておそらくこの問題だけでなく)問題において、より有能な仲間が私を修正することを願っています。



Xcode 4.2およびiOS 5のその他のイノベーションについては、たとえばiOS 5.0のイノベーションに関するこの説明を参照してください



All Articles