iPhoneOSについて知ろう!

開発の前に、iPhoneというデバイスがいったいどのような物なのか、知っておきましょう。 構造や提供してくれている機能について説明します。

iPhoneOSの構造

CoreOS CoreService Media CocoaTouch の4つのレイヤで構成されている。

CoreOS CoreServiceなどはハードウェアに近く、Media CocoaTouchなどはユーザの操作に近くなっている。
iPhoneアプリ開発に関してはユーザの操作に近い、CocoaTouchから触れて行く事になる。

単純なアプリケーションならば、CocoaTouchの機能だけで制作することができる。
細かい制御を実装することになっていくと、ハードウェアに近い、CoreOSなどのレイヤに触れることもある。

それぞれのレイヤの機能について。

Core OS

OSの核となるレイヤ。カーネルとしてMachカーネルが用意されている。Machカーネルは、仮想メモリ、スレッド管理、ファイルシステム、ネットワーク、プロセス管理、などの機能を提供する。
各デバイスを制御する為のドライバもこのレイヤに含まれている。
ただし、iPhoneは個人情報を多く取り扱うデバイスなので、セキュリティ管理が厳しく、アプリケーションからのカーネルやドライバを直接操作することができなくなっている。
逆にCoreOSに含まれている機能で、アプリケーションからよく利用する機能は、スレッド(POSIXスレッド)、ネットワーク(BSDソケット)、ファイルシステム、Bonjourなど。
各々の説明については省略する。

CoreService

CoreServiceで提供されているサービスはシステムの基本的な部分である。
AddressBook,Core Foundation,Foundation,Core Location,CFNetwork,Security,SQLite,XMLなど。
こちらは開発に至って大切な事が多いが、逐次説明していくので、ここではこれらのことがあるということだけ知ってください。

  • Core FoundationとFoundationだけ説明すると、これはiPhoneOSのフレームワーク全域で使用されているデータ構造などを提供するフレームワーク。文字列、コレクション、日付、時間、ネットワーク・・など。
    C言語のAPIで提供するのがCore Foundation.Objective-CのAPIで提供するのがFoundation.多くのフレームワークはこの2つを基礎として使用しているため、必ず習得しましょう。

Media

Mediaで提供されているサービスも多くある。それもかなり充実している。グラフィック、オーディオ、ムービーなど様々な機能を搭載している。
Core Graphics,Core Animation,OpenGL ES,Core Audio,OpenAL,Media Playerなど。 それぞれ名前から想像できる通り。

  • Core Graphicsは2次元グラフィックフレームワークで、Quartzとも呼ばれる。ベクターベースの描画が可能。様々な画像のフォーマットに対応している。
    ちなみにC言語のAPIを提供する低レベルなフレームワークとなっている。

  • Core Animationはアニメーションをサポート。iPhoneは多くのアニメーションを利用していて、そのサポートをするフレームワークとなっている。

  • Open GLは言わずと知れた3次元グラフィックスライブラリ。このフレームワークを使用して、高度な3Dゲームを制作することができる。

  • Core Audio,OpenALはオーディオの為のフレームワーク。後者の方がハイパフォーマンス。
    対応フォーマットはAACやMP3。OpneALを使う事により、ゲームの効果音などをサポートできる。

  • Media Playerはそのまま。ムービーを再生してくれるフレームワークです。

CocoaTouch

CocoaTouchは最も重要なフレームワーク。
インターフェイスと同時に、アプリケーション全体の枠組みを提供している。
その枠組みを拡張しながら、アプリケーションを実装していく。
具体的な機能は、ウィンドウとビューシステム、イベント管理、ユーザーインターフェイスの提供、加速度センサ、カメラ、など。
それぞれの細かな機能については後述。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-24 (日) 17:14:25 (2586d)