Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Couchbase MeetUP
Tokyo #16
会場案内
•館内禁煙です。
•お手洗いは入り口逆のトビラをでた先です。
今日のアジェンダ
1. CoucbaseMobileとは

Couchbase Japan 河村さん
2. Couchbaseモバイル vs. Realm (仮)

JCBUGコミュニティリーダー 上津原一利
3. モバイルファーストで業務効率...
COUCHBASE MEETUP
COUCHBASE LITE - REALM
比較してみた。
上津原 一利
アジェンダ
▸ 自己紹介
▸ 今回の目的
▸ 比較内容
▸ 各種比較結果
▸ 感想
自己紹介
自己紹介
上津原 一利(ウエンツ)
▸ iOSがだいたいメイン
▸ 基本フロントエンドばっかり
▸ いろんな技術に手を出してみるのが
好きです
▸ モバイル系∼ゲームエンジンあたり
がさわれます
今回の目的
今回の目的
モバイルデータベースが選べるように
▸ 3年前はSQLiteかそれをラップした、使い方を選ぶもの
だった

例)SQLiteを使うか、CoreDataを使うかCouchbaseLiteを
使うか
▸ そこで新たに、Realmというモ...
今回の目的
REALMってなんぞや
▸ Realm is a replacement for SQLite & Core Data.
▸ モバイル向けの高速なDB
▸ 独自DB
▸ iOS/Android
今回の目的
どういう場合に何を選ぶか?
▸ データベースにも得意・不得意がある
▸ そこで、使い勝手や使い方を見て、

Objective-Cのプロジェクトにおいて

どういう時にCouchbaseLite、Realmを使うのが良いのか、
簡単...
比較内容
比較内容
簡単なCRUDアプリケーションを作って比較
▸ XcodeのMasterDetailApplicationに組み込む
▸ C:日付データとチェックを入れる
▸ R:データをすべて読み込む
▸ U:チェック情報を書き直す
▸ D:データ...
各種比較結果
各種比較結果
組み込む
CouchbaseLite Realm
Cocoapods 可 可
どちらもCocoapodsを使ってインストールが可能。インストールの手間はあまり考える必要はない。
各種比較結果
DATABASE
CouchbaseLite Realm
複数のDB 可? 可
CouchbaseLiteは、ManagerでDB名を指定しそのデータベースを使い回すのが基本的な使い方だが

RealmはDefaultのものがまず...
各種比較結果
CREATE
CouchbaseLite Realm
モデル 可 可
モデルなし
の操作
可 不可?
CouchbaseLiteは連想配列からもモデルからもデータを作ることが出来る。
Realmはまずはモデルクラスを作って、そこか...
各種比較結果
CREATE
▸ カラムの追加の時
Realmはスキーマレスな存在ではない。

例えば、モデルに date というカラムだけを使っていたが、

後から checked というカラムを追加したい場合、マイグレートロジックを追加する必...
各種比較結果
READ
CouchbaseLite Realm
クエリ Map/Reduce NSPredicateライク
CouchbaseLiteは連想配列からもモデルからもデータを作ることが出来る。
Realmはまずはモデルクラスを作って...
各種比較結果
READ
CouchbaseLiteには特定クエリを監視して変更が起きたらロジックを起動するLiveQueryがある。

Realmはトランザクションが完了するたびにロジックを起動する通知機能がある。
データの変更が起きた時にアク...
各種比較結果
UPDATE
CouchbaseLite Realm
Updateの
しかた
ドキュメントに
データをPut
objectにデータを代
入し直す
どちらもUpdateのしかたはシンプルです。

元データを取ってきて中身を変更する。...
各種比較結果
DELETE
CouchbaseLite Realm
deleteのし
かた
Documentを
Delete
objectをDelete
これらも特に違いはない。
感想
感想
COUCHABSE LITE経験者から見たREALM
▸ RLMResultというクラスが面白い

データのコピーではなく生きたデータになっている

それ故にデータ更新後にデータ取得をする必要が無い。
▸ RDBっぽい

キッチリした管理...
感想
REALMを使ってからのCOUCHBASE LITE
▸ モデルクラスがあったほうがヤッパリ便利
▸ Map/Reduceはやっぱりよくわからない

使い方の理解がまだハードルがある
▸ RealmからServerSyncするのは面倒くさ...
感想
ローカルのみか?サーバ込みか?が分かれどころ
▸ ローカルのみならRealmのほうが理解しやすく、学習コストが低く運用ができそう。
キャッシュとしての利用とかに良さそう。

ただし、カラムの追加とかが出るとちょっと面倒。

▸ Couch...
質問とかあれば
Upcoming SlideShare
Loading in …5
×

Couchbase lite realm 比較

2,128 views

Published on

Couchbase Meet Up #16
couchbaseLiteとrealmを比較してみた

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Couchbase lite realm 比較

  1. 1. Couchbase MeetUP Tokyo #16
  2. 2. 会場案内 •館内禁煙です。 •お手洗いは入り口逆のトビラをでた先です。
  3. 3. 今日のアジェンダ 1. CoucbaseMobileとは
 Couchbase Japan 河村さん 2. Couchbaseモバイル vs. Realm (仮)
 JCBUGコミュニティリーダー 上津原一利 3. モバイルファーストで業務効率化!ローカルデータベースが作業 員を救う!
 ウイングソリューションズ株式会社 木次恭一氏 4. IoTプラットフォーム「Zabuton」!
 株式会社アットウェア 矢納正浩氏 5. 次回イベントの告知
  4. 4. COUCHBASE MEETUP COUCHBASE LITE - REALM 比較してみた。 上津原 一利
  5. 5. アジェンダ ▸ 自己紹介 ▸ 今回の目的 ▸ 比較内容 ▸ 各種比較結果 ▸ 感想
  6. 6. 自己紹介
  7. 7. 自己紹介 上津原 一利(ウエンツ) ▸ iOSがだいたいメイン ▸ 基本フロントエンドばっかり ▸ いろんな技術に手を出してみるのが 好きです ▸ モバイル系∼ゲームエンジンあたり がさわれます
  8. 8. 今回の目的
  9. 9. 今回の目的 モバイルデータベースが選べるように ▸ 3年前はSQLiteかそれをラップした、使い方を選ぶもの だった
 例)SQLiteを使うか、CoreDataを使うかCouchbaseLiteを 使うか ▸ そこで新たに、RealmというモバイルDBが出てきた
 https://realm.io/jp/
  10. 10. 今回の目的 REALMってなんぞや ▸ Realm is a replacement for SQLite & Core Data. ▸ モバイル向けの高速なDB ▸ 独自DB ▸ iOS/Android
  11. 11. 今回の目的 どういう場合に何を選ぶか? ▸ データベースにも得意・不得意がある ▸ そこで、使い勝手や使い方を見て、
 Objective-Cのプロジェクトにおいて
 どういう時にCouchbaseLite、Realmを使うのが良いのか、 簡単なCRUDアプリケーションを実装しながら比較する。 ▸ ※詳しく徹底的に調べたというわけではないので、
 参考程度に聞いて下さい。
  12. 12. 比較内容
  13. 13. 比較内容 簡単なCRUDアプリケーションを作って比較 ▸ XcodeのMasterDetailApplicationに組み込む ▸ C:日付データとチェックを入れる ▸ R:データをすべて読み込む ▸ U:チェック情報を書き直す ▸ D:データを削除する
  14. 14. 各種比較結果
  15. 15. 各種比較結果 組み込む CouchbaseLite Realm Cocoapods 可 可 どちらもCocoapodsを使ってインストールが可能。インストールの手間はあまり考える必要はない。
  16. 16. 各種比較結果 DATABASE CouchbaseLite Realm 複数のDB 可? 可 CouchbaseLiteは、ManagerでDB名を指定しそのデータベースを使い回すのが基本的な使い方だが
 RealmはDefaultのものがまず用意され、必要に応じてDBを切り替えて利用ができる。 CouchbaseLiteも複数DBを作成して使い回すことができそうだが、未確認。
  17. 17. 各種比較結果 CREATE CouchbaseLite Realm モデル 可 可 モデルなし の操作 可 不可? CouchbaseLiteは連想配列からもモデルからもデータを作ることが出来る。 Realmはまずはモデルクラスを作って、そこからの操作するのが基本になる。
 モデルを作らずにデータを追加する事もできそうだが、データ検索などはクラス名を利用するため
 あまりモデルを使わない理由はないかも?
  18. 18. 各種比較結果 CREATE ▸ カラムの追加の時 Realmはスキーマレスな存在ではない。
 例えば、モデルに date というカラムだけを使っていたが、
 後から checked というカラムを追加したい場合、マイグレートロジックを追加する必要がある。
  19. 19. 各種比較結果 READ CouchbaseLite Realm クエリ Map/Reduce NSPredicateライク CouchbaseLiteは連想配列からもモデルからもデータを作ることが出来る。 Realmはまずはモデルクラスを作って、そこからの操作するのが基本になる。
 モデルを作らずにデータを追加する事もできそうだが、データ検索などはクラス名を利用するため
 あまりモデルを使わない理由はないかも?
  20. 20. 各種比較結果 READ CouchbaseLiteには特定クエリを監視して変更が起きたらロジックを起動するLiveQueryがある。
 Realmはトランザクションが完了するたびにロジックを起動する通知機能がある。 データの変更が起きた時にアクションを自動で起こす、ということはどちらもできるが、
 特定のクエリを監視してその変化を取得する事ができるのはCouchbaseLiteということになる。
 ちなみにKVOはどちらにもあるのでオブジェクト単位での動作はどっちも可能。 ▸ リアルタイム更新 Realmにはローカルを見れるブラウザが存在する。
 対してCouchbaseLiteはSyncしていればデータの操作をウェブブラウザから可能。
 ローカルのみでデータを取り扱い場合はRealmのほうがわかりやすい。 ▸ データブラウザ
  21. 21. 各種比較結果 UPDATE CouchbaseLite Realm Updateの しかた ドキュメントに データをPut objectにデータを代 入し直す どちらもUpdateのしかたはシンプルです。
 元データを取ってきて中身を変更する。それだけです。 Realmにはプライマリキーを指定していれば、別の機能もあるみたい。
 https://realm.io/jp/docs/objc/latest/#section-20
  22. 22. 各種比較結果 DELETE CouchbaseLite Realm deleteのし かた Documentを Delete objectをDelete これらも特に違いはない。
  23. 23. 感想
  24. 24. 感想 COUCHABSE LITE経験者から見たREALM ▸ RLMResultというクラスが面白い
 データのコピーではなく生きたデータになっている
 それ故にデータ更新後にデータ取得をする必要が無い。 ▸ RDBっぽい
 キッチリした管理がしたいなら良さそう ▸ インメモリでも使える
 ローカルに持たずともインメモリでも使えちゃう。面白い。
 https://realm.io/jp/docs/objc/latest/#in-memory-realm
  25. 25. 感想 REALMを使ってからのCOUCHBASE LITE ▸ モデルクラスがあったほうがヤッパリ便利 ▸ Map/Reduceはやっぱりよくわからない
 使い方の理解がまだハードルがある ▸ RealmからServerSyncするのは面倒くさそう…。
 RealmにはJsonデータからデータをドンと突っ込む機能は特に無 いっぽい。全部実装する必要がある。
 https://github.com/realm/realm-cocoa/blob/master/examples/ osx/objc/JSONImport/main.m
  26. 26. 感想 ローカルのみか?サーバ込みか?が分かれどころ ▸ ローカルのみならRealmのほうが理解しやすく、学習コストが低く運用ができそう。 キャッシュとしての利用とかに良さそう。
 ただし、カラムの追加とかが出るとちょっと面倒。
 ▸ CouchbaseLiteはSyncを使って真価を発揮するタイプ。
 SyncすればWebブラウザでデータ操作もできるし。
 操作にはサーバ担当者も居ると りそうです(MAP/REDUCEの相談とかデータ構造と か)
 ▸ ただし、RealmはObjC/Swift/Androidのみなので、それ以外に利用するならば Couchbase Liteのほうが良い。
  27. 27. 質問とかあれば

×