募集ページ
Realm Tech Talk with JP Simard #1 - connpass
http://realm.connpass.com/event/11814/
Realm とは?
Realm の読み方は「レルム」。最近、その動作速度の面などで話題に成っている主にモバイル向けを想定した DB 。想定される活用シーンは現在、 SQLite を使っている様な場面。
Realm: a mobile database that replaces Core Data & SQLite
http://realm.io/
iOS - 次世代mobile版データベース"Realm"を使ってみた - Qiita
http://qiita.com/moriyaman/items/1a2916f4c2b79e934370
Swift + Realm DB をCocoaPodsで導入する手順 - Qiita
http://qiita.com/matscube/items/3ed7de879f4efd460c44
Togetter まとめ
Realm Tech Talk with JP Simard #1 - Togetterまとめ
http://togetter.com/li/786086
セッション
Tech Talk with JP Simard from Realm 登壇者:JP Simard @simjp
※開発者の一人 JP Simard によるセッション
環境は iOS/Android をサポート(筆者注: Mac にも対応)
完全に新規作成されたもの
エンジン部分は C++ 製
マルチプロセスをサポート予定
ライセンスは Apache 2
PC では KVS やマルチプロセスなど新しいイノベーションを含んだ実装が出てきている
その辺りをモバイルに持って来たかった
SQLite の特徴
- FMDB
本体の変更が有った時に修正が必要
ccgus/fmdb
https://github.com/ccgus/fmdb
- YapDatabase
クエリーベースでオブジェクトが取得出来ない。 O/R マッピングを自分で作る必要が有る
Views · yapstudios/YapDatabase Wiki
https://github.com/yapstudios/YapDatabase/wiki/Views
- Couchbase Lite
Couchbase Lite | Couchbase - Mobile Developers
http://developer.couchbase.com/mobile/develop/guides/couchbase-lite/
- LevelDB
LevelDB入門 (基本編) - from scratch
http://yosuke-furukawa.hatenablog.com/entry/2014/05/05/095207
■ 200k 個のデータを Insert した時のベンチマーク
■ Count のベンチマーク
■ Query に一致したレコードを反復処理した時のベンチマーク
GUI を使ったエディタからコードを生成するツールがある
オブジェクト指向で DB を使いたいという思想で実装
DB カラム == Objective-C のプロパティ
ignore プロパティを設定すると使わないカラムを指定する事も可能
swift で書く場合にはプロパティに dynamic 属性を指定
他の DB の場合には複数のステップが必要なものが多いが、 Realm では1ステップで直ぐに書き込まれる
ドットチェインで条件を複数指定可能
DB の処理をプログラムの中に自然な形で書くことが可能
トランザクション機能も有る
通知が有る度に Notification が呼ばれ、その時に行う処理を実装可能
現状、 NSDate は秒までしか処理出来ない(ミリ秒部分が無視される)。これはマルチプラットフォームを為に発生している。改善予定
代わりに NSTimeInterval を使って欲しい
通常は独自の Getter/Setter は使えない。定義しても上書きされる
現状クローズドの Core の部分もこれからオープンソースにする予定
■Realm が使われている日本のアプリ
macaroni [マカロニ]
https://itunes.apple.com/jp/app/gurumenotorendomatome-dumi/id871722891?mt=8
Aplos
https://itunes.apple.com/jp/app/aplos/id910000043?mt=8
■Where to find us
Facebook : j.mp/realmjp
Twitter : twitter.com/realm
GitHub : github.com/realm
StackOverflow : stackoverflow.com/questions/tagged/realm
■QA
Q : 言語で複数のプラットフォーム向けに書く事は出来ないか?
A : Cocoa と Java とバインディングが有るのが… これから統一化できないか頑張ってる
Q : クエリをチェックするコマンドラインツールは有る?
A : 今はない。デスクトップアプリの Realm Browser というツールが公式ページからダウンロード可能
Q : コア部分は SQLite ベースかオリジナルか?
A : SQLite では無い TightDB という実装
※独自実装のエンジンの名前が TightDB みたい
CoreDataはもう古い?新しいモバイルデバイス向けデータベース「Realm」を使ってみた (Swift/Objective-C) - Qiita
http://qiita.com/caesar_cat/items/632d1e85a67f2c65a473
Q : Android の対応状況はこれからも iOS とも足並みを揃えて行く予定ですか?
A : 基本的はどちらも一緒にしていく予定。でも iOS の方が先に実装されるものも出て来るかも
Q : Android ではビルドした時にエラーがでてビルドに失敗したんだけど…
A : 後でコード見ます
Q : インメモリでの実行はサポートされるか?
A : 既に有ります
Cocoa Docs ― Realm: a mobile database that replaces Core Data & SQLite
http://realm.io/jp/docs/cocoa/0.87.1/
Q : 未対応のシンタックスはこれから対応される?
A : 対応済みのものはチュートリアルに記載。サポートしない予定のものはブログにて公開していく予定
Q : Facebook の Parse と比較した事が有るならベンチマークを教えて下さい
A : ロールDBの為だけに Parse を使うのはオススメ出来ない。 Parse 自体は良いもの(ベンチマークについては具体的な話は無し)
イベント告知
最後に Realm 関連のイベントの告知が有りました。
Realm meetup #1 - connpass
http://realm.connpass.com/event/12028/
他の参加者のブログ記事
Realm Tech Talk with JP Simard 1 に行ってきました #realm_jp - やらなイカ?
http://nowsprinting.hatenablog.com/entry/2015/02/21/191139
関連情報
次世代モバイル向けデータベースRealmを使ってみる-Realm Tech Talkに行ってみた!- | Geekroid(仮)
http://mynavi-agent.jp/it/geekroid/2015/03/realm-realm-tech-talk-.html