Reality Keysと連携するiOSアプリをつくる 第6回 次世代Mobile DB "Realm"
はじめに
Realm Tech Talk with JP Simard #1に参加して、予想以上に使いやすそうだったので、ByMyCoinアプリ版のローカルDBにはRealmを利用することにします。
目次
- 次世代Mobile DB "Realm"とは
- 実装
次世代Mobile DB "Realm"とは
Realmは、SQLiteやCore Dataの代替テクノロジーとして有力なモバイルデータベースです。私が惹かれた点は以下2点です。
- 使いやすい。(Core Dataは多機能だけど難しい)
- 既に多くのプロダクトで使われている。国内だとchatworkのアンドロイドアプリで使われているし、CoinDeskアプリでも使われている!(ビットコインコミュニティ以外でビットコインの話が出るのウケる)
実装
契約クラス(モデル)
import UIKit import Realm class Contract: RLMObject { dynamic var p2sh_address = "" // API Response dynamic var activity = "" dynamic var created_datetime = "" (省略) }
新規登録
// 契約作成 let newContract = createDummyContract() let realm = RLMRealm.defaultRealm() realm.beginWriteTransaction() realm.addObject(newContract) realm.commitWriteTransaction()
検索
var contracts = Contract.allObjects().sortedResultsUsingProperty("id", ascending: true)
Realm Browserを使ったデータ確認
Realm Browserが使えるので便利。
以下に保存されているdefault.realmを読み込む。
/Users/[User]/Library/Developer/CoreSimulator/Devices/[DeviceID]/data/Containers/Data/Application/[App]
こんな感じ
まとめ
すごい使いやすそうです。ただ複雑なクエリーが必要な場合など制約もありそうです。しばらく使って試します。
おまけ
7:37にJP SimardによるRealmの説明。最後にBitcoinSwiftの説明があります..w
ReactiveCocoaとか興味のあることが尽きない。何に絞るか考えないと。
参考
Impression of realm java ChatWorkでの事例
CoreDataはもう古い?新しいモバイルデバイス向けデータベース「Realm」を使ってみた (Swift/Objective-C)