iOSシステム構成の纏め
iOSのアーキテクチャ
a) iOSのアーキテクチャは階層化されている
最上位レベルでは、iOSはそれが稼働しているハードウェアとアプリケーションの間の仲介役を果たします。アプリケーションがハードウェアと直接やり取りすることはめったにありません。代わりにアプリケーションは、明確に定義された一連のシステムインターフェイスを介してハードウェアとやり取りします。このようなインターフェイスによって、ハードウェアの能力が異なるデバイス上でも一貫性を保って動作するアプリケーションを容易に作成できます。
iOSテクノロジーの実装は、図1-1に示すように、1つのレイヤセットで表現できます。システムの下位の各レイヤには、すべてのアプリケーションが依存する基本的なサービスとテクノロジーがあります。一方、上位レベルの各レイヤには、より高度なサービスとテクノロジーが含まれます。

図 1-1 iOSのレイヤ
主要階層構造 :
|
Cocoa Touch レイヤ |
Address Book UI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework |
Cocoa Touchはいくつかの重要なフレームワークで構成され、大きく「Foundationフレームワーク」と「UIKitフレームワーク」の2つに分けることができる。前者は主に基本的なデータの処理を、後者は主にGUI(グラフィカル・ユーザー・インタフェース)の構築をつかさどる。 |
|
Media レイヤ |
Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Frameworks、Core Media |
Mediaレイヤには、マルチメディア体験を演出することを目的とする、グラフィックス、オーディオ、 およびビデオの各テクノロジーが含まれています。このレイヤのテクノロジーは見た目もサウンドもすばらしいアプリケーションを簡単に開発できるように設計されています。 |
|
Core Service レイヤ |
Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch 、In App Purchase、Location Services、SQLite、XML Support |
Core Servicesレイヤには、アプリケーション向けの基本的なサービスが含まれています。中でも重要 なのは、あらゆるアプリケーションに必要となる基本的な型を定義している、Core Foundationと Foundationフレームワークでしょう。このレイヤには、地理的位置の検出、iCloud、ソーシャルメディア、ネットワークなどを活用するために必要な、個別の技術も組み込まれています。 |
|
Core OS レイヤ |
Accelerate Framework、External Accessory Framework、Security Framework、System |
Core Servicesレイヤには、アプリケーション向けの基本的なサービスが含まれています。中でも重要なのは、あらゆるアプリケーションに必要となる基本的な型を定義している、Core FoundationとFoundationフレームワークでしょう。このレイヤには、地理的位置の検出、iCloud、ソーシャルメディア、ネットワークなどを活用するために必要な、個別の技術も組み込まれています。 |
b) iOSの技術はフレームワークというパッケージとして提供される
Appleでは、フレームワークと呼ばれる特殊なパッケージとしてほとんどのシステムインターフェイスを提供しています。フレームワークは、共有ダイナミックライブラリとそのライブラリをサポートするために必要なリソース(ヘッダファイル、画像、ヘルパアプリケーションなど)を含む1つのディレクトリです。フレームワークはXcode上でアプリケーションプロジェクトに組み込んで使います。
c) Developer Libraryを自由に活用して開発できる
iOS Developer Libraryはアプリケーション開発における重要なリソースです。また、APIリファレンス、プログラミングガイド、リリースノート、技術ノート、サンプルコードその他、アプリケーション開発に役立つさまざまなヒントやガイダンスが揃っています。
iOS Developer Libraryには、Apple Developer Webサイトから、またはXcodeからアクセスできます。
Xcode上で「Help」>「Documentation and API Reference」を実行すると、Xcodeの資料を扱うウインドウが開きます。ここにはiOSアプリケーションの開発に関する情報が集約されています。資料を閲覧、検索するほか、「しおり」をつけておくことも可能です。
アプリケーションの構成
a) iOSアプリケーションの主要オブジェクト

図 2-1 iOSアプリケーションの主要オブジェクト
UIApplicationMain関数は、動作に不可欠なオブジェクトをいくつか用意した後、アプリケーショ ンの実行を開始します。iOSアプリケーションの心臓部に当たるのがUIApplicationオブジェクトで す。システムと、アプリケーションに属する他のオブジェクトとの間で、やり取りを仲介する役割を 果たします。多くのアプリケーションで使われる主なオブジェクトを図 2-1に示し、表 2-1で各オブ ジェクトの役割を説明します。まず注意しておきたいのは、iOSアプリケーションが「モデル-ビュー-コントローラ」アーキテクチャにもとづいて動作する、という事実です。この設計パターンには、アプリケーションのデータやビジネスロジックを、その視覚的表現と分けて管理する、という働きがあります。画面の大きさが異なるさまざまなデバイスで動かすためには、このアーキテクチャが不可欠です。
b) メイン実行ループ
アプリケーションのメイン実行ループは、ユーザが関与するイベントをすべて処理します。 UIApplicationオブジェクトは起動時にメイン実行ループをセットアップし、これを使ってイベント を処理したり、ビューベースのインターフェイスを更新したりします。名前からも分かるように、ア プリケーションのメインスレッド上で動作します。したがって、ユーザが関与するイベントは、受け 取った順で直列に処理されます。 図 2-2に、メイン実行ループのアーキテクチャと、イベントに応じてアクションが実行される様子を 示します。ユーザはデバイスを介してアプリケーションとやり取りするので、これに関係するイベン トをシステムが収集し、UIKitがセットアップする特別なポートを通してアプリケーションに配信する ようになっています。イベントは内部のキューに入り、メイン実行ループでひとつずつ取り出して、実行コードにディスパッチします。UIApplicationオブジェクトがまずイベントを受け取り、どのように処理するか判断します。タッチイベントは通常、主ウインドウオブジェクトにディスパッチされ、これが次に、タッチイベントが発生したビューにディスパッチします。ほかのイベントも、経路は若干異なるものの、最終的に適切なオブジェクトに渡ります。

図 2-2 メイン実行ループでのイベント処理
参照:
「iPhoneAppProgrammingGuide 」
「iOSTechOverview」
iOSシステム構成の纏め的更多相关文章
- JSP基本_JSPの構成要素、アクション、ディレクティブ
1.JSPの構成要素[コア要素] JSP文法のコアとなる要素で.サーブレットソースに変換される. ・宣言: <%! - %> (宣言で指定した変数は.Javaの「フィールド変数」になる.ス ...
- 【SAPUI5】ODataを構成するもの
はじめに SAPUI5でアプリケーションを作るにあたり.ODataは避けては通れないトピックです.結構広いテーマなので.5-7回くらいに分けて書きたいと思います.1回目はODataの概要について説明し ...
- IOSアプリケーション開発環境の構築
IOSアプリケーション開発環境の要求 1) IOSシステムの構造はそのようになっています: 2) ハードウエアの方の要求: コンピューター a) デュアルコアCPU b) 8 gメモリ(開 ...
- 怎样創建 iOS 展開式 UITableView?
原文:http://www.appcoda.com.tw/expandable-table-view/ 译者:kmyhy(appcoda的驻站译者) 幾乎全部的 App 都會以導航的方式向用戶展示多個 ...
- IOS框架和服务
在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像.声音文件等其他资源.共享资源库定义应用程序可以调用的函数和方法. iOS为应用程序开发提供了许多可使用的框架 ...
- [iOS 主要框架的总结]
原文地址:http://blog.csdn.net/GooHong/article/details/28911301 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件, ...
- iOS 的基本框架
在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像.声音文件等其他资源.共享资源库定义应用程序可以调用的函数和方法. iOS为应用程序开发提供了许多可使用 ...
- unity与ios交替
unity和ios的相互作用是更简单的.直接出口xcodeproject,这个大家都知道如何操作,如果需要二次开发ios码成unity,事实上,整合非常easy找到出口xcodeproject内iPh ...
- hbuilder ios 打包失败,无法导入p12证书的解决方案
问题描述: 在profile文件和私钥证书通过hbuilder ios 打包成功过的前提下,突然遇到打包失败的问题,问题详情是无法导入p12证书. 探索过程: 本着遇到问题先自省的态度,重复打包了几次 ...
随机推荐
- Spark 1.0.0版本号公布
前言 今天Spark最终跨出了里程碑的一步,1.0.0版本号的公布标志着Spark已经进入1.0时代.1.0.0版本号不仅增加了非常多新特性,而且提供了更好的API支持.Spark SQL作为一个新的 ...
- 【转】iOS应用崩溃日志揭秘2
这篇文章还可以在这里找到 英语 场景 4: 吃棒棒糖时闪退! 用户邮件说, "当rage master吃棒棒糖时应用就闪退-" 另一用户说, "我让rage master ...
- Day05 - Python 常用模块
1. 模块简介 模块就是一个保存了 Python 代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 模块也是 Python 对象,具有随机的名字属性用来绑定或引用. 下例是个简单的模 ...
- spring注解:@PostConstruct和@PreDestroy
关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二 ...
- CentOS7系统下搭建Jenkins环境
1. 安装JDK yum -y install java 2.安装Ant 添加JPackage源 yum -y install wget wget http://www.jpackage.org/jp ...
- 多维数组遍历PHP
原文出处 <?php /* * ------------------------------------------------- * Author : nowamagic * Url : ww ...
- node express
在某QQ群里,发现大家都在搞node,为了不被out,这周主要研究了一下,还挺高大上. 参考了下资料,适合初学者学习. Node和NPM的安装够便捷了,不细说...有几点基础顺手提一下: 安装命令中的 ...
- JDK1.8聚合操作
在java8 JDK包含许多聚合操作(如平均值,总和,最小,最大,和计数),返回一个计算流stream的聚合结果.这些聚合操作被称为聚合操作.JDK除返回单个值的聚合操作外,还有很多聚合操作返回一个c ...
- fiddler接口测试
浏览器中,可直接进行get接口测试:调用post方法的接口测试可用fiddler测试(当然,fiddler也支持get),如下图 [Execute]后双击左侧请求记录记录即可查看响应结果
- 分享:根据svg节点对象类型和路径值转换坐标值
功能用处: 对svg文件的路径节点填充时会使用(相邻两个坐标区域内的四边形的填充颜色不重复). 需要对svg文件中的Path节点或者 Polyline 节点做颜色填充.并且相邻的两个区域之间的颜色不允 ...