Realm Meetup #11に参加してきました

1/28に株式会社SansanでおこなれたRealm meetup #11に参加してきました。

realm.connpass.com

本日はそのときのまとめ + 感想を記載していきます。

LT1 Realm Java Recent Update @zaki50 さん

Android版Realmの最新バージョンアップの情報。

speakerdeck.com

Realm0.87.0 から0.87.3になったときの変更点と今後起きる大きな変更点について発表されてました。 今後、Realmを導入する際にはdependenceでなくgradle-pluginを入れる形で対応する必要があるとのこと。 従来のAnnotation Processingによる手法でなくバイトコード変換と呼ばれる方向に変えるためにやるらしい。 これに対応するとRealmObjectがうける如何ともしがたい制約が大幅に緩和されるみたいなのでぜひとも歓迎すべき内容だと思います。(Eclipseな人は涙目かもしれないけど)

LT2 自作iOSアプリ powered by Realm @satoshi0212 さん

Realmを使った?いけてる自作iOSアプリの紹介。 ・先駆者・達人ノウハウ引用 ・音声認識のフル活用 ・デジタルミニチュア(おまけ) のコンセプトで作ったものをそれぞれ紹介していました。 ・先駆者・達人ノウハウ引用 -> ブレストツール音声認識のフル活用 -> 音声キーボード ・デジタルミニチュア(おまけ) -> iPhoneのミニチュア ブレストツールは純粋にすごいと思いました。 しかし、これらのアプリ、どのあたりでRealmを使っているのか見当がつかなかったです。。。

LT3 Realmの遅延ロードと省メモリの仕組み @k_katsumiさん

Realmの岸川さん(@k_katsumi)によるRealmの仕組みについての解説でした。 Realmの基本的な使い方に始まり、クエリメソッド実行・件数カウント・データ取得の際にどのようなデータアクセスの仕方をしているのかを解説していました。なんというか、本当にギリギリまでデータを読まないことに徹しているんだなー、って感じました。 あと、このLTはSwiftベースで解説していました。私はSwiftについてはほぼ門外漢なのですが、それでも全然わかりやすい内容だったので本当に中身が濃いプレゼンだったと思います!

あと、次回のRealm meetupは2/20で、Realmの開発者の一人であるEmanuele Zattin氏 が講演してくださるとか。ちなみにこのお方はCIスペシャリストと称されているみたい。

ここから下はこのLTで出てきたQ&A. Q1. Webアプリとの同期について…どういう風にやるほうが多い?サーバ側とクライアント側のデータどう同期する? A1. べたな方法で、WebAPIを読んだ結果をRealmモデルにつめて保存ってやる。。iOSだとObject Mapper , himotokiとかいうものが関連するらしい。

Q2. 画像のデータをRealmで使う例ある? A2. 16MBまでの画像データなら入れる。ただ、ファイルそのものをDBを突っ込むのは普通ではないらしい。 たしかに削除は同期されるけど、モバイルの場合はファイルはDBに突っ込まないのが柔軟だって。

Android/Fragment単位でRealmのインスタンスを管理する。 -> onStopなどでRealmをcloseするのがいい。。

・ライブアップデート -> 別のスレッドで変更監視をしている。。。

  1. 管理クラスを使ったサンプルとかあれば・・・
  2. Androidにはリポジトリに例がいくつかおいてありますよー。 <- 本格的なアプリっぽいサンプルがくるよー! pull requestでレビュー依頼中 !

LT4 ApplivにRealmを導入した話 @bl_liaさん

Applivというアプリ紹介アプリにRealmを道入したときの話です。

speakerdeck.com

今回の場合は、Realmをキャッシュ専用として扱っているみたいです。そのためWrite用のトランザクションが走っている間も読み込みができるとのことでした。あと、RealmObjectの影響も受けにくいとか。 ここでもう一つ真新しい概念として「Android Clean Architecture」というのが出てきたが…結局MVCとある意味で似ているなーという感じだった。。。

懇親会

懇親会でじゃんけん大会があり、そこでTechBoosterの「Android Internals」をゲットしました! これが一番のお得ポイントでした!

所感

今回初めてRealm meetupに参加したのですが…大変勉強になりますね。特にRealmの中身に関することの説明は中身を知った上での最適な設計をするにあたってもってこいの内容だった! また、都合がつけば参加したいですねー。(しかし、2/20は参加できるかかなり怪しい。。。)でも、Realmについてそこまで詳しくはないのでLTは…いいかな(汗)