【特集】
現在の多くのデスクトップアプリケーションのためのフレームワークは、その多くが、デザイン原理としてモデル・ビュー・コントローラ(MVC)アーキテクチャを取り入れている。これは、アプリケーションに必要とされるモジュールを、データを表すモデル、ユーザへの表示を行うビュー、これらをコントロールするコントローラ、の3層に分割して設計しよう、というものだ。
今回紹介するのは、Apple ComputerのMac OS Xにおけるアプリケーションフレームワークである「Cocoa」のMVCアーキテクチャだ。Mac OS Xのバージョンアップに伴い、Cocoaにも2度、重要なアップデートがあった。まずはこの変遷を追いかけてみたい。
Cocoaは、その由来となるNEXTSTEPのころから、MVCをベースに設計されていた。MVCの3つのレイヤのうち、ビューに関しては始めからかなりリッチなサポートがあったが、ビューに比べるとコントローラとモデルに関してはプログラマへの負担が大きかった。
こういった問題を解決するために、AppleはCocoaへの改良・機能追加を続けている。まず、Mac OS X 10.3ではコントローラレイヤの追加が行われた。「Cocoa Binding」の導入である。これにより、ビューとモデルを同期するための、コントローラレイヤが利用できる。
さらに、Mac OS X 10.4ではモデルレイヤの強化を行う。Core Dataの登場だ。Core Dataの目的を一言で言うと、データモデリングやクエリーといった、データベースの概念をデスクトップアプリケーションに取り込むことである。具体的には、データモデルの設計、オブジェクトの永続性、オブジェクトコンテキストの管理、などのサポートが加わる。
これらをアプリケーションの機能に置き換えると、書類フォーマットのデザイン、GUIによる書類の編集、GUIの表示の更新、アンドゥとリドゥのサポート、書類の保存/読み込み、などに該当する。これらの機能を、ほとんどコーディングせずに利用できるのだ。これをもって、デスクトップアプリケーション用のフレームワークとして、Cocoaは一つの完成を見た、といっていいだろう。
この記事では、これらの機能が協調動作する、新しいCocoaアプリケーションの全体像を紹介しよう。最後まで読めば、「デスクトップアプリケーションのためのフレームワークの完成形の一つ」を目にすることになるだろう。
| iOS向けSPDYライブラリが登場、普及はじまるSPDY [11:57 2/9] |
| GitHubのアクティブプロジェクト、もっとも多いのはMITライセンス [11:42 2/9] |
| BIND 9系のすべてに重要度の高い脆弱性 [10:00 2/9] |
| Nginx強く成長、Webサーバとして確固たるポジションに - Netcraft [09:56 2/9] |
| Kubuntuへの資金提供を廃止 - Canonical [09:53 2/9] |
|
企業で最も使われているブラウザはIE 6.x - 規模が大きいほど比率高く [12:10 2/9] 経営 |
|
今年の日本を表す漢字、最も多かったのは『希』 - 「3.11」前に電通調査 [12:10 2/9] ライフ |
|
【インタビュー】フセイン長男の影武者が語る凄惨を極めた生き地獄の日々 『デビルズ・ダブル』 [11:59 2/9] エンタメ |
|
iOS向けSPDYライブラリが登場、普及はじまるSPDY [11:57 2/9] エンタープライズ |
|
イーフロンティア、アニメーション制作ソフト「Anime Creator 8」発売 [11:51 2/9] クリエイティブ |