【Xcode】4.4で提供されている全フレームワークの概要をまとめてみた
おはようございます!mati6166です。
iPhoneアプリ開発を少しずつ始めようと思い、とりあえず使うであろうフレームワークを自分のプロジェクトに追加しました。
そこで気になったのが、Xcode4.4で提供されているフレームワークって全部で46個もあること!
名前を見てなんとなくなにをするかイメージできるものもあればそうでないものもあって、ちょっと興味が出てきたので、これを機会に全46フレームワークの概要を調べてみることにしました!
iOSの各種レイヤ
引用:「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がいかに多くのフレームワークによって構成されているか実感することができました!
コメントフィード