2013年11月03日

新刊:iOS Core Data 徹底入門

_SL500_AA300_iOSのCore Dataをターゲットに、データの扱いを段階的に解説する「iOS Core Data 徹底入門」が発売されました。




◎Amazon
iOS Core Data 徹底入門
  発売日:2013/11/01
  出版社:秀和システム
  ページ数:520ページ
  価格:3,150円



目次

1 データの永続性とは
 1.1 データの保存を考えてみよう
  1.1.1 メモリへの記録
  1.1.2 ストレージへの記録
  1.1.3 データの保存が2段階に分かれる理由
  1.1.4 ストレージに記録するための様々な手法
  1.1.5 この本のロードマップ

 1.2 知っておいて欲しい事
  1.2.1 統合開発環境のXcode
  1.2.2 サンプルのプロジェクトについて
  1.2.3 Objective-C言語
  1.2.4 クイックヘルプ
  1.2.5 いくつかの取り決め

 1.3 参考になるApple開発者向けドキュメント
  1.3.1 本書を読む前に読んでおきたい参考ドキュメント
  1.3.2 本書を補完するドキュメント
  1.3.3 この本の内容について書かれたドキュメント


2 主役はモデルオブジェクト
 2.1 コンピュータは仮想世界
  2.1.1 仮の世界に見立てた遊びとは
  2.1.2 モデルオブジェクト
  2.1.3 ビューオブジェクト
  2.1.4 コントローラオブジェクト
  2.1.5 MVC

 2.2 オブジェクト間の連携
  2.2.1 デリゲートデザインパターン
  2.2.2 ターゲットアクションデザインパターン

 2.3 MVCの特性
  2.3.1 ビューの差し替え
  2.3.2 再利用性に優れるMVC
  2.3.3 モデルの拡張
  2.3.4 コントローラの変更を伴うモデルの拡張

 2.4 モデルの永続性
  2.4.1 NSUserDefaultsによる値の永続性

3 もぐら叩きゲームを作ろう
 3.1 モグラを叩け!
  3.1.1 ゲームの概要
  3.1.2 ゲームの使い方
  3.1.3 クラス構成
  3.1.4 実装デザイン
  3.1.5 MBMolehillView
  3.1.6 MBMolehill
  3.1.7 MBAppDelegate
  3.1.8 モグラの穴を贅沢な表示にする
  3.1.9 ゲームレベルの追加

 3.2 レベル設定に永続性を持たせる
  3.2.1 1つの値を1つのファイルに残してみる
  3.2.2 ファイルの名前と位置
  3.2.3 利用できるディレクトリのパス文字列の取り出し
  3.2.4 fopenでファイルの準備
  3.2.5 fwriteでファイルへ書き込む
  3.2.6 fcloseでファイル操作の後始末をする
  3.2.7 書き出されたファイルを探す
  3.2.8 hexdumpでファイルの中身をのぞいてみる
  3.2.9 デバッガでメモリの中身をのぞいてみる
  3.2.10 freadでファイルから読みこむ
  3.2.11 ストレージへの記録とは何か?


4 ゲームの成績表を残そう
 4.1 成績ファイル
  4.1.1 成績管理モデルの追加
  4.1.2 fwriteを繰り返す
  4.1.3 freadを繰り返す
  4.1.4 fseekで読み込み位置を移動させる

 4.2 ファイルフォーマット
  4.2.1 記録数の追加
  4.2.2 バージョン
  4.2.3 ファイルの可搬性
  4.2.4 そのファイルは何を表現したものか
  4.2.5 マジックナンバー

 4.3 成績ファイルのバージョンアップ
  4.3.1 成績ファイル バージョン1
  4.3.2 removeで不要なファイルを削除する
  4.3.3 記録数の更新
  4.3.4 バイナリファイル
  4.3.5 成績ファイルフォーマット仕様書
  4.3.6 ビット
  4.3.7 符号
  4.3.8 エンディアン
  4.3.9 バイト境界
  4.3.10 バイナリファイルで考慮する点
  4.3.11 テキストファイル
  4.3.12 CSVファイル
  4.3.13 バイナリファイル v.s. テキストファイル

 4.4 成績ファイルにオブジェクトを記録するには
  4.4.1 NSCodingプロトコル
  4.4.2 NSKeyedArchiverとNSKeyedUnarchiver
  4.4.3 NSArrayやNSDictionaryの利用
  4.4.4 例外ハンドラ:例外の受け取り処理
  4.4.5 NSUserDefaultsの正体
  4.4.6 NSPropertyListSerialization
  4.4.7 NSUserDefaultsの値を設定アプリで調整
  4.4.8 NSUserDefaultsの使いどころ

 4.5 成績ファイルをXMLファイルとして書き出す
  4.5.1 XMLファイル
  4.5.2 NSDictionaryを使ったXMLファイル書き出し
  4.5.3 オブジェクトのファイルへの読み書きまとめ


5 DBMSを利用したファイル操作
 5.1 生徒の名簿
  5.1.1 生徒名簿モデルの追加
  5.1.2 生徒名関連のビュー群の追加
  5.1.3 成績表のバージョンアップ

 5.2 直接的な記録と関係付けた記録
  5.2.1 関係付けされていない2つの表
  5.2.2 関係付けされた2つの表
  5.2.3 関係付けた表のメリット・デメリット

 5.3 表+関係=データベース(DBMS)
  5.3.1 DBMSで使われるSQL
  5.3.2 テーブル・レコード・カラム
  5.3.3 スキーマ
  5.3.4 SQL文

 5.4 実践SQLite
  5.4.1 ターミナル上でのSQLite実践
  5.4.2 SQLite用ファイルの作成
  5.4.3 成績テーブルの作成(create)
  5.4.4 成績テーブルにレコードを追加(insert)
  5.4.5 レコードの取り出し(select,where,order by)
  5.4.6 カラムの追加(alter table…add column)
  5.4.7 レコードの更新(update)
  5.4.8 レコードの削除(delete)
  5.4.9 レコードの取り出し(like)
  5.4.10 レコードの集計(sum,count,avg)
  5.4.11 テーブルの削除(drop,vacuum)

 5.5 データベースの設計 ?テーブルの関係付け?
  5.5.1 正規化
  5.5.2 ER図
  5.5.3 1対多の関係
  5.5.4 1対1の関係
  5.5.5 多対多の関係

 5.6 ER図を反映させたデータベース
  5.6.1 テーブル作成(プライマリキー指定)
  5.6.2 primary key制約
  5.6.3 sqlite3での実践
  5.6.4 テーブルを合成して値を取り出す


6 SQLiteをアプリに組み込もう
 6.1 SQLiteライブラリをプロジェクトへ追加する
  6.1.1 SQLiteを扱うオブジェクトの準備
  6.1.2 SQLiteの扱い方
  6.1.3 テーブルの作成
  6.1.4 SQL文の実行
  6.1.5 レコードの追加
  6.1.6 XMLファイルからのコンバート作業
  6.1.7 レコードの取り出し
  6.1.8 成績レコードの追加時の注意点

 6.2 モグラたたきゲームへ機能を追加する
  6.2.1 UIViewControllerの導入
  6.2.2 MBMainViewController
  6.2.3 成績管理用のカスタムUIViewController群
  6.2.4 MBAdminViewControllerのビュー群
  6.2.5 MBItemsViewControllerのビュー群
  6.2.6 MBRecordViewControllerのビュー群
  6.2.7 ストーリーボードの導入
  6.2.8 画面遷移およびモデルオブジェクトの受け渡し
  6.2.9 教師名簿モデルの準備
  6.2.10 教師名簿モデルのGUI上への反映
  6.2.11 成績への担当者設定機能追加のためのMBRecordsの拡張
  6.2.12 成績レコードの編集
  6.2.13 成績レコードの削除
  6.2.14 SQLite(DBMS)を導入する価値
  6.2.15 Core Dataへと続く道

 6.3 KVOを使った連携
  6.3.1 値の変更を見張る
  6.3.2 KVC(Key-Value Coding:キー値コーディング)


7 Core Dataフレームワークをアプリに組み込もう
 7.1 管理オブジェクト:NSManagedObject
  7.1.1 ER図=モデルの情報
  7.1.2 Xcodeに組みこまれたモデルエディタ
  7.1.3 エンティティの追加
  7.1.4 エンティティへの属性追加
  7.1.5 エンティティ間の関係付け

 7.2 Core Dataに管理されるモデルの利用
  7.2.1 Core Dataモデルの追加
  7.2.2 NSManagedObjectContext
  7.2.3 ストアコーディネータ:NSPersistentStoreCoordinator
  7.2.4 モデル情報:NSManagedObjectModel
  7.2.5 モデル情報の読み込み
  7.2.6 永続性保証に利用するストレージ記録機構の指定
  7.2.7 永続ストア
  7.2.8 作成されるSQLiteファイル

 7.3 データのインポート
  7.3.1 レコード情報からNSManagedObjectへ
  7.3.2 NSManagedObjectの生成
  7.3.3 NSManagedObjectへの値の設定
  7.3.4 NSManagedObject間の関係付け(対1)
  7.3.5 NSManagedObject間の関係付け(対多)
  7.3.6 永続性の保証

 7.4 NSManagedObjectの画面への反映
  7.4.1 NSManagedObjectのフェッチ(取り出し)
  7.4.2 NSManagedObjectの追加
  7.4.3 成績ごとの値の変更や担当教師の取り扱い
  7.4.4 NSManagedObjectの削除


8 Core Dataをより理解するために
 8.1 NSManagedObjectとエンティティ
  8.1.1 コマンドラインツールプロジェクトの準備
  8.1.2 NSManagedObjectModelの作成
  8.1.3 NSPersistentStoreCoordinatorの作成
  8.1.4 NSManagedObjectContextの作成
  8.1.5 NSManagedObjectの作成
  8.1.6 永続性の保証
  8.1.7 NSManagedObjectへのカテゴリ宣言を使ったアクセス
  8.1.8 カテゴリ宣言の注意点
  8.1.9 NSManagedObject派生クラス
  8.1.10 エンティティの属性用アクセサメソッドの準備
  8.1.11 カスタムクラスのエンティティの属性用プロパティ宣言
  8.1.12 エンティティの属性用アクセサメソッドのオーバーライド時の注意点

 8.2 NSManagedObject間の関係
  8.2.1 Core Data Model Editorの利用
  8.2.2 関係の一括設定
  8.2.3 個別の関係の変更(一括設定の応用)
  8.2.4 個別の関係の変更(関係設定用のアクセサメソッド)
  8.2.5 個別の関係の変更(代理人の利用)
  8.2.6 XcodeによるNSManagedObject派生クラスファイルの自動生成
  8.2.7 NSManagedObject削除時の関係の調整:Delete Rule
  8.2.8 関係数についての設定
  8.2.9 関係の順序付け
  8.2.10 一時的にするか

 8.3 NSManagedObjectのフェッチの詳細
  8.3.1 エンティティごとのフェッチ
  8.3.2 フェッチ結果の並び順指定
  8.3.3 フェッチ結果の範囲指定
  8.3.4 フェッチの条件指定
  8.3.5 NSPredicate
  8.4 Fetched Propertie(フェッチ済みプロパティ)
  8.4.1 フェッチ済みプロパティを使ったフェッチ処理記述の簡素化
  8.4.2 フェッチ済みプロパティへのフェッチ条件の設定

 8.5 属性値の制限
  8.5.1 数値の制限
  8.5.2 日付の制限
  8.5.3 文字列の制限
  8.5.4 検証のタイミング
  8.5.5 一時的にするか
  8.5.6 値が未設定のままでも保存を許可するか
  8.5.7 索引指定
  8.5.8 その他の設定
  8.5.9 属性値の初期値を指定


9 NSManagedObjectのカスタマイズ
 9.1 Undo(やり直し)
  9.1.1 Undoを利用できるテストアプリケーション
 9.2 NSManagedObjectからカスタムクラスへ
  9.2.1 2種類あるNSManagedObjectの作成パターン
  9.2.2 初期化時の判別
  9.2.3 -awakeFromInsert
  9.2.4 -awakeFromFetch
  9.2.5 フォールティング
  9.2.6 アクセサメソッドのオーバーライド
  9.2.7 プリミティブアクセサメソッド
  9.2.8 属性値を加工するメソッド
  9.2.9 属性の変化の見張り
  9.2.10 後片付け

 9.3 属性の型の拡張
  9.3.1 Transformable型
  9.3.2 Transformable型非対応
  9.3.3 Transformable型(カスタム変換装置使用)
  9.3.4 Binary Data型
  9.3.5 Undefined型+Transient
  9.3.6 Undefined型+Transient(非オブジェクト)
  9.3.7 非オブジェクトの-setNilValueForKey:対応

 9.4 実用的なサンプルアプリでフォールティングを学ぶ
  9.4.1 大サイズのオブジェクトを扱うテストアプリケーション
  9.4.2 容量が必要な属性はエンティティを分ける
  9.4.3 フォールトの発動を利用した遅延読み込み
  9.4.4 強制的にフォールト化させる
  9.4.5 SQLite永続ストア利用時のBinary Data型のオプション
  9.4.6 複数の永続ストアにエンティティを分散する


10 図形アプリへのCore Dataの適用
 10.1 モデル表現の幅を広げる
  10.1.1 図形アプリケーションdraw
  10.1.2 drawを構成するクラス
  10.1.3 エンティティの派生・循環関係のモデリング
  10.1.4 EDModel
  10.1.5 派生元エンティティ指定でのフェッチ
  10.1.6 ビューとモデルの連携
  10.1.7 NSManagedObjectID

 10.2 バージョン管理
  10.2.1 Core Dataによるバージョン管理
  10.2.2 モデルファイルの変更
  10.2.3 新バージョンのモデルファイルの追加
  10.2.4 Lightweightマイグレーション
  10.2.5 属性名の変更
  10.2.6 マッピングモデルを使ったマイグレーション
  10.2.7 属性のマッピング
  10.2.8 NSEntityMigrationPolicy
  10.2.9 Three-Stage Migration
  10.2.10 FUNCTION

 10.3 巨大な永続ストアのマイグレーション
  10.3.1 マイグレーションが必要かを事前チェック
  10.3.2 アクティビティインジケータ


11 モグラたたきゲームの完成
 11.1 生徒・日付別にまとめる
  11.1.1 NSFetchedResultsController
  11.1.2 NSFetchedResultsControllerのセクション指定
  11.1.3 NSManagedObjectの追加・削除・変更に対応
  11.1.4 生徒と日付の切り替え
  11.1.5 キャッシュ
  11.1.6 利用者を待たせない

 11.2 モデルのバージョンアップ
  11.2.1 バージョン2モデルファイル
  11.2.2 バージョン1→2マッピングモデルファイル

 11.3 モグラたたきゲームバージョンアップ実装
  11.3.1 マイグレーションをどこに組み込むか
  11.3.2 MBMigrationViewController
  11.3.3 並び替え機能の追加

 11.4 完成





■記事トラックバック
Blog People
Blog People
Blog People
にほんブログ村




ipodnavi at 22:46│Comments(0)TrackBack(0)

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
iPod Link & Video
Apple Web Link
Apple Computer
iPodサポートTutorial
iTunes サポート(Win/Mac)
iTunes Storeチュートリアル
QuickTime Pro(Win/MacOSX)サポート学習HDギャラリー
iPod & iTunes Tips Link
iPodのHDフォーマットを調べる方法
iPodのH/Dフォーマットを調べる方法
iPod に赤い“X”アイコンが表示される
iPod に赤い“X”アイコンが表示される
誤ったパスコードによって赤い無効画面が表示される
誤ったパスコードによって赤い無効画面が表示される
iPod nanoはMacのキーボードでは正常動作しない
iPod nanoはMacのキーボードでは正常動作しない
Apple Tips Link
GarageBandでPodcastを録音する
QuickTimeProでオーディオPodcastを作る(Win/Mac)
QuickTimeProでビデオPodcastを作る(Win/Mac)
QuickTimeProでiPod用ビデオを作る
MPEG-1メディアの使用方法
Inside QuickTime(和訳)
Inside QuickTime(和訳)
Apple Product Video
iPhone CM
iPhone TV Ads
iPhone CM
iPad TV Ads
Apple 基調講演 ビデオ
Apple Events - Join the crowd
Apple - Events
Podcast : Apple Keynote
Podcast : Apple Keynoteicon
Video / Musicサイト
Mercedes Mixed Tape
iMix by i-Power Style Navi
穏やかな夜にSmooth Jazz Vol.1
穏やかな夜にSmooth Jazz Vol.2
穏やかな夜にSmooth Jazz Vol.3
恋人のためのSmooth Jazz - 朝編
ちょいワル オヤジのSmooth Jazz
しっとり聞きたいPOPS
ウキウキ POPS
ウキィウキィ Smooth Jazz
Beautiful Smooth Jazz
Xmas Selection
Vol.1:Xmas 2010
Vol.2:Xmas 2010 J-Pops
Vol.3:Xmas from Disney !!
Vol.4:Xmas 2010 J-Pops 2
検 索
Google
Categories
Archives
携帯端末用コード
QRコード