目次
Part1 入門編
第1章 モバイルデータベース入門
- 1.1 データベースとは
- 1.2 データベースの具体的な使用例
- 1.3 iOSで用意されている保存方法
- 1.4 なぜRealmが作られたのか
第2章 Realmの特徴と利点
- 2.1 テーブル定義(モデル定義)
- 2.2 API
- 2.3 速度
- 2.4 複数のプラットフォームに対応
- 2.5 ユーザサポート
- 2.6 オープンソースソフトウェア(OSS)
Part2 基礎編
第3章 Realmのインストール
- 3.1 Dynamic Framework
- 3.2 CocoaPods
- 3.3 Carthage
第4章 Realmクラス
- 4.1 デフォルトRealmの取得
- 4.2 Realmインスタンス取得時のエラー処理
第5章 モデル定義
- 5.1 モデル定義とは
- 5.2 プロパティ
- 5.3 プライマリキー(主キー)
- 5.4 インデックス(索引)
- 5.5 保存しないプロパティ
- 5.6 モデルクラスの継承するときの注意点
第6章 モデルオブジェクトの生成と初期化
- 6.1 使用するモデル定義
- 6.2 生成と初期化する方法
- 6.3 ネストしたモデルオブジェクトの生成と初期化
第7章 モデルオブジェクトの追加/更新/削除
- 7.1 使用するモデル定義
- 7.2 書き込みトランザクション
- 7.3 モデルオブジェクトの追加
- 7.4 アンマネージドオブジェクト/マネージドオブジェクト
- 7.5 モデルオブジェクトの更新
- 7.6 モデルオブジェクトの削除
- 7.7 書き込みトランザクションのキャンセル
- 7.8 書き込みトランザクションのエラー処理
第8章 モデルオブジェクトの取得
- 8.1 使用するモデル定義
- 8.2 検索結果(Resultsクラス)
- 8.3 クエリ(検索条件)
- 8.4 クエリの構文
- 8.5 クエリの遅延
第9章 自動更新(ライブアップデート)
- 9.1 使用するモデル定義
- 9.2 モデルオブジェクトの自動更新
- 9.3 関連(1対1,1対多,逆方向)の自動更新
- 9.4 検索結果(Results)の自動更新
- 9.5 自動更新の例外
第10章 マルチスレッド
- 10.1 データの整合性(一貫性)
- 10.2 異なるスレッド間でのオブジェクトの制約
- 10.3 異なるスレッド間で同じRealmファイルを扱う
- 10.4 異なるスレッドで更新したデータの反映
- 10.5 Realmインスタンスの内部キャッシュ
- 10.6 Realmファイルのサイズ肥大化について
第11章 通知
- 11.1 通知とは
- 11.2 通知の追加
- 11.3 通知ハンドラの特徴と定義
- 11.4 通知の停止
- 11.5 通知のスキップ
- 11.6 キー値監視(KVO)
- 11.7 プロパティオブザーバ
第12章 Realmの設定
- 12.1 Realmの設定方法(Realm.Configuration構造体)
- 12.2 Realmの各種設定
- 12.3 デフォルトRealmの設定変更
第13章 マイグレーション
- 13.1 マイグレーションとは
- 13.2 マイグレーションを設定する
- 13.3 マイグレーションクラス(Migrationクラス)
- 13.4 マイグレーション処理
- 13.5 何もしないマイグレーション処理
- 13.6 複数世代のマイグレーション
- 13.7 マイグレーション処理を行わずに古いRealmファイルを削除
第14章 その他のクラス/プロトコル
- 14.1 コレクションプロトコル(RealmCollection)
- 14.2 型消去されたラッパークラス(AnyRealmCollection)
第15章 デバッグ
- 15.1 Xcodeでデバッグする方法
第16章 制限事項
- 16.1 一般的な制限事項
- 16.2 Realm Object Server
Part3 活用編
第17章 [逆引き]Realmの取り扱い
- 17.1 Realmファイルを削除する
- 17.2 Realmを別ファイルに保存する
- 17.3 肥大化したRealmファイルのサイズを最適化する
- 17.4 初期データの入ったRealmファイルをアプリに組む込む
- 17.5 異なるRealmにモデルオブジェクトを追加する
- 17.6 JSONからモデルオブジェクトを生成する
- 17.7 異なるスレッド間でオブジェクトを受け渡す
第18章 [逆引き]Realmの注意事項
- 18.1 アプリのバックグラウンドでRealmを使用する場合の注意点
- 18.2 暗号化したRealmとクラッシュレポートツール併用時の注意点
- 18.3 ユニットテスト
- 18.4 暗号化キーの生成と安全な管理方法
- 18.5 暗号化を利用した場合のAppStoreへの審査について
Part4 実装編~Twitterクライアントを作る
第19章 基本動作の開発
- 19.1 Twitterクライアントを作る
- 19.2 ツイートを表示する
- 19.3 ツイートにエンティティを追加する
- 19.4 タイムラインを表示する
- 19.5 通知を使いツイートを動的に更新する
- 19.6 ツイートをバックグラウンドスレッドで追加する
- 19.7 ツイートを削除する
- 19.8 タイムラインをフィルタリングする
第20章 応用的な開発
- 20.1 関連付いていないモデルの削除
- 20.2 仕様変更のマイグレーションに対応する
- 20.3 複数ユーザのログインに対応する
- 20.4 その後の開発
Appendix A APIリファレンス
- A.0 目次
- A.1 クラス
- A.1.1 Object
- A.1.2 Realm
- A.1.3 Results
- A.1.4 List
- A.1.5 LinkingObjects
- A.1.6 Migration
- A.1.7 Schema
- A.1.8 ObjectSchema
- A.1.9 Property
- A.1.10 RealmOptional
- A.1.11 AnyRealmCollection
- A.1.12 RLMIterator
- A.1.13 ThreadSafeReference
- A.2 構造体
- A.2.1 Realm.Configuration
- A.2.2 Realm.Error
- A.2.3 PropertyChange
- A.2.4 SortDescriptor
- A.3 列挙型
- A.3.1 Realm.Notification
- A.3.2 RealmCollectionChange
- A.3.3 ObjectChange
- A.4 プロトコル
- A.4.1 RealmCollection
- A.4.2 RealmOptionalType
- A.4.3 MinMaxType
- A.4.4 AddableType
- A.4.5 ThreadConfined
- A.5 関数/タイプエイリアス
- A.5.1 関数
- A.5.2 タイプエイリアス
Appendix B 付録/ツール
- B.1 モデル定義のチートシート
- B.2 モデルクラスのテンプレート
- B.3 Realmブラウザ
第19章 基本動作の開発
- 19.1 Twitterクライアントを作る
- 19.2 ツイートを表示する
- 19.3 ツイートにエンティティを追加する
- 19.4 タイムラインを表示する
- 19.5 通知を使いツイートを動的に更新する
- 19.6 ツイートをバックグラウンドスレッドで追加する
- 19.7 ツイートを削除する
- 19.8 タイムラインをフィルタリングする
第20章 応用的な開発
- 20.1 関連付いていないモデルの削除
- 20.2 仕様変更のマイグレーションに対応する
- 20.3 複数ユーザのログインに対応する
- 20.4 その後の開発
Appendix A APIリファレンス
- A.0 目次
- A.1 クラス
- A.1.1 Object
- A.1.2 Realm
- A.1.3 Results
- A.1.4 List
- A.1.5 LinkingObjects
- A.1.6 Migration
- A.1.7 Schema
- A.1.8 ObjectSchema
- A.1.9 Property
- A.1.10 RealmOptional
- A.1.11 AnyRealmCollection
- A.1.12 RLMIterator
- A.1.13 ThreadSafeReference
- A.2 構造体
- A.2.1 Realm.Configuration
- A.2.2 Realm.Error
- A.2.3 PropertyChange
- A.2.4 SortDescriptor
- A.3 列挙型
- A.3.1 Realm.Notification
- A.3.2 RealmCollectionChange
- A.3.3 ObjectChange
- A.4 プロトコル
- A.4.1 RealmCollection
- A.4.2 RealmOptionalType
- A.4.3 MinMaxType
- A.4.4 AddableType
- A.4.5 ThreadConfined
- A.5 関数/タイプエイリアス
- A.5.1 関数
- A.5.2 タイプエイリアス
Appendix B 付録/ツール
- B.1 モデル定義のチートシート
- B.2 モデルクラスのテンプレート
- B.3 Realmブラウザ