IOS5アーキテクチャとSDKフレームワーク

前へ 目次へ 次へ
iOSの歴史 Apple iOS5開発者プログラムへの参加

SwiftUIを学び、iOS開発を次のレベルに引き上げる
SwiftUI Essentials–iOS14Editionブックは、印刷版(Print39.99)と電子書籍版(2 29.99)で利用可能になりました。 詳細をご覧ください。..

印刷プレビューブックを購入する

私たちはiPad用のアプリを開発するとき、Appleは私たちにこのハードウェアのいずれかに直接アクセスすることはできません。 実際には、すべてのハードウェアの相互作用は、アプリケーションコードとデバイスハードウェアの間の仲介者として機能するソフトウェアの異なる層の数を介して排他的に行われます。 これらの層は、オペレーティングシステムとして知られているものを構成します。 IPadの場合、このオペレーティングシステムはiOSとして知られています。

iPad開発環境の理解を深めるために、この章では、iOS5オペレーティングシステムを構成するさまざまなレイヤーと、開発者としてiPadアプリケーションを作

iPhone OSがiOSになる<5783><5528>2010年のiPadのリリース以前は、iPhone上で動作するオペレーティングシステムは、一般的にiPhone OSと呼ばれていました。 IPadに使用されるオペレーティングシステムは基本的にiPhoneと同じであることを考えると、iPad OSという名前を付けるのはあまり意味がありませんでした。 代わりに、Appleはオペレーティングシステムに、より一般的で非デバイス固有の名前を採用することにしました。 文字’i’(iTunes、iBookstore、iMacなど)を接頭辞とする名前に対するAppleの好みを考えると、論理的な選択はもちろんiOSでした。 残念ながら、iOSはまた、そのルータ上のオペレーティングシステムのためにCiscoによって使用される名前です(Appleは、それはそう、また、商標を無視するための好 したがって、iOSのインターネット検索を実行する場合は、AppleのiOSとはまったく関係のないCiscoのiOSの多数の結果を確認する準備をしてください。

iOS5アーキテクチャの概要

前述のように、iOSはいくつかの異なるソフトウェア層で構成されており、それぞれが基礎となるハードウェアの上で実行されるアプリケーション開発のためのプログラミングフレームワークを提供しています。

これらのオペレーティングシステム層は、図4-1に示すように図式的に表示できます:

iOSのアーキテクチャ5

フィギュア4-1

iOSソフトウェアスタックをグラフィカルに示すように設計されたいくつかの図は、デバイス上で実行されているアプリケーションを示すために、Cocoa 上の図では、アプリで利用可能な唯一のインターフェイスがCocoa Touchであることを示唆しているため、そうしていません。 実際には、アプリはスタックの任意のレイヤーを直接呼び出して、物理デバイス上でタスクを実行できます。

ただし、各オペレーティングシステム層は、ハードウェアでの作業の複雑さから離れて抽象化のレベルを増加させます。 したがって、iOS開発者は、より高いレベルのiOSレイヤーにあるフレームワークでプログラミング目標の解決策を常に探してから、より低いレベルのレイヤーに 一般に、プログラムするレイヤーのレベルが高いほど、目的を達成するために記述する必要があるコードの労力と行数が少なくなります。 そして、ベテランのプログラマーがあなたに言うように、コードを書く必要が少ないほど、バグを導入する機会が少なくなります。

iOS5を構成するさまざまなレイヤーを特定したので、各レイヤーが提供するサービスと、それらのサービスをアプリケーション開発者として利用できるようにする対応するフレームワークをより詳細に見ることができるようになりました。

Cocoa Touch Layer

Cocoa Touch layerはiOSスタックの最上部にあり、iPadアプリケーション開発者が最も一般的に使用するフレームワークが含まれています。 Cocoa Touchは主にObjective-Cで書かれており、標準のMac OS X Cocoa API(Appleのデスクトップおよびラップトップコンピュータに見られる)に基づいており、iPadハードウェアのニーズを満

Cocoa Touchレイヤーは、iPadアプリ開発のための以下のフレームワークを提供します。

UIKit Framework(UIKit.framework)

UIKitフレームワークは、Objective-Cベースの豊富な機能を備えたプログラミングインターフェイスです。 それは、間違いなく、あなたが働くあなたの時間のほとんどを過ごすことになるフレームワークです。 全体の本は、UIKitフレームワークだけについて書かれる可能性があり、おそらく書かれるでしょう。 UIKitの主な機能のいくつかは次のとおりです:

  • ユーザーインターフェイスの作成と管理(テキストフィールド、ボタン、ラベル、色、フォントなど)
  • アプリケーションライフサイクル管理
  • アプリケーションイベン タッチ画面のユーザーの相互作用)
  • マルチタスク
  • 無線印刷
  • 暗号化によるデータ保護
  • 切口、コピーおよびのりの機能性
  • 網およびテキストの内容の提示および管理
  • データ処理
  • アプリケーション間の統合
  • プッシュ通知サービスと連携したプッシュ通知
  • ローカル通知(バックグラウンドで実行されているアプリケーションがユーザーの注意を引くことができる機, カメラとフォトライブラリの相互作用
  • タッチスクリーンジェスチャー認識
  • ファイル共有(iTunes経由でデバイスに保存されているアプリケーションファイルを利用できるようにする機能)
  • デバイス間のブルートゥースベースのピアツーピア接続
  • 外部ディスプレイへの接続

このフレームワークの豊かさを感じるためには、Appleのブラウザを閲覧する時間を費やす価値がある。オンラインで入手可能なuikit参考資料:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKit_Framework/index.html

マップキットフレームワーク(MapKit.フレームワーク)

あなたはiPadで任意のかなりの時間を費やしている場合は、チャンスはあなたが特定の領域の地図を取得するか、あなたの意図した目的地 Map Kit frameworkは、マップベースの機能を独自のアプリケーションに構築できるプログラミングインターフェイスを提供します。 これは、他のものの中で、任意の場所のスクロール可能なマップを表示し、デバイスの現在の地理的位置に対応するマップを表示し、さまざまな方法でマッ

プッシュ通知サービス

プッシュ通知サービスを使用すると、アプリケーションがデバイス上で現在実行されていない場合でも、アプリケーションがイベントをユーザーに通知することができます。 このサービスの導入以来、それが最も一般的にニュースベースのアプリケーションで使用されています。 通常、ニュース速報がある場合、サービスはニュースの見出しを持つデバイス上のメッセージを生成し、ユーザーに対応するニュースアプリをロードして詳細を読む この警告は、通常、オーディオ警告とデバイスの振動を伴います。 この機能は、頻繁な中断でユーザーを迷惑にするのを避けるために控えめに使用する必要があります。

メッセージUIフレームワーク(MessageUI.framework)

メッセージUIフレームワークは、ユーザーがアプリケーション内から電子メールメッセージを作成および送信できるようにするために必要なすべ 実際には、フレームワークは、ユーザーが電子メールアドレス情報とメッセージの内容を入力するためのユーザーインターフェイス要素を提供します。 または、この情報はアプリケーション内で事前に定義され、送信前にユーザーが編集および承認できるように表示される場合があります。

アドレス帳UIフレームワーク(AddressUI.フレームワーク)

iPadの重要な機能は、通信デバイスとデジタルアシスタントとしてであることを考えると、フレームワーク全体がアドレス帳データを独自のアプリ フレームワークの主な目的は、あなた自身のアプリケーション内からiPadのアドレス帳から連絡先情報にアクセス、表示、編集、入力できるようにすることです。

ゲームキットフレームワーク(GameKit.フレームワーク)

Game Kitフレームワークは、複数のデバイスとユーザー間のピアツーピア接続と音声通信を提供し、同じアプリを実行しているユーザーが対話することがで この機能が最初に導入されたとき、それは主にマルチプレイヤーゲーム(したがって、名前の選択)で使用されることをAppleによって予想されたが、この機能の

iAdフレームワーク(iAd.フレームワーク)

iAdフレームワークの目的は、開発者がアプリケーション内にバナー広告を含めることを可能にすることです。 すべての広告は、Apple独自の広告サービスによって提供されます。

Event Kit UI Framework

Event Kit UI frameworkはiOS4で導入され、アプリケーション内からカレンダーイベントにアクセスして編集できるように提供されています。

Accountsフレームワーク(Accounts.フレームワーク)

iOS5では、システムアカウントの概念が導入されています。 これらは基本的に、他のサービスのアカウント情報をiOSデバイスに保存し、アプリケーションコード内からアクセスすることを可能にします。 現在、システムアカウントはTwitterアカウントに限定されていますが、Facebookなどの他のサービスは将来のiOSリリースで表示される可能性があります。 Accountsフレームワークの目的は、アプリケーションがこれらのシステムアカウントにアクセスして管理できるAPIを提供することです。

ツイッターフレームワーク(Twitter.フレームワーク)

Twitterフレームワークを使用すると、Twitterとの統合をアプリケーションに追加できます。 このフレームワークは、ユーザーのTwitterアカウント情報にアクセスするためにAccountsフレームワークと連携して動作します。

iOSメディアレイヤー

メディアレイヤーの役割は、iOSにオーディオ、ビデオ、アニメーション、グラフィックス機能を提供することです。 IOSスタックを構成する他の層と同様に、メディア層は、iPadアプリを開発する際に利用することができるフレームワークの数を含みます。 このセクションでは、順番にそれぞれを見ていきます。

コアビデオフレームワーク(CoreVideo.フレームワーク)

Core Video Frameworkは、Core Media frameworkのバッファリングサポートを提供します。 これはアプリケーション開発者によって利用されるかもしれませんが、通常、このフレームワークを使用する必要はありません。

コアテキストフレームワーク(CoreText.framework)

iOSコアテキストフレームワークは、高度なテキストレイアウトとフォントレンダリング要件の処理を容易にするために設計されたCベースのAPIです。

イメージI/Oフレームワーク(ImageIO.フレームワーク)

画像データと画像メタデータのインポートとエクスポートを容易にすることを目的とした画像I/Oフレームワークは、iOS4で導入されました。 フレームワークは、PNG、JPEG、TIFF、GIFなどの画像形式の広い範囲をサポートしています。

アセットライブラリフレームワーク(AssetsLibrary.フレームワーク)

Assetsライブラリは、iPadデバイスにあるビデオや写真ファイルを検索して取得するためのメカニズムを提供します。 既存の画像やビデオにアクセスすることに加えて、このフレームワークは、新しい写真やビデオを標準デバイスのフォトアルバムに保存することもで

コアグラフィックスフレームワーク(CoreGraphics.framework)

iOS Core Graphics Framework(Quartz2D APIとして知られている)は、軽量な二次元レンダリングエンジンを提供します。 このフレームワークの特徴は、PDF文書の作成とプレゼンテーション、ベクトルベースの図面、透明層、パスベースの図面、アンチエイリアスレンダリング、色操作と管 MacOS Xで実行されているQuartz2D APIに精通している人は、このAPIの実装がiOSでも同じであることを喜んで知ることができます。

コアイメージフレームワーク(CoreImage.フレームワーク)

iOS5で導入された新しいフレームワークで、アプリケーション開発者にビデオと画像のフィルタリングと操作機能を提供します。

Quartz Core Framework(QuartzCore.フレームワーク)

Quartzコアフレームワークの目的は、iPadでアニメーション機能を提供することです。 これは、UIKitフレームワークで使用される視覚効果とアニメーションの大部分の基盤を提供し、iPadアプリ内で特殊なアニメーションを作成するためのObjective-Cベース

フレームワーク)

長年にわたり、高性能な2Dおよび3Dグラフィックス描画の業界標準はOpenGLでした。 もともとは1990年代に現在は消滅しているSilicon Graphics,Inc(SGI)によってGLの形で開発され、OpenGL(OpenGL)のオープンバージョンは現在、Apple,Incを含む多くの大手企業からなる非営利のコンソーシアムの世話を受けています。、インテル、モトローラ、ARMホールディングス。

OpenGL For Embedded Systems(ES)は、iPadなどの小型デバイス用に特別に設計された完全なOpenGL仕様の軽量バージョンです。

iOS3以降は、特定のiPhoneモデル(iPhone3GSやiPhone4など)でOpenGL ES1.1と2.0の両方をサポートしています。 以前のバージョンのiOSおよび以前のデバイスモデルは、OpenGL ESバージョン1.1のみをサポートしています。

GLKitフレームワーク(GLKit.フレームワーク)

GLKitフレームワークは、OpenGL ESベースのアプリケーションを作成するタスクを容易にするために設計されたObjective-CベースのAPIです。

NewsstandKitフレームワーク(NewsstandKit.フレームワーク)

Newsstandアプリケーションは、iOS5の新機能であり、ユーザーが新聞や雑誌にアクセスするための中心的な場所として意図されています。 NewsstandKitフレームワークは、この新しいサービスを利用するアプリケーションの開発を可能にします。IOSは、AAC、Apple Lossless(ALAC)、A-law、IMA/ADPCM、リニアPCM、μ-law、DVI/Intel Ima ADPCM、Microsoft GSM6.10、およびAES3-2003形式のオーディオに対応しています。

AV Foundation framework(AVFoundation.フレームワーク)

オーディオコンテンツの再生、録音、管理を可能にするために設計されたObjective-Cベースのフレームワーク。

コアオーディオフレームワーク(CoreAudio.フレームワーク、AudioToolbox。フレームワークとAudioUnit。フレームワーク)

Ios用Core Audioを構成するフレームワークは、サポートされているオーディオタイプ、オーディオファイルとストリームの再生と録音を定義し、デバイスの内蔵オーディオ処理ユニットへのアクセスを提供します。

Open Audio Library(OpenAL)

OpenALは、高品質の3Dオーディオエフェクト(定位置オーディオとも呼ばれます)を提供するために使用されるクロスプラットフォーム技術です。 定位置オーディオは、一般的にゲーム内の効果音を提供するために使用されるが、様々なアプリケーションで使用することができます。

メディアプレーヤーフレームワーク(MediaPlayer.フレームワーク)

iOS Media Playerフレームワークは、ビデオを再生することができます。mov,.mp4,.m4v、および。さまざまな圧縮規格、解像度、フレームレートで3gp形式。

コアMidiフレームワーク(CoreMIDI.framework)

iOS4で導入されたCore MIDIフレームワークは、ipadのdockコネクタを介してシンセサイザーやキーボードなどのMIDI準拠のデバイスと対話するためのAPIを提供します。

iOSコアサービス層

iOSコアサービス層は、以前に参照された層が構築される基盤の多くを提供し、以下のフレームワークで構成されています。

アドレス帳フレームワーク(アドレス帳.フレームワーク)

アドレス帳フレームワークは、iPadアドレス帳の連絡先データベースへのプログラムによるアクセスを提供し、アプリケーションが連絡先エント

CFNetworkフレームワーク(CFNetwork.framework)

CFNetwork frameworkは、TCP/IPネットワークプロトコルスタックへのCベースのインターフェイスとBSDソケットへの低レベルのアクセスを提供します。 これにより、HTTP、FTP、およびドメインネームサーバーで動作するアプリケーションコードを記述し、Secure Sockets Layer(SSL)またはTransport Layer Security(TLS)を使用して安全で暗号化された接続を確立

コアデータフレームワーク(CoreData.framework)

このフレームワークは、MODEL-View-Controller(MVC)ベースのアプリケーションでのデータモデリングとストレージの作成を容易にするために提供されます。 コアデータフレームワークを使用すると、アプリケーション内で構造化データを操作する際に一般的なタスクを実行するために記述する必要があるコードの量が大幅に削減されます。

コア基盤フレームワーク(CoreFoundation.framework)

Core Foundation frameworkは、データ型、文字列操作、生のブロックデータ管理、URL操作、スレッドと実行ループ、日付と時刻、基本的なXML操作、ポートとソケット通信などの基本的な機 このフレームワークに含まれているものを超えた追加のXML機能は、libxml2ライブラリを介して提供されます。 これはCベースのインターフェイスですが、コアFoundationフレームワークのほとんどの機能は、Foundationフレームワークを介してObjective-Cラッパーでも利用できます。

コアメディアフレームワーク(CoreMedia.フレームワーク)

コアメディアフレームワークは、AV基盤レイヤーが構築される下位レベルの基盤です。 ほとんどのオーディオおよびビデオタスクは、より高いレベルのAV Foundationフレームワークを使用して実行することができ、実際には実行する必要がありますが、iOS

コアテレフォニーフレームワーク(CoreTelephony.framework)

iOS Core Telephony frameworkは、アプリケーションが現在の携帯電話サービスプロバイダに関する情報をデバイスに照会し、テレフォニー関連イベントの通知を受信できるようにするために提供されています。

EventKitフレームワーク(EventKit.フレームワーク)

デバイス上のカレンダーやアラームへのアクセスをアプリケーションに提供するために設計されたAPI。

財団の枠組み(財団。framework)

Foundation frameworkは、他のプラットフォーム(おそらくMac OS X)でObjective-Cでプログラムした人には馴染みのある標準のObjective-Cフレームワークです。 基本的に、これはCベースのCore Foundationフレームワークの多くの周りのObjective-Cラッパーで構成されています。

コアロケーションフレームワーク(CoreLocation.framework)

Core Location frameworkを使用すると、独自のアプリケーションからデバイスの現在の地理的位置(緯度、経度、高度)とコンパスの測定値を取得することができます。 デバイスが座標を提供するために使用する方法は、情報が要求された時点で利用可能なデータと、アプリが実行されている特定のiPadモデルによって提 これは、GPSの測定値、Wi-Fiネットワークデータ、またはセルタワーの三角測量(または3つの組み合わせ)に基づいています。

モバイルコアサービスフレームワーク(MobileCoreServices.フレームワーク)

iOS Mobile Core Servicesフレームワークは、データ型を指定および識別するためのシステムであるAppleのUniform Type Identifiers(UTI)メカニズムの基盤を提供します。 テキスト、RTF、HTML、JavaScript、PowerPointなどの多様なデータ型を含む、Appleによって定義された膨大な範囲の定義済み識別子が定義されています。pptファイル、PhotoShopの画像やMP3ファイル。

ストアキットフレームワーク(StoreKit.framework)

ストアキットフレームワークの目的は、アプリケーションとApple App Storeとの間の商取引を容易にすることです。 IOSバージョン3.0より前のバージョンでは、App Storeから購入した時点でのみ、顧客にアプリを請求することができました。 iOS3.0では、ユーザーがアプリケーション内から追加の支払いを行うオプションを与えることができる”アプリ内購入”の概念が導入されました。 これには、たとえば、アプリケーションのサブスクリプションモデルの実装、追加機能の購入、さらにはレースゲームで運転するためのより速い車の購入などが含まれる場合があります。

SQLiteライブラリ

軽量のSQLベースのデータベースを作成し、iPadアプリケーション内から操作することができます。

システム構成フレームワーク(SystemConfiguration.フレームワーク)

システム構成フレームワークでは、アプリケーションがデバイスのネットワーク構成設定にアクセスして、デバイスの”到達可能性”に関する情報(たとえば、Wi-Fiまたはセル接続がアクティブかどうか、トラフィックをサーバーにルーティングできるかどうか、およびどのようにルーティングできるかなど)を確立することができます。

クイックルックフレームワーク(QuickLook.framework)

Quick Look frameworkは、アプリケーションがまだサポートしていないデバイスにロードされたファイルタイプの内容のプレビューを表示するための便利なメカニズムを提供します(通常はインターネットまたはネットワーク接続を介して)。 このフレームワークでサポートされているファイル形式の種類には、iWork、Microsoft Officeドキュメント、リッチテキスト形式、Adobe PDF、画像ファイル、パブリックが含まれます。テキストファイルとカンマ区切り(CSV)。

iOSコアOS層

コアOS層はiOSスタックの一番下の位置を占め、デバイスハードウェアの上に直接座っています。 この層は、低レベルのネットワーキング、外部アクセサリへのアクセス、およびメモリ管理、ファイルシステム処理、スレッドなどの通常の基本的なオペレー

アクセラレートフレームワーク(Accelerate.フレームワーク)

Accelerateフレームワークは、複雑な数値演算、ベクトル、デジタル信号処理(DSP)、画像処理タスクと計算を実行するためのハードウェア最適化されたCベースのAPI

外部アクセサリーフレームワーク(ExternalAccessory.フレームワーク)

は、30ピンドックコネクタまたはBluetooth経由でワイヤレスでiPadに物理的に接続された外部アクセサリーと尋問し、通信する機能を提供します。

セキュリティフレームワーク(Security.framework)

iOSセキュリティフレームワークは、証明書、公開鍵と秘密鍵、信頼ポリシー、キーチェーン、暗号化、ダイジェスト、ハッシュベースのメッセージ認証コード(HMAC)など、外部ネットワー

System(LibSystem)

前述したように、iOSはUNIXのような基盤の上に構築されています。 コアOS層のシステムコンポーネントは、オペレーティングシステムのような他のUNIXとほぼ同じ機能を提供します。 この層には、オペレーティングシステムカーネル(カーネギーメロン大学が開発したMachカーネルに基づく)とデバイスドライバが含まれます。 カーネルは、iOSプラットフォーム全体が構築される基盤であり、基礎となるハードウェアに低レベルのインターフェイスを提供します。 とりわけ、カーネルは、メモリ割り当て、プロセスライフサイクル管理、入出力、プロセス間通信、スレッド管理、低レベルネットワーク、ファイルシステムアクセス、スレッドマネジメントを担当しています。

アプリ開発者は、セキュリティと安定性の理由から、システムインターフェイスへのアクセスが制限されています。 これらのインターフェイスは、LibSystemと呼ばれるCベースのライブラリに含まれています。 IOSスタックの他のすべてのレイヤーと同様に、これらのインターフェイスは、より高いiOSレイヤーにあるフレームワークを使用して同じ目的を達成する方法が

SwiftUIを学び、iOS開発を次のレベルに引き上げる
SwiftUI Essentials–iOS14Editionブックは、印刷版(Print39.99)と電子書籍版(2 29.99)で利用可能になりました。 詳細をご覧ください。..

印刷プレビューブックを購入する

前へ 目次へ 次へ
iOSの歴史 Apple iOS5開発者プログラムへの参加

コメントを残す

メールアドレスが公開されることはありません。