【特集】

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

1 CocoaのMVCモデルの発展

 
  • <<
  • <

1/14

現在の多くのデスクトップアプリケーションのためのフレームワークは、その多くが、デザイン原理としてモデル・ビュー・コントローラ(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アプリケーションの全体像を紹介しよう。最後まで読めば、「デスクトップアプリケーションのためのフレームワークの完成形の一つ」を目にすることになるだろう。

  • <<
  • <

1/14

インデックス

目次
(1) CocoaのMVCモデルの発展
(2) チュートリアル - Cocoa BindingとCore DataによるGUI作成
(3) メールソフトを作成
(4) キー値コーディング
(5) キー値の監視
(6) コントローラレイヤ - Cocoa Binding
(7) NSObjectControllerとCocoa Bindingの構造
(8) Interface Builderとの統合
(9) モデルレイヤ - Core Data
(10) モデリング
(11) 管理対象オブジェクトのライフタイム
(12) 各レイヤの協調動作
(13) MVCの協調動作
(14) なぜ「完成」なのか

もっと見る



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

"神スイング"稲村亜美、体操着姿で筋肉美動画に!「股関節ちぎれるかと…」
[04:00 7/28] エンタメ
「弱虫ペダル SPARE BIKE」入場者プレゼントはデフォルメイラスト缶バッジ11種
[00:00 7/28] ホビー
[三太郎]桃ちゃんがかぐちゃんの“口撃”にたじたじ “ガラスの靴”が登場
[00:00 7/28] エンタメ
[乃木坂46西野七瀬]「ヤンジャン」グラビアで“老舗旅館の一人娘”に お風呂場にショーパン姿で…
[00:00 7/28] エンタメ
魚介忘太×わんにゃんぷー「殺伐シェアライフ」1巻、化け物2匹のギスギス生活
[23:46 7/27] ホビー

求人情報