Realm meetup #3 に参加しました

モバイル向け DB である Realm のミートアップイベントに参加しました。初回は私も発表しました。

3 回目の今回は、日本で Realm の開発をされている岸川さんから近況のアップデート報告があり、 3 件の iOS 側での利用事例がありました。

今回から、発表の内容に関してはビデオ撮影が行われていて、後ほど掲載されることになっているそうです。

Realm を使っていてハマるところとして、

  1. マルチスレッド
  2. マイグレーション
  3. nil / null の扱い

が異口同音に挙げられていました。マルチスレッドの問題に関しては下にどんなことなのかを書きます。マイグレーションに関してはこれまでに使ったことがないので、実感値は伴っていないですが、大変さが伝わってきました。 nil / null に関しては GitHub 上で Work In Progress の Pull Request が進んでいるそうです。

発表の内容を聞いていて、実際にマーケットにリリースされているアプリでの Realm 利用事例が増えてきているなと感じました。

 マルチスレッドに関して

Realm は 2015/05/21 現在、スレッドを飛び越えることができません。 Java のコードで示すと、

public class MyModel extends RealmObject {
  @PrimaryKey private long id;
  @Index  private String name;
  // Getter / Setter は省略
}

こういうモデルオブジェクトがあった場合、

// 実際には Transaction の中でオブジェクトを生成する
MyModel model = realm.createObject(MyModel.class);
new Thread(() -> {
  Log.d(TAG, model.getName());
}).start();

インスタンスとして作られたモデルオブジェクトを、別のスレッドに渡すことができません。別のスレッドの中で Realm オブジェクトを取得し直して、クエリを発行してモデルオブジェクトを取得します。

※ モデルオブジェクトだけでなく、 Realm オブジェクトも渡せません。

スレッド間の受け渡しに関しては、今後の対応予定に入っているそうなので楽しみに待っていたいですね :)

 
4
Kudos
 
4
Kudos

Now read this

Realm meetup #8 参加レポート

2015/10/27、話題のモバイルデータベース技術 “Realm” のミートアップイベントである Realm meetup #8 が、 Sansan 株式会社を会場に行われました。今回は Reporter 枠というイベントの様子をレポートする代わりに優先的に参加できる枠を使っての参加ですので、イベントレポートを書きたいと思います:) Realm Recent Updates まずは Realm の岸川さんと山﨑さんから、 Realm Objective-C,... Continue →