apps-ios71

iOSアプリの構造を知ろう①!!

 

出典:http://jp.techcrunch.com/2015/06/22/20150621devs-use-minor-updates-to-resurrect-ios-apps-on-the-slide-study-finds/

こんにちは!
なんか最近曇りが多く、心までブルーになりそうな新米プログラマー、トゲアリトゲナシトゲトゲです。

日々あまり考えることなく、作っているアプリですが、そんな時ふとこのように思わないでしょうか?

「この機能ってどの部分で動いてるんだろうか?、構造ってどんな感じになっているんだろうか?」と。
もちろん私もこのように感じて、自分なりに調べました。

なので今回はiOSアプリの構造と機能について皆さんにお伝えしたいと思います。

iOSアプリの構造

iOSは下記のような4つのレイヤー(階層)で構成されており、主に下のレイヤーで基本的なサービスを提供しています。
上位レイヤーでは、扱いやすいインターフェースの提供がされています。

  1. Cocoa Touch Layer
  2. Media Layer
  3. Core Services Layer
  4. Core OS Layer

各レイヤーのフレームワークは、下位レイヤーを上位レイヤーで扱いやすいインターフェースで提供したりするもの、複数のフレームワークを使って別のサービスを提供したりするものがあります。
利用者側は、自分に必要な機能を上位レイヤーの機能を使って表現するか、下位レイヤーを使って表現するか選択できます。
以下、各レイヤーごとの説明・機能とともに、どのようなことができるかも見ていきましょう。

Cocoa Touch Layer

Cocoa Touch Layerは、アプリのUI表示周りに加え、マルチタスキング、タッチジェスチャー、push通知などなど、大変多くの基本的機能を提供しています。

【代表的な提供機能】

Storyboard,Auto Layout,Gesture Recognizers

【これができます!】

  • マルチタスクでアプリが閉じていても処理させる
  • Push通知、Local通知でよりユーザーRetentionを向上させる
  • メール送信させるためのUIを簡単に使いたい
  • 地図アプリを作りたい

Media Layer

Media Layerは、グラフィック、オーディオ、ビデオなどマルチメディア類の機能群のレイヤーになります。iOSデバイスをより魅力的に彩る機能は、これらが担っています。

【代表的な提供機能】

UIKit Graphics,Core Animation,OpenGL ES And GLKit,Assets Library

【これができます!】

    • 端末に保存してある写真や動画を選択したりしたい
    • 端末に保存してある写真や動画を自分で作ったUIで扱ったり、写真やビデオを保存したい
    • 顔認識アプリケーションを作りたい
    • iOSでゲームを作りたい

Core Services Layer

Core Services Layerはその名の通り、基本的なシステムサービスが含まれるレイヤーになります。 すべてのベースになるCore Foundation Frameworkから、iCloud,Social Networkを利用するためのフレームワークも存在します。

【代表的な提供機能】

iCloud Storage,SQLite,XML Support

【これができます!】

    • GPSで位置情報を知りたい
    • アプリ上で複雑なデータ構造を扱ったアプリを作りたい
    • JavaScriptとアプリを連動させたい
    • クーポン発行するアプリを作りたい

Core OS Layer

Core OS Layerはもっとも低レベルのレイヤーで、直接触る機会は少ないでしょうが、これらを用いて上位レイヤーの機能が提供されていたりします。セキュリティや外部アクセサリー向けのフレームワークが存在します。

【これができます!】

    • 音声信号処理や高速な画像処理を行いたい
    • 外部アクセサリと通信する
    • KeyChainサービスを使って安全にアプリ内にデータを保存したり、アプリ間でデータを共有したい

まとめ

アプリの構造についてお話ししましたが、知れば知るほど興味が出ますよね。
今回は、ここまでとしますが、次回は1つ1つのレイヤーにはどんなフレームワークが存在するのかをより詳しく書いていこうと思います。

CONTACT US

株式会社プロフェッサはWEB制作会社です。
ウェブサイト制作やシステム開発など、ウェブに関するご相談は下記よりお気軽にどうぞ


Previous Post

Next Post