【特集】

TigerのCocoaにみるMVCの完成 - スマートなデータモデルを実現するCore Data

1 CocoaのMVCモデルの発展

    木下誠  [2005/10/31]

    現在の多くのデスクトップアプリケーションのためのフレームワークは、その多くが、デザイン原理としてモデル・ビュー・コントローラ(MVC)アーキテクチャを取り入れている。これは、アプリケーションに必要とされるモジュールを、データを表すモデル、ユーザへの表示を行うビュー、これらをコントロールするコントローラ、の3層に分割して設計しよう、というものだ。

    今回紹介するのは、Apple ComputerのMac OS Xにおけるアプリケーションフレームワークである「Cocoa」のMVCアーキテクチャだ。Mac OS Xのバージョンアップに伴い、Cocoaにも2度、重要なアップデートがあった。まずはこの変遷を追いかけてみたい。

    Cocoa BindingとCore Dataの導入

    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アプリケーションの全体像を紹介しよう。最後まで読めば、「デスクトップアプリケーションのためのフレームワークの完成形の一つ」を目にすることになるだろう。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン