本書の目的
パターンの目次
第1章 パターンとはなにか
1.1 パターンによるアプリの作成
1.1.1. フレームワークではないパターン
1.1.2. パターンとは
1.1.3. パターンは汎用化しない
1.1.4. アプリ開発のオートマティズム
1.2 7つのパターン
1.2.1. 7つのパターンの概要
1.2.2. パターンは絶対ではない
1.3 本書の構成
第2章 アプリ設計のパターン
2.1 アプリの設計
2.2 機能設計
2.2.1. 機能設計とは
2.2.2. 技術仕様の調査
2.2.3. RSSリーダの機能設計
2.3 ユーザインタフェース設計
2.3.1. ユーザインタフェース設計とは
2.3.2. ペーパープロトタイピング
2.3.3. ユーザインタフェース設計のパターン
2.3.4. RSSリーダのユーザインタフェース設計
2.4 クラス設計
2.4.1. クラス設計とは
2.4.2. MVCによるクラス設計
2.4.3. 命名規則
2.4.4. モデルレイヤの設計
2.4.5. コントローラレイヤの設計
2.4.6. アプリコントローラのパターン
2.4.7. ビューレイヤの設計
第3章 モデルのパターン
3.1 モデルの設計
3.1.1. モデルに求められるもの
3.1.2. Core Dataを使うか否か
3.2 モデルオブジェクトクラスとモデルマネージャクラス
3.2.1. 2つのクラス
3.2.2. モデルオブジェクトクラス
3.2.3. モデルマネージャクラス
3.2.4. サンプルで使われるモデルクラス
3.3 モデルオブジェクトクラスのパターン
3.3.1. 情報保持のためのインスタンス変数
3.3.2. アクセッサ
3.3.3. 保存と読み込み
3.3.4. オブジェクトの破棄
3.4 モデルマネージャクラスのパターン
3.4.1. モデルマネージャへの参照
3.4.2. モデルインスタンスの管理
3.4.3. モデルへのアクセス
3.4.4. 保存と読み込み
3.5 Core Dataによるモデルオブジェクトのパターン
3.5.1. Core Dataでのモデルオブジェクトのモデリング
3.5.2. エンティティを表すクラス
3.6 Core Dataマネージャのパターン
3.6.1. Core Data関連クラスの作成
3.6.2. Core Dataマネージャへの参照
3.6.3. 管理対象オブジェクトの作成
3.6.4. 管理対象オブジェクトの取得
3.6.5. 保存
第4章 メモリ管理のパターン
4.1 Cocoa touchのメモリ管理
4.2 メモリ管理のパターン
4.2.1. 参照カウンタによるメモリ管理
4.2.2. インスタンス変数とオーナーシップ
4.2.3. setterのパターン
4.2.4. releaseのパターン
4.2.5. deallocのパターン
第5章 ビューコントローラのパターン
5.1 ビューコントローラとは
5.2 ビューコントローラのライフサイクル
5.2.1. 初期化
5.2.2. nibファイルの読み込み
5.2.3. ビューコントローラの表示
5.2.4. ビューコントローラの隠蔽
5.2.5. viewの解放
5.3 ビューコントローラの配置の仕方
5.3.1. ナビゲーションコントローラに入れる
5.3.2. モーダルビューとして表示する
5.3.3. 手動で配置する
5.4 ナビゲーションアイテム
5.4.1. UIBarButtonItemの作成と更新
5.4.2. 編集ボタンとeditingプロパティ
5.4.3. キャンセルと保存
5.5 ツールバー
5.5.1. ツールバーの更新
第6章 テーブルのパターン
6.1 テーブルとは
6.1.1. テーブルはiOSの中心
6.1.2. UITableViewとUITableViewCell
6.1.3. テーブルのMVC
6.2 セルのパターン
6.2.1. 標準のセル
6.2.2. contentViewとbackgroundView
6.2.3. サブビューの作成 127
6.2.4. コンテンツのためのアクセッサメソッド
6.2.5. サブビューのレイアウト
6.2.6. セルのハイライト/選択
6.3 データソースのパターン
6.3.1. データソースとは
6.3.2. データソースとしてのモデルマネージャクラス
6.4 表示更新のパターン
6.4.1. 表示更新のタイミング
6.4.2. セルの表示更新のパターン
6.4.3. reloadDataを呼ぶべきとき
6.5 編集のパターン
6.5.1. テーブルの編集モード
6.5.2. 行の削除
6.5.3. 行の並べ替え
第7章 通知のパターン
7.1 通知とは
7.1.1. オブジェクト間の通知
7.1.2. 3種類の通知
7.2 デリゲートによる通知
7.2.1. デリゲートとは
7.2.2. デリゲートメソッドの宣言
7.2.3. デリゲートオブジェクトの宣言
7.2.4. デリゲートメソッドの呼び出し
7.2.5. コントローラ間の通知のパターン
7.3 キー値監視による通知
7.3.1. キー値監視とは
7.3.2. 監視するオブジェクトの登録と解除
7.3.3. 通知の受信
7.3.4. 通知の発生
7.4 NSNotificationによる通知
7.4.1. NSNotificationとは
7.4.2. 通知の登録と解除
7.4.3. 通知の送信
第8章 ネットワークのパターン
8.1 ネットワークプログラミング
8.1.1. ネットワークプログラミングの難しさ
8.1.2. レスポンスパーサとコネクタ
8.2 レスポンスパーサ
8.2.1. NSURLConnectionによる通信
8.2.2. レスポンスパーサのパターン
8.2.3. 非同期通信のためのパターン
8.2.4. 同期通信のためのパターン
8.2.5. XMLパースのパターン
8.3 コネクタ
8.3.1. コネクタクラスの宣言とネットワークアクセス状況
8.3.2. コネクタの操作
8.3.3. コネクタからの通知
8.3.4. ネットワークパターンのさらなる拡張
第9章 iPadへの対応
9.1 複数のiOSデバイスへの対応
9.2 iPad版の仕様策定
9.2.1. 機能は同じでユーザインタフェースが異なる
9.2.2. 画面のレイアウト
9.2.3. クラス設計の確認
9.3 iPad用コントローラの実装
9.3.1. メインnibファイル
9.3.2. RSSPadAppControllerの実装
9.3.3. その他のコントローラの変更
9.3.4. 拡張可能なアーキテクチャ故に
あとがき
索 引