書籍概要

軽量・高速モバイルデータベース Realm入門

著者
発売日
更新日

概要

Realm(レルム)はSQLiteやCore Dataの代替となるモバイルデータベースで,メモリ効率が良く,高速に動作することから多くのモバイルアプリ開発者に注目されています。本書はRealmをテーマにした国内初の技術書で,モバイルデータベースの基本的なことからリファレンスや利用する際の注意点/Tipsに加え,Swift 3をベースにしたiOSアプリ開発のサンプルソースを盛り込みながら解説していきます。

こんな方におすすめ

  • iOSアプリ開発でデータベースをまったく使ったことがない方
  • SQLiteやCore Dataをよりシンプルな形に置き換えたい方
  • Realmを使ったことはあるが,より実践的なアプリ開発での使用方法を知りたい方

サンプル

目次

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ブラウザ

サポート

ダウンロード

(2017年10月11日更新)

本書のサンプルソースがダウンロードできます。次のファイルをダウンロード後,解凍してください。利用に際しての注意点は本書viiページをご覧ください。
なお,ご利用のXcodeのバージョンによってサンプルソースが異なりますので,ご注意ください。

ダウンロード(Xcode 8.3系)
20171011_RealmBook_Xcode8.3.zip(約212MB)
 
ダウンロード(Xcode 8.2系以下)
20170311_RealmBook.zip(約195MB)

※ダウンロードファイルの違いは,利用している「Dynamic Framework」のみとなります。

商品一覧