JXUG Xamarin もくもく会 大阪 に参加しました #JXUG

jxug.connpass.com jxug.connpass.com

土曜日、Xamarin もくもく会フェンリルの大阪の会議室と東京の会議室で開催されました。2箇所で開催されたもくもく会テレビ会議でつないで、その状態でもくもくするという謎なシチュエーション(意外と悪くなかった)。

今回僕は、Realm Xamarin のお勉強をしました。まずは Xamarin Blog の Cross-Platform Development with Xamarin.Forms and Realm の記事の内容をやってみて、その後で周辺のことを調べてみる、ということをしました。

Realm は、Objective-C 版と Swift 版は使ったことがあります。今回は Xamarin 版でしたが、基本的な考え方はだいたい同じで、同様に使いやすくて良いと感じました。

Realm Xamarin の BeginWrite

ちょっと面白いなと思ったのが、Realm Xamarin は Realm.BeginWrite()Transaction という IDisposable を返す点です。

Realm Swift で Realm.beginWrite() を使う場合だと次のようなコードになります。

realm.beginWrite()

// realm への操作...

realm.commitWrite()
// または realm.cancelWrite()

これが Realm Xamarin だと次のようになります。

var transaction = realm.BeginWrite();

// realm への操作...

transaction.Commit();
// または transaction.Rollback();

transaction.Dispose();

Xamarin Blog の記事では、この transaction を遷移先の画面に渡し、遷移先の画面で Commit()Dispose() を行うという構造になっていました。その記事の設計が良い設計なのかどうかは判断に迷いますが、少なくともそういった芸当が可能な点で、Realm Xamarin は柔軟であると感じました。

雑感

大阪東京ともに参加者が意外と多くて、Xamarin が注目されてきているんだな、と改めて感じました。また、もくもく会やりたい。