iOS テクノロジー
シンプルなユーザーインターフェイスと基本動作でアプリを書く方法を今まで学びました。この時点で、プロジェクトをフル機能のアプリにする追加の動作を実装することを考えて行きます。
どの機能を追加しようと検討しているのなら、追加するには、最初からすべてを実装する必要はないことを覚えておきましょう。iOS は、セキュリティおよびデータ管理、あなたのアプリに統合することができる機能から、ゲームやメディアの特定のセットを定義しているフレームワークを提供します。あなたはすでにアプリのユーザー·インターフェースを設計する為に UIKit フレームワークを使用し、Foundation フレームワークを、コードへ共通のデータ構造と、動作を含ませるようにしました。これらは、iOS アプリの開発に使用される最も一般的な二つのフレームワークですが、もっと多くの利用可能なものがあります。
この章では、あなたのアプリで採用を検討している、技術やフレームワークの高レベルの概要です。可能な技術を探索することの出発点として、この章を使用してください。iOS で利用可能な技術の完全な概要については、iOS の技術概要 を参照してください。
ユーザーインターフェース
UIKit 。UIKit フレームワーククラスでは、タッチベースのユーザー·インタフェースを作成する事ができます。すべての iOS アプリは、UIKit に基づいているため、このフレームワークなしでアプリを出荷することはできません。UIKit は、画面への描画、イベントの処理、共通のユーザーインターフェイス要素を作成するインフラストラクチャを提供します。UIKit はまた、画面上に表示されるコンテンツを管理することで、複雑なアプリをまとめます。詳細については、UIKit フレームワークリファレンス を参照してください。
コア・グラフィックス。コア・グラフィックスは、低レベルで、C に基づいたフレームワークであり、高品質なベクターグラフィックス、パスベースの描画、変換、画像、データ管理などを処理するため便利です。もちろん、iOS のグラフィックスを作成するための最も簡単で最も効率的な方法は、iOS に描画を実行させ、UIKit フレームワークの標準のビューとコントロールでレンダリング前の画像を使用することです。UIKit は、より高いレベルのフレームワークで、また、カスタム描画のためのクラスーパス、色、パターン、グラデーション、画像、テキスト、そして可能な限りいつでもコアグラフィックスの代わりに使用する転送を含みます。詳細については、コアグラフィックス・フレームワーク・リファレンス を参照してください。
コア・アニメーション。 コア・アニメーションのインターフェイスは Quartz コア・フレームワークの一部です。コア・アニメーションを、高度なアニメーションや視覚効果を作ることを可能にするように使って下さい。UIKit はコア・アニメーションの技術の上に構築されたアニメーションを提供します。UIKit の能力を超えた高度なアニメーションが必要な場合は、コア・アニメーション を直接使用して下さい。あなたは、操作、回転、スケール、変換などでレイヤオブジェクトの階層を作成することができます。コア・アニメーションのおなじみのビューのような抽象化を使用すると、OpenGL ES のような低レベルのグラフィックス API を使用することなく、動的なユーザー・インターフェースを作成することができます。詳細については、コア・アニメーションのプログラミングガイドを参照してください。
ゲーム
ゲームキット。ゲームキット・フレームワークは、あなたの iOS のゲームに追加できるスコアボード、成果、その他の機能を提供します。詳細については、ゲームキット・フレームワーク・リファレンス を参照してください。
スプライトキット。スプライト(妖精) キット・フレームワークは、任意のテクスチャ画像、または スプライト のアニメーションのグラフィックスのサポートを提供します。グラフィックエンジンであることに加えて、また、オブジェクトに命をもたらす物理的サポートを含みます。スプライトキットは、複雑なアニメーション・チェーンを必要とするゲームや他のアプリに良い選択です。(ユーザー·インターフェース·アニメーションの他の種類については、代わりにコア・アニメーションを使用して下さい。) 詳細については、スプライトキット・プログラミングガイドを参照してください。
OpenGL ES。OpenGL ES は、ハードウェア・アクセラレーションによる 2D と 3D の描画をサポートする低レベルのフレームワークです。OpenGL ES の標準的な Apple の実装では、フルスクリーン、ゲームスタイル・アプリの高いフレームレートを提供するために、デバイスハードウェアと密接に連携します。OpenGL ES は、低レベルのハードウェアに焦点を当てた API なので、学習するには険しく、アプリ全体のデザインに大きな影響を与えます。(より特殊な用途のための高性能グラフィックスを必要とするアプリのためには、スプライト・キットやコア・アニメーションを検討してください。) 詳細については、iOS 用のOpenGL ES プログラミング·ガイド を参照してください。
ゲーム・コントローラ。ゲーム・コントローラ・フレームワークは、簡単に Mac や iOS のデバイスに接続されたコントローラを見つけることができます。コントローラが使用中のデバイス上で検出されたとき、あなたのゲームは通常のゲームプレイの一環として、コントロール入力を読み込みます。これらのコントローラは、ゲームをコントロールするのに、プレーヤーに新しい方法を提供します。Apple は、ハードウエアのコントローラーを詳細にデザインし、全てのコントローラーが、両方のプレイヤーとゲームデザイナーが当てにすることができるコントロール要素の一貫したセットを持っていることを確認しました。詳細については、ゲーム・コントローラ・フレームワーク・リファレンスを参照してください。
データ
コア・データ。 コア・データ・フレームワークは、アプリのデータモデルを管理します。管理されたオブジェクトとして知られているモデル・オブジェクトを作成するために使用します。それらのオブジェクト間の関係を管理し、フレームワークを介してデータを変更します。詳細については コア・データ・フレームワーク・リファレンスを参照してください。
ファウンデーション。このガイドで前述したようにファウンデーションで作業しました。ファウンデーション・フレームワークでは、有益な基本クラスを沢山定義しています。他の事の中でも、このフレームワークは、文字列や数値などのデータ型などの基本的なデータ型、他のオブジェクトを格納するためのコレクションクラスを表すクラスを含んでいます。詳細については、ファウンデーション・フレームワーク・リファレンス を参照してください。
メディア
AV ファウンデーション。 AV ファウンデーションは、時間ベースのオーディオビジュアルメディアを再生し、作成するために使えるいくつかのフレームワークの一つです。たとえば、検査、作成、編集、またはメディアファイルの再エンコードのため AV ファウンデーションを使用できます。また、デバイスからのストリーム入力を取得し、リアルタイムのキャプチャや再生中にビデオを操作するためにも使用できます。詳細については、AV ファウンデーション・フレームワーク・リファレンスを参照してください。
前の章:チュートリアル:データの追加
次の章:情報の検索