iOS開発における パターンによるオートマティズム
Preview
Preview

iOS開発における パターンによるオートマティズム

Share
Preview
  1. iOS開発における パターンによるオートマティズム
  2. iOS開発における パターンによるオートマティズム
  3. iOS開発における パターンによるオートマティズム
¥3,080 (税込み)
BNNストア / 品切れ
Amazonで購入

Description

高レベルで拡張可能なアプリを半自動的に作る― それが“アプリ開発のオートマティズム”!

本書は、iPhone / iPadアプリ開発についての中級者向けの本です。入門的な事柄を終えた人たちに向けて、より本格的なアプリケーションの作り方を、Mac開発の第一人者 HMDTの木下誠さんが解説します。数々のアプリ開発経験の中で培われたノウハウを凝縮して7カテゴリの“パターン”としてまとめ、それに沿いながらサンプルアプリのRSSリーダを作ることで、効率的な開発のための「型」を読者が体得することを目的にしています。

各章の概要(リードより)

第1章 パターンとは何か

本書の議論は、パターンと呼ばれるものを中心に展開していく。パターンとは、再利用可能な形の小さなソースコードの集合体だ。それを自在に編集しながら組み合わせることで、オートマティックにアプリを開発していく。
この章ではパターンの基本的な考え方を与え、本書で提案する7種のパターンについて紹介する。

第2章 アプリ設計のパターン
アプリの開発を行う際には、まずはじめに設計と呼ばれるフェーズがある。このアプリで何を行い、それをどのように実現するかを決めるものだ。この設計の良し悪しが、開発行程全体に影響してくる。良い設計を行えば開発はスムーズに行われるし、悪い設計であれば頓挫してしまうこともあるだろう。
この章では、アプリ設計をパターン化することを試みる。これにより、ソースコードの実装まで見通した良い設計を、自動的に行うことができるようになるだろう。

第3章 モデルのパターン
モデルはアプリが作成するデータを管理するためのものだ。アプリの機能の範囲は、モデルによって定義されることになるだろう。また、ビューやコントローラといったレイヤはモデルの上に構築されるので、ソースコード全体の基礎となるものでもある。
この章では、モデルのためのパターンを紹介する。情報の保持、永続化、他レイヤからのアクセス方法などがパターン化されるだろう。また実装のための技術として、Core Dataを使用したパターンも紹介する。

第4章 メモリ管理のパターン
メモリ管理は、すべてのプログラミング環境において最重要の課題と言える。確実な管理、ソースコードの書きやすさ、パフォーマンスの良さなどが求められるだろう。
CocoaおよびObjective-Cでは、参照カウンタをベースとしてメモリ管理機構が提供される。この使用方法をパターン化しよう。このパターンに従えば、メモリ管理の問題は発生しないことになる。

第5章 ビューコントローラのパターン
Cocoa touchでは、ビューコントローラと呼ばれるクラスがコントローラレイヤを担うことになる。実際のCocoa touchプログラミングでは、このクラスの実装が中心となるだろう。
この章では、ビューコントローラが最低限行う仕事を明確にし、それらをパターン化していく。

第6章 テーブルのパターン
テーブルは、iPhoneで最もよく使われるユーザインタフェースだろう。便利で多機能なユーザインタフェースなのだが、それ故に複雑なプログラミングも求められる。だがここまで説明してきたパターンを組み合わせることで、テーブルの実装もオートマティックに行うことができる。これがパターンの強みだ。
この章では、モデルのパターンやビューコントローラのパターンを組み合わせて、テーブルプログラミングをパターン化する手法を紹介する。テーブルへの値の表示、更新、さらに編集までもがパターン化されるだろう。

第7章 通知のパターン
アプリの内部に様々なオブジェクトが登場してくると、それらをどのように連携させるかが重要になってくる。そのためには、オブジェクト間で通知を行う手段を明快にしておく必要がある。
この章では、オブジェクト間の通知に関するパターンを紹介しよう。3種類の通知のパターンがあるので、これらを状況に応じて使い分けることになる。

第8章 ネットワークのパターン
現在のコンピューティング環境では、ネットワークプログラミングは不可避のものだろう。Cocoaでもネットワークにアクセスする機能は簡単に使うことができる。だが、それを使ってアプリを作成するとなると、また話は違ってくる。ネットワークプログラミングでは、様々なことを考慮しなくてはいけないからだ。
この章では、ネットワークプログラミングをパターン化することを試みる。ネットワークアクセスをいくつかのパーツに分割し、それぞれをパターンとして定義していくのだ。これらを組み合わせることで、様々なネットワークサービスに対応するプログラミングを行えるだろう。

第9章 iPadへの対応
本書はここまで、iPhone上で動作させることを前提に話を進めてきた。この章では、これをiPadで動かすことについて議論しよう。ここでも役に立つのは、MVCの考え方である。この概念にさえきっちり則っていれば、別デバイスへの対応はそれほど難しい話ではない。

ISBN:978-4-86100-734-7
定価:本体 2,800円+税
仕様:B5判変型/208ページ
発売日:2011年02月09日
著者:木下 誠

Contents

本書の目的
パターンの目次

第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. 拡張可能なアーキテクチャ故に

あとがき
索 引

Errata

初版第1〜2刷
P.110
8行目
誤:詳しくは、「8.2.5. コントーラ間の通知のパターン」で詳しく議論するので、
正:詳しくは、「7.2.5. コントーラ間の通知のパターン」で詳しく議論するので、
P.126
真ん中の図
誤:UITextViewCell
正:UITableViewCell
P.148 デリゲートのメカニズムを説明しよう。まず、呼び出し元と呼び出し先が1対1で定義される。このとき、呼び出し先のことをデリゲートオブジェクトとも呼ぶ。そして、ここがいちばんの特徴なのだが、呼び出し元でメッセージ送信に使われるメソッド群を定義するのだ。これを、デリゲートメソッドと呼ぶ。呼び出し先は、このデリゲートメソッドを実装して、自身をデリゲートオブジェクトとして登録する。そしてイベントなどが発生すると、呼び出し元はデリゲートオブジェクトのデリゲートメソッドを呼び出すのだ。これが、デリゲートのメカニズムである。
P.148
誤:例として、Cocoa touchが提供している、UITalbeView
正:例として、Cocoa touchが提供している、UITableView
Related Books