Realm
realmmobileplatform

Realm Mobile Platformさわってみた

More than 1 year has passed since last update.


はじめに

はじめまして。shinfkdです。

リブセンスでエンジニアやっていたはずなんですが、気づいたら最近は採用担当として働いています。

人生何がどうなるかわかりませんね。

さて、毎年々々、Advent Calendarの参加を華麗にかわしてきた私ですが、

今年は、うちの敏腕元インフラエンジニアの「一度断られた人たちに女性経由で頼んでもらう」という策略にまんまとはまり、書くことになりました。よろしくお願いします。

ただまぁ、書くことにはなったものの、私も例に漏れずネタに困っております。

あれこれ検討してはみたものの、良いネタが浮かびません。

ここはひとつ、シンプルに今年1年を振り返り、一番思い出深かったものに関わるところから考えてみることにしましょう。

今年、一番思い出深かったことといえば、皆さんやっぱりアレですよね。

Parse.comサービス終了ですよね。

いやもう本当に、年明けから「マジかよ…」とどん底に突き落とされた気分でした。

そこでまぁ私も、Parse.comで運用してたサービスの移行先をアレコレと検討したわけです。

その中で選択肢の一つに上がったのがFirebaseでした。

よし、じゃぁFirebaseについて書くかってところですが、今更感満載。

なので、Firebaseと同様にリアルタイム同期を売りにしており、最近発表されて気になってたRealm Mobile Platformをちょこっと触ってみることにします。

(あ、結局サービスは、めんどくさかっt 熟慮の結果back4appに移行しました。)


Realm Mobile Platform

Realm Mobile Platformは、モバイルデータベースであるRealmが提供する製品で、今までのクライアントサイドデータベースであるRealm Mobile Databaseに加え、リアルタイム同期、コンフリクト解決、イベントハンドリングなどのサーバーサイド機能を持つRealm Object Serverを統合したものです。(詳しくはこちらをご覧ください。)

Firebaseと同様にリアルタイム同期と、上述しましたが、現時点ではRealm Mobile Platformには、mBaaSとしての機能はありません。

自分でサーバーを用意し、構築する必要があります。


ダウンロード

というわけで、今回はlocalのmacOSで動かしてみます。

こちらからRealm Object Serverやらデモアプリが詰まったものをダウンロードし、解凍しましょう。


サーバー起動

解凍したファイルの中にstart-object-server.commandというファイルがあるので、こいつをコマンドから実行します。

$ cd 解凍ディレクトリ

$ ./start-object-server.command

ブラウザが立ち上がり、adminユーザーの登録を求められるので登録します。

(立ち上がらない場合は、http://localhost:9080 でアクセスできます)

realm-createusr.png

登録が完了すると画像のようなダッシュボード画面が表示されます。

これで、サーバー側の準備は完了です。

realm-dashboard.png


デモ


アプリを動かしてみる

先程ダウンロードしてきたファイル内のrealm-mobile-platform>demo>RealmTasks内に、デモアプリも含まれています。

今回はiOS版を動かしてみますので、RealmTasks Apple>RealmTasks.xcworkspaceを起動してみましょう。

起動しました

Simulator Screen Shot 2016.12.04 0.30.07.png

初回起動なので、適当にユーザーを登録し、ログインするとこんな感じで使えます。

realm_demo.gif


データを見てみよう

登録されたデータを確認するには、これまた解凍ファイル内にあるRealm Browserというものを使用します。

起動すると、こんな画面がでますので、今回はConnect to Object Serverを選択します。

スクリーンショット 2016-12-04 1.13.03.png

Server URLには、realm://127.0.0.1:9080、UsernameとPasswordは、最初の方に登録したAdminユーザーを入力してください。

スクリーンショット 2016-12-04 1.14.10.png

ちゃんとデータが登録されていますね

スクリーンショット 2016-12-04 1.29.31.png

フラグを変えると、ちゃんとリアルタイム同期することも確認できました :)

realm_demo_2.gif


まとめ

Firebaseなどに比べると、自前でサーバーを立てなければいけない分管理コストが上がるものの、ローカルで使っていたRealmから、シームレスにサーバー同期できるという点はとにかく便利です。

軽く触った程度の感想ではありますが、今後mBaaSとしての機能などが追加されたら間違いなく強力な選択肢になると思います。

今後の展開がとても楽しみな製品ですね!


終わりに

と言うわけで、私の中では2016年の仕事をすべてやり遂げました。

あとは他の方の記事を見ながら、穏やかな気持で年末を迎えようと思います。

それでは、皆様良いお年を:relieved: