• 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」

  • 相关阅读:
    minikube dashboard 403 forbidden
    kubernetes 条件需求 修改内核和系统启动项
    kali 2020汉化 设置中文
    mac Memcached安装及基本命令-转载
    转载——Linux性能剖析工具—perf
    Django-migrations中的迁移版本和数据库中的迁移版本对不上怎么办?
    下载yum源中的rpm包
    server2008 安装mysql8.0
    好累啊!
    我与游戏
  • 原文地址:https://www.cnblogs.com/nowthursday/p/4576704.html
Copyright © 2020-2023  润新知