【Xcode】4.4で提供されている全フレームワークの概要をまとめてみた

このエントリーをはてなブックマークに追加

スクリーンショット 2012 08 24 6 50 01
おはようございます!mati6166です。

iPhoneアプリ開発を少しずつ始めようと思い、とりあえず使うであろうフレームワークを自分のプロジェクトに追加しました。

そこで気になったのが、Xcode4.4で提供されているフレームワークって全部で46個もあること!

名前を見てなんとなくなにをするかイメージできるものもあればそうでないものもあって、ちょっと興味が出てきたので、これを機会に全46フレームワークの概要を調べてみることにしました!

iOSの各種レイヤ

スクリーンショット 2012 08 25 22 23 17

引用:「iOSテクノロジーの概要」P14

iOSは、上の図のような階層構造になっています。

下位のレイヤ(Core OS, Core Services)程、他のアプリも使用する基本的なサービス、つまりハード側のサービスを提供します。

上位レイヤ(Cocoa Touch, Media)は、下位レイヤの機能をベースにしながらより高度なアプリケーションを提供する為のサービスを提供します。

イメージでいうと、下位レイヤは縁の下の力持ちで、上位レイヤは実際に私たちがアプリを使用していく中で目に見える部分といった感じでしょうか?

これが各種レイヤごとにまとめた全フレームワークの概要だ!

さて、以下から各種レイヤごとの各フレームワークの概要を表にしてまとめた一覧です。
基本的には、Web上に落ちているリファレンス(中には当然、英語版も含む)を片っ端から取得・参照し、「Introduction」の1文を訳していきました。

※どうしても分からないものに関しては、日本語版の概要リファレンス「iOSテクノロジーの概要」から引用していたり、もしかしたら適当に濁しているかもしれません。
(え?概要まとめた日本語リファレンスあるんならわざわざ上記のことしなくていいじゃんって??)

Cocoa Touchレイヤ


AddressBookUI.framework
アドレス帳DBのレコードを選択・編集・表示をサポートする

EventKitUI.framework
ビューコントローラーを使用するイベントを作成・編集・表示する際に使用する

GameKit.framework
ソーシャルゲームを作成するための要素を提供する

iAd.framework
アプリ内に広告を貼りたいときに使用する

MapKit.framework
アプリ内にマップを埋め込みたい時に使用する

MessageUI.framework
アプリ内からメールやSMSを利用できるようにする

Twitter.framework
アプリ内でTwitterを活用できるようにする

UIKit.framework
ユーザインタフェースを組み立て・提供する為に必要なクラスを提供している

CoreMotion.framework
モーション感知できるようにする

計9個のフレームワーク

Mediaレイヤ


AssetsLibrary.framework
写真や動画にアクセスできるようにする

AVFoundation.framework
音楽データを扱えるようにする

CoreAudio.framework
オーディオ機能を実装する

AudioToolbox.framework
録音や再生のためのインタフェースを提供する

AudioUnit.framework
iOSに内蔵されているオーディオ処理のインタフェースを提供している

CoreGraphics.framework
高度なドローエンジンであるthe QuartzをベースとしたC言語ベースのAPI

CoreImage.framework
OS XやiOSに組み込まれているグラフィックのリアルタイム処理技術

CoreMIDI.framework
ハードウェアキーボードやシンセサイザーを含むMIDIデバイスとコミュニケーションするためのAPI郡

CoreText.framework
テキストのレイアウトとフォントの処理を扱うもの

CoreVideo.framework
iOSにおけるデジタルビデオのためのパイプラインモデルを提供するもの

ImageIO.framework
イメージをインプット・アウトプットする(?)

GLKit.framework
OpenGLアプリの開発を簡単にするための一般的な関数やクラスのライブラリを提供する

MediaPlayer.framework
動画、音楽、ポッドキャスト等を再生する

OpenAL.framework
OpenALのインタフェース

OpenGLES.framework
2Dや3Dグラフィックのレンダリングを促進する為に使われる、C言語ベースのインタフェース

QuartzCore.framework
画像処理とビデオイメージの操作を支援するAPIを提供する

計16個のフレームワーク。
えー私、「AVFoundation.framework」「CoreAudio.framework」「AudioToolbox.framework」「AudioUnit.framework」「MediaPlayer.framework」といった、オーディオ関連のフレームワークがなぜこのように分かれているかは現時点で分かっておりません。
(実際に動かしてみたら違いが分かるんでしょうが。。)

Core Servicesレイヤ


Accounts.framework
アカウントのデータベースに格納されているユーザアカウントにアクセスするためのもの

AddressBook.framework
ユーザの連絡先にアクセスするためのもの

CFNetwork.framework
最上位のフレームワークでCore Foundation Networkインターフェイスが含まれている

CoreData.framework
アプリケーションのデータモデルを管理するための インターフェイスが含まれてい

CoreFoundation.framework
基本ソフトウェアサービスを提供する(アプリケーションサービス、環境、それそのもの)

CoreLocation.framework
ユーザの現在地を決定するために使用する

CoreMedia.framework
iOSアプリ内における、メディアの管理・再生のためのインタフェースを提供(低次元のもの)

CoreTelephony.framework
ユーザの契約している携帯電話会社情報を取得する

EventKit.framework
カレンダーイベントとリマインダーにアクセス・操作する

Foundation.framework
Objective-Cクラスの基本レイヤを定義するもの

MobileCoreServices.framework
Uniform Type Identifiers (UTI)で使用される下位レベルのタイプを定義する

NewsstandKit.framework
クライアント側のニューススタンドアプリを開発するために使用する

QuickLook.framework
iWorkやMicrosoft Officeといったようなフォーマットのアイテムのプレビューを提供する

StoreKit.framework
アプリ内で追加の機能やコンテンツを購入できるようにする

SystemConfiguration.framework
デバイスのネットワーク構成を特定するために使用できるインターフェイスを提供。
(Wi-Fi接続または携帯電話接続が使用中かどうか、そして特定のホストサーバがアクセス可能かどうかを特定するために使用)

計15個のフレームワーク

Core OSレイヤ


Accelerate.framework
高速化された数学関数等が含まれている

CoreBluetooth.framework
Bluetooth 4.0にアクセスするために使用する

ExternalAccessory.framework
iOSベースのデバイスに接続されているハードウェアアクセサリとの通信のためのサポートを提供

Generic Security Services(GSS).framework
セキュリティ関係の標準的なサービス群を組み込む

Security.framework
情報の保護やソフトウェアへのアクセスをコントロールするためのインタフェースを定義している

計5個のフレームワーク

その他


IOKit.framework
デバイスによって使用されるインターフェイスが含まれている。
※これを直接インクルードしない

計1個のフレームワーク

【まとめ】これでiOSで何ができるかなんとなくイメージできた!?

いかがでしょうか?なんとなくiOSで何ができるかイメージできましたでしょうか?

個人的な感想ですが、要はなんでもできるんだなーということを感じました。
(さすがに匂いを発したり、家電のスイッチを押せたりはしませんが。)

まとめ作業はとても大変でしたが、iOSがいかに多くのフレームワークによって構成されているか実感することができました!

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

WP-SpamFree by Pole Position Marketing

コメントフィード